初学STM32CUBE的坑

1. 如果使能了独立看门狗,默认时间是4*4096/ 40K = 0.4s, 一不留神就会复位

2. 如果此时把MX_IWDG_Init注释掉,由于hiwdg还未初始化,所以不能在主循环中使用HAL_IWDG_Refresh(&hiwdg),会出现HardFault

3. 如果配置了DMA,默认是开中断的(而且还关不掉)。但是在GENERATE CODE时,可以勾选不生成中断代码(窃以为会把中断关掉)。此时悲剧了,会不断的B. , 因为没有中断处理函数

4. 配置了通用定时器,以为会使能。测试发现,必须手工增加HAL_TIM_Base_Start_IT(&htim4);

5. 如果使用SWD调试口的话,务必在IO口配置上,否则生成的代码会禁止掉SWD

目前遗留问题:

1. 在使用DMA驱动UART时,看参考代码都是开UART中断的,目前还没有测试是否可以关闭UART中断。我认为是可以的。因为DMA会直接读取UART的寄存器去完成收发,不依赖于中断。看贴子,也是可以的。

猜你喜欢

转载自blog.csdn.net/yule/article/details/83787594