
STM32
文章平均质量分 92
STM32开发的一些问题和技巧记录
Geek__1992
从事电源行业嵌入式开发多年
展开
-
深入探究 printf 和 sprintf 函数中参数类型不匹配导致的问题及解析
在 C 语言编程中,我们经常会用到printf和sprintf这样强大的函数来进行格式化输出。然而,在实际使用过程中,如果不注意参数类型与格式说明符的匹配,就很容易出现一些意想不到的问题。尤其是当涉及到32位和64位整数时,格式化字符串与实际参数类型不匹配可能会引发各种奇怪的错误,甚至导致程序崩溃。今天,咱们就一起来深入探讨一下这背后的原因以及相关的解决办法。在C语言中,使用 printf 等可变参数函数时,必须确保格式化字符串与参数类型严格匹配。原创 2025-04-17 09:25:50 · 610 阅读 · 5 评论 -
stm32c011f4烧写程序 could not stop Cortex-M device
Could not stop Cortex-M device”是一个较为常见的STM32烧写问题,其原因可能涉及硬件连接、软件配置、芯片状态等多个方面。在遇到这一问题时,开发者应按照以下步骤进行排查和解决:• 检查硬件连接,包括复位引脚、JTAG/SWD接口、BOOT引脚等,确保硬件电路正常且连接正确。• 检查软件配置,包括编译选项、下载选项、中断向量表偏移、看门狗设置等,确保开发工具的配置与芯片的实际需求相符。原创 2025-04-16 09:11:34 · 1352 阅读 · 3 评论 -
STM32 调试口STM32CUBEMX配置
• JTAG调试接口适合复杂的调试场景,功能强大但占用较多引脚。• SWD调试接口适合简单的调试场景,节省引脚资源且硬件成本较低。• 如果引脚资源紧张,可以选择SWD接口或禁用调试接口,将引脚释放为普通GPIO使用。在实际开发中,根据项目需求和硬件资源情况选择合适的调试接口类型。原创 2025-04-16 09:11:10 · 1023 阅读 · 4 评论 -
STM32并口屏应用实例:点亮你的显示世界之应用篇
本文通过一个实际案例,展示了如何使用STM32驱动8位并口屏。通过硬件连接和软件编程,我们实现了屏幕的初始化、数据传输和显示功能。并口屏以其快速的数据传输能力,在嵌入式显示领域具有广泛的应用前景。希望本文能为你的项目提供参考和启发。本文提及的并口屏显示应用是针对这一系列文章所取的题名,所涉及的显示框架设计不仅仅局限于并口屏,其他串行接口也是适用的。原创 2025-04-15 09:11:44 · 1157 阅读 · 10 评论 -
STM32并口屏应用实例:点亮你的显示世界之程序篇
在嵌入式系统开发中,显示设备是与用户交互的重要界面之一。STM32作为一款功能强大的微控制器,支持多种外设接口,其中并口屏的驱动应用非常广泛,其抗干扰性比其他接口更为出色。本文将通过一个实际案例,介绍如何使用STM32驱动并口屏,并展示其原理和实现过程。原创 2025-04-15 09:11:03 · 1169 阅读 · 8 评论 -
STM32并口屏应用实例:点亮你的显示世界之原理篇
并口屏是一种通过并行数据线与控制器连接的显示屏,常见的有TFT-LCD屏。与串行接口相比,并口屏的数据传输速度快,适合高分辨率和高刷新率的应用场景。例如,8位并口屏通过8根数据线同时传输数据,大大提高了通信效率。本文通过一个实际案例,展示了如何使用STM32驱动8位并口屏。通过硬件连接和软件编程,我们实现了屏幕的初始化、数据传输和显示功能。并口屏以其快速的数据传输能力,在嵌入式显示领域具有广泛的应用前景。希望本文能为你的项目提供参考和启发。原创 2025-04-14 09:11:02 · 963 阅读 · 9 评论 -
STM32外设SPI FLASH应用实例
在嵌入式系统中,数据的存储和备份是一个非常重要的功能。SPI FLASH 是一种常见的非易失性存储器,具有容量大、速度快、接口简单等优点。本文将介绍如何在 STM32F103 上使用 SPI 接口操作 QW128 SPI FLASH,并通过乒乓存储的方式实现数据备份。本文介绍了如何在 STM32F103 上使用 SPI 接口操作 QW128 SPI FLASH,并通过乒乓存储的方式实现数据备份。通过这种方式,可以有效地提高数据的可靠性和系统的稳定性。希望本文对大家有所帮助,欢迎在评论区留言讨论。原创 2025-02-17 10:59:07 · 1944 阅读 · 2 评论 -
STM32旋转编码器应用实例
旋转编码器是一种常用的机械式传感器,广泛应用于需要精确测量角度或位置的场景,如电机控制、人机界面等。STM32单片机提供了多种方式来驱动和读取旋转编码器的信号,本文将详细介绍旋转编码器的工作原理、STM32定时器编码器模式的原理、应用实例以及总结。旋转编码器是一种将机械旋转转换为电信号的传感器,通常用于测量旋转角度或速度。根据输出信号的形式,旋转编码器分为绝对式编码器和增量式编码器。在嵌入式系统中,增量式编码器更为常见,因为它输出的是脉冲信号,适合实时测量。原创 2025-02-15 14:25:24 · 1754 阅读 · 8 评论 -
杂记:MDK相关配置
MDK配置生产bin文件并通过脚本文件将bin文件重命名然后拷贝到目的文件夹中去。原创 2025-02-08 10:13:51 · 356 阅读 · 0 评论 -
STM32Cube库和HAL库编写SPI通信程序
请注意,此示例仅适用于使用SPI1作为主设备的情况。如果要使用其他SPI外设或作为从设备,需要相应更改代码。函数中初始化SPI的配置,包括模式、数据大小、时钟极性和相位等。进行同时发送和接收数据。在主函数中,将要发送的数据存储在。数组中,并将接收的数据存储在。原创 2025-02-08 10:11:28 · 468 阅读 · 0 评论 -
LED呼吸流水灯发波控制
算法QT模拟,输出正弦波曲线。曲线有基准占空比,设置曲线条数,偏移相位,周期。20ms计算一次曲线当前值,在一定刷新周期(0.1ms)和输出值判断当前是否电量LED灯。根据占空比实时控制LED灯的亮度。原创 2025-02-07 10:09:07 · 278 阅读 · 0 评论 -
STM32 CUBE Can调试
需要注意的是STM32CUBE配置的代码需要再手动添加过滤器,并且将FIFO关联。启动函数记得添加在while循环之前。原创 2025-02-07 10:08:42 · 856 阅读 · 0 评论 -
STM32F103 STM32CUBE HAL库 串口DMA发送无法执行回调
弱函数重定义/***/ }重定义回调函数...STM32CUBE给开发提供了很多便利,但是HAL库还是有不少坑在里面,需要我们理解库函数的机制,遇到BUG后去调试优化。原创 2025-02-06 14:14:01 · 639 阅读 · 0 评论 -
单片机移植freemodbus主机(STM32、GD32、瑞萨、国民技术等)
STM32单片机移植freemodbus主机。生成的项目文件将任务初始化都生成再freertos.c文件中,配置时STM32Cube工程时,配置了一个MasterTask的任务,一个StartReadTask、一个StartWriteTask。否则返回的是MB_MRE_EXE_FUN。**注意:**实际使用中可以将任务代码放在单独的文件中。解决办法:在eMBMasterPoll() 的EV_MASTER_READY状态下先释放信号量。FreeModbus的移植主要包含:物理层接口的修改、应用层回调的修改。原创 2023-05-08 10:02:27 · 5695 阅读 · 6 评论 -
单片机移植freemodbus从机(STM32、GD32、瑞萨、国民技术等)
STM32单片机移植freemodbus从机freemodbus从机运行机制freemodbus从机使用方法STM32工程STM32Cube工程创建原创 2023-05-04 10:16:39 · 2655 阅读 · 0 评论 -
Bootloader开发
1)bin文本传输采用Ymodem协议,移植协议代码。2)触发进入BootLoader下载可以通过接收协议帧触发。另外用宏配置一个按键或者跳线帽进行下载模式的硬件触发模式。3)芯片分配Bootloader区、APP区、参数区(存储APP的名称、版本、大小、当前下载的地址),如果芯片大小充足的话,再分配一个APP2,备份下载区,采用备份搬运升级的方式。4)如果采用乒乓升级的话,APP代码工程需要设定不同的IROM1区域,所以不采用该方式。5)与上位机兼容。方式一:上位机按协议进行开发;原创 2023-03-30 15:46:56 · 1205 阅读 · 0 评论 -
STM32 RTC时钟掉电日期不更新 & STM32 HAL库RTC时钟配置
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档STM32 RTC时钟掉电日期不更新 & STM32 HAL库RTC时钟配置一、STM32CubeMX RTC配置二、RTC初始化三、RTC日期掉电不更新(F1...这里暂时只考虑F103,其他系列未测试,对比的也只考虑F4)四、解决办法4.1、上.原创 2022-05-19 14:17:45 · 7861 阅读 · 10 评论