1、STM32添加固件库编译时没有生成对应的.h文件
原因是添加了的固件库,没有使能。在工程中找到py32f0xx_hal_conf.h,将需要的功能取消注释即可。
2、Keil编译出现error: #29: expected an expression
原因是初始化结构体写法是按C语言 C99标准,keil5默认是C89的标准,所以出错。
解决办法:在keil5中的options for target点击C/C++栏中勾选C99 Mode
3、Keil编译出现error: #35: Please select first the target PY32F0xx device used in your application
4、Keil编译出现error: A1355U: A Label was found which was in no AREA
这个是由于你选择的startup_py32f003xx.s文件不对,请仔细确认好该文件并放在合适的文件目录位置中
5、Err:Flash Download failed - “Cortex-M0”
检查好杜邦线与仿真器的连接是否出现松动,另外在Target中把SWD的下载速度降下来
6、STM32 Debug下载程序不进去的问题
会弹出以下窗口:
但是JTAG下载器又可以正常读取到,就是下载不进去。
最后解决:是把RESET脚接到3.3V ,然后再下载程序,此时就正常了。我猜测是Debug时没有正常退出仿真界面或者运行时芯片断电导致的。下载完成后,我还是把RESET脚默认悬空。
7、Keil编译if语句出现error: #127: expected a statement
出现这种错误的时候,一般是语句出现问题,我遇到的是if语句缺少大括号{}导致的。
8、STM32中ADC多通道采集相互影响的问题?
①这种情况大多是因为在切换的时候速度太快,转换不过来导致数据测量出错,互相影响,解决方法是在通道转换时,先将ADC采集通道关闭,然后再转换到第二个通道上去,这样就给了一个转换时间,使得转换顺利进行,不会出错。
②在多通道采样时,采样通道数如果比较多,通道切换中采样值会有延迟,导致采集到的数据不正确。解决办法是将第一次采样到的值扔掉,使用第二次采样的值。