
51/STM32单片机
文章平均质量分 80
栏目主要记录自己学习单片机的过程中一些问题,以及如何解决问题的思路。
woainizhongguo.
稳浮萍,清躁心,勿想一步千里,列位看官,且将新火试新茶,诗酒趁年华
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
从bootloader跳到APP需要几步?
中断向量表存放在。原创 2025-06-15 16:05:20 · 679 阅读 · 0 评论 -
51单片机同一个timer 作为定时器和波特率发生器么?
在51单片机中,同一个Timer不能同时作为普通定时器和波特率发生器。为了避免冲突,建议使用不同的Timer来实现不同的功能。如果硬件资源有限,可以考虑分时复用或使用外部定时器芯片,但这些方法实现复杂,且可能影响系统稳定性。原创 2025-05-06 18:16:46 · 1004 阅读 · 0 评论 -
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
在嵌入式开发中使用 Keil 编译器时,是一个常见的错误。这个错误表示编译器在链接过程中找不到某些外部符号的定义。在代码里引用了某个函数或者变量,不过该函数或者变量却没有被定义。例如,在一个源文件里调用了一个函数,但是这个函数的实现代码并未包含在项目中。// main.c// 调用未定义的函数return 0;在这个例子中,函数未被定义,链接时就会出现未解析外部符号的错误。保证所有被引用的函数和变量都有定义。查看代码,确认在源文件中实现了所有被调用的函数。原创 2025-05-06 08:59:56 · 969 阅读 · 0 评论 -
关于堆栈指针的那些事 | bootloader 如何跳转app
将堆栈指针的值存储在向量表的第一个位置(原创 2025-04-28 00:03:18 · 837 阅读 · 0 评论 -
OTA和IAP的关系
OTA是Over-the-Air的简写,即空中下载技术,通过网络远程给用户进行系统更新和升级。IAP是In Application Programming的简写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。IAP主要包括BootLoader和应用程序两部分,基于IAP的OTA设计思路是先通过OTA接收升级固件,再利用IAP进行固件搬移、校验和程序跳转,实现空中升级的目的。,但两者并非完全等同。原创 2025-04-26 21:56:28 · 858 阅读 · 0 评论 -
MCU应用踩坑笔记(ADC 中断 / 查询法)
2.同时使用查询法和中断法且芯片温度超过47℃导致采样时间过长原因为高温下芯片内部HRC频率会产生漂移(频率变快,但时钟精度控制在±1%),该状态下MCU采样ADC ADC中断标志会比while语句更快速,CPU优先处理中断服务函数,导致采样完成标志在中断服务函数中清除,进一步导致MCU卡死在while循环中无法清除WDT致使WDT超时溢出复位,且外部电路也会受温度影响,综合影响下最终表现为MCU 47℃下ADC采样卡死。在使用过程中,因配置了ADC中断使能,在中断服务程序中,清除了了中断标志位。原创 2025-02-07 11:23:55 · 930 阅读 · 0 评论 -
51单片机-内部扩展RAM的应用
RAM是在程序运行中存放随机变量的数据空间,51单片机球认的内部RAM只有128B,c清于编程者来说,一个芯片的RAM空间越大,RAM不够用怎么办,连过多的变量都不敢定义。写起程序来就越容易得心应手,不会总考忠压前面我们写程序时曾讲到过,如果定义个变量后,不对这个变量进行初始化,这个修就是0,其实这个结论是流要一定的条的闲四写.政酸石用防学节之利要于品东粗烘器技式内叫限款边装控观有初哈化时编译器会默认将变量值设定为0。一旦程序中的总变量超过128娜,原创 2024-12-11 22:45:02 · 875 阅读 · 0 评论 -
通用型蜂鸣器驱动函数
通过传入重复次数(原创 2024-11-07 10:58:08 · 470 阅读 · 0 评论 -
51单片机 定时器、计数器
在 51 单片机中,定时器/计数器可以被配置为计时或计数定时模式:单片机内部的振荡器(通常由外部晶振提供时钟信号)驱动定时器按固定频率计数。计数模式:定时器由外部输入信号触发,每检测到一个上升或下降沿时,计数器的值会增加1。定时器 0和定时器 1,它们各自都有独立的寄存器和控制方式。在部分改进版 51 单片机中(如 8052),还增加了定时器 2,功能更为丰富。51 单片机的定时器功能强大且灵活,支持多种模式和应用场景。合理配置定时器,不仅可以实现精准的定时操作,还可以用于事件计数和外部触发事件。原创 2024-11-06 09:13:48 · 1903 阅读 · 0 评论 -
nop() 指令详解
nop()nop()虽然是一条“无操作”指令,但在 51 单片机中有着独特的应用价值。它可以用于精确延时、时序调整、指令对齐、硬件兼容等场景,辅助开发人员实现更加可靠、稳定的嵌入式系统。合理运用nop指令可以使程序运行更符合预期,但在大多数情况下,应结合其他更为高效的方式(如定时器、外设中断)来实现精确的时间控制。原创 2024-11-06 09:06:34 · 3409 阅读 · 0 评论 -
C语言入坑 ---- 不要轻易忽略volatile的用处
C语言入坑 ---- 不要轻易忽略volatile的用处原创 2024-07-21 13:26:36 · 322 阅读 · 0 评论 -
51 | data | idata | xdata | code
51单片机的运行内存分前128字节和后128字节。前面128个字节好像cpu里的寄存器,读写非常快。后面的128字节只能用指针访问。单片机可以外扩运行内存条,外扩的这部分内存叫xdata。转载 2024-09-25 09:23:32 · 605 阅读 · 0 评论 -
bin | hex
纯粹的程序数据,不包含:长度、地址、数据等信息可以直接把数据赋值到单片机程序地址(STM32 一般时0x8000 0000)原创 2024-09-15 17:56:44 · 314 阅读 · 0 评论 -
单片机中断 | 中断向量表
是的,您的理解是正确的。在51单片机中,中断向量表的作用是提供一个跳转地址,当中断发生时,单片机会通过这些地址跳转到相应的中断服务函数(ISR)去执行。这些跳转地址通常存储的是中断服务函数的入口地址,而不是中断服务函数的代码本身。因此,中断向量表和中断服务函数的代码是分开存储的,中断向量表只是存储了跳转到ISR的地址,而ISR的代码则存放在Flash的其他位置。在汇编语言中,中断服务函数的代码会直接写在中断向量地址指向的地方,或者通过跳转指令(如LJMP)指向实际的中断服务代码位置。原创 2024-09-13 00:12:36 · 2434 阅读 · 0 评论 -
单片机组成原理
单片机应该是你开发的工具,而不应该成为阻碍你前进 - 开发效率的难关。就是说你可以快速上手不同的单片机。原创 2024-09-09 23:03:40 · 528 阅读 · 0 评论 -
编译器关键字解析
在一些特定的编译器中,特别是在嵌入式系统的开发中,__root 可以用来指示编译器将变量存放在特定的存储区域中,例如 Flash 存储器中,而不是默认的存储区域。在你提供的代码中,__IO 可能被用来告诉编译器 UniqueID[i] 是一个与硬件相关的状态或配置信息,它的值是从地址 0x4925+i 处的外部设备或寄存器中读取得到的。这个关键字通常在嵌入式系统的开发中使用。__root 是一个编译器特定的关键字,通常用于告诉编译器将变量放置在代码的根部(Root),以确保该变量的全局可见性和可访问性。原创 2024-04-25 23:47:49 · 353 阅读 · 0 评论 -
单片机开发常见算法
11.图形处理算法在需要显示或处理图像的单片机应用中,可能会用到点阵显示、图形变换、颜色处理等算法,在一些点阵屏,TFT屏的应用比较多,这个一般根据实际的图形或者屏尺寸制定算法。如遗传算法、模拟退火算法等,用于寻找问题的最优解或近似最优解,像遗传算法一般用来做机器人的路径规划,以找到最优的移动路径,避开障碍物,做过智障小车的小伙伴,应该比较熟悉了。涉及字符串的比较、复制、连接、查找、替换等操作,这些算法在单片机上面也会用到,比如屏显示,json、物联网模块的指令数据处理。原创 2024-04-22 18:05:51 · 1184 阅读 · 0 评论 -
开源项目-CSDN专栏
单片机毕业设计物联网嵌入式原创 2024-04-04 21:11:08 · 275 阅读 · 0 评论 -
单片机工作原理篇
单片机运行工作原理介绍原创 2024-01-17 17:41:47 · 1402 阅读 · 0 评论 -
ESP8266 接入阿里云物联网云平台
esp8266 如何链接到阿里云平台原创 2024-01-14 22:03:35 · 3886 阅读 · 1 评论 -
STM32系统时钟树
stm32 单片机的时钟比较复杂,不过通过主线一步步拆解,就可以学会它。系统的时钟源,第一个源头无非就是的(1)MCU内部高速时钟源HSI(2)外部高速时钟源HSI(3)PLLCLK ( 由HSI\HSI 通过PLL倍频得来 ) 【目的:是用于对HSI / HSE 进行倍频】上述3个时钟源选择其一作为 ( SYSCLK 系统时钟 )紧接着就是通过AHB Prescaler 对SYSCLK系统时钟进行预分频( /2 ~ /512 ) 操作,得到 HCLK AHB1( 高速时钟 )原创 2024-01-18 14:27:18 · 2071 阅读 · 0 评论 -
STM32F407 IIC通信协议驱动代码
IIc总线是单片机与外部模块进行通讯常用的协议,由两根线组成,分别是SCL,SDA组成,主机驱动SCL时钟信号的发生,在SCL的时钟脉冲下,通过SDA的时序,即可与外部模块通讯。IIC(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。IIC是为了低速设备通信而发明、V(IIC) < V ( spi )原创 2024-02-22 17:09:13 · 681 阅读 · 0 评论 -
STM32与W25Q64通讯(SPI)
SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master同步,全双工支持总线挂载多设备(一主多从)W25Qxx系列是一种低成本、小型化、使用简单的非易失性存储器,常应用于数据存储、字库存储、固件程序存储等场景存储介质:Nor Flash(闪存)原创 2024-02-23 22:56:11 · 1450 阅读 · 1 评论 -
stm32f407与dht11通信,读取温湿度数据
stm32单片机要通过dht11模块,获取温湿度数据,改模块支持单总线通信,使用一根数据线,按照模块厂商规定通信时序,即可获取是温湿度数据,我们打算2s 采集一次温湿度数据,然后通过串口输出到上位机。原创 2024-02-21 16:35:40 · 1792 阅读 · 0 评论 -
UCOS-II 在单片机中的应用
假设我们正在开发一个智能家居控制系统,该系统需要同时处理多个任务,如温度监控、照明控制和安全检测。在这个系统中,μC/OS-II的多任务处理能力可以帮助我们高效地管理这些不同的功能。原创 2024-01-20 16:49:43 · 1667 阅读 · 0 评论