(1)STM32库开发时,无论是标准库开发方式,还是HAL库开发方式,注意在.c源文件中编写完成功能函数后,在对应的.h头文件中声明函数。例如,在利用CubeMX开发串口完成后,对串口打印函数printf重定向时,将重定向函数fputc()、fgetc()写在usart.c文件后,还需要在usart.h文件中进行声明,并注意在.c、.h文件中添加stdio.h头文件,勾选Use MicroLIB。
(2)I2C通信时,SCL时钟信号线起关键作用,就像脉搏一样控制着SDA线上的数据传输-脉动传输。另外,基于CubeMX开发I2C通信时,不会像使用标准库那样出现STM32硬件问题,不需要使用软件模拟I2C时序。
(3)使用CubeMX开发STM32时一定要注意SYS配置时,Debug项要选择Serial Wire,否则,用JLink(JTAG)仿真器下载程序时,只能下载一次,MCU芯片就会被锁住,第2次下载时,1、只能按住板子上的reset键,让MCU复位检测到JLink,后快速松开reset键,这样程序才能下载到MCU程序存储器中,但下载速度会变慢,2、借助FlyMCU串口下载软件下载正常.hex文件后,重置boot0、boot1解锁MCU完成下载。
(4)Callback Function:回调函数,HAL库开发框架使用了回调机制。