开贴记录STM32工程遇到的各种问题及解决方法

本文汇总了STM32工程开发过程中常见的问题及解决方法,包括初始化、时钟设置、串口配置、ADC与DMA使用、定时器中断处理等,并提供了详细的调试步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开贴记录STM32工程遇到的各种问题及解决方法

STM32工程问题集锦

针对工程开发过程中常见问题进行备注

问题列表

初始化要点

1.将程序编译下载到MCU后无法进行调试。

时钟设置

  1. 串口输出乱码,检查后串口配置正确,将接收端波特率修改为单片机初始化时波特率的一半,接受正常。

串口设置

  1. 串口输出乱码,检查后串口配置正确,将接收端波特率修改为单片机初始化时波特率的一半,接受正常。
  2. 如何在STM32CUBEIDE上在Eclipse上集成串口终端显示。
  3. 串口中文乱码,英文正常。
  4. STM32CUBEMX中串口数据位的选择

STM32CUBEIDE

  1. 如何安装插件。
  2. STM32CUBEMX更新代码后出现中文乱码,及串口中文乱码的解决办法。
  3. 默认初始化程序顺序与工程不符,每次生成后需要手动调整,如何在软件设置里修改初始化程序顺序。
  4. 在使用STM32CUBEIDE看代码的大纲Outline的时候,有的文件显示:Outline is disabled due to scalability mode(option),未能正常显示大纲。

ADC

  1. ADC采用DMA方式多通道不能循环工作只采样一次,需要重新运行HAL_ADC_Start_DMA(&hadc1, &ADC_Value, 3)才能再次采集,并且只有第一个通道有数值,数值还不是正确的转换值。

DMA

  1. 采用DMA方式控制外设输出时,确定外设的配置和相关程序没有问题,但是没有正常输出。

定时器

  1. 定时器中断是怎样一个处理过程,应该把中断后要处理的程序放在哪个地方?

串口通信

  1. 直接采用单片机的串口TTL电平通信正常,增加MAX485芯片后,通信不稳定,误码率高。

HardFault

  1. 调试时,程序时不时进入void HardFault_Handler(void),有时存在偶然性,有时一直进入?

工程生成

  1. STM32 CUBEMX 报错 generation have a problem 的解决办法

工程调试

  1. Keil MDK开发时,把watch中数组内容保存到文件中的方法

处理方法

初始化要点

  1. 将程序编译下载到MCU后无法进行调试。

由于问题是在使用STM32CUBE配置时发现,解决办法如下:检查System Core->SYS设置,是否启用Serial Wire模式,如果没有需要启用。如果此时开发软件(STM32CUBEIDE)无法和MCU通信,可以使用STM32CubeProgrammer连接芯片,将FLASH清空,清空后开发软件就能连接上MCU。

时钟设置

  1. 串口输出乱码,检查后串口配置正确,将接收端波特率修改为单片机初始化时波特率的一半,接受正常。
    检查时钟设置,HSE的时钟值是否与板上相符,经检查发现板上为8MHz,设置为16MHz,导致出现串口乱码问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值