2、keil烧录过程中报错 “no cortex-m sw device found”
keil+jlink环境下,stm32在SW模式下调试时,如果在download程序时报错no cortex-m sw device found,需要排查三个问题: 1.确保接线正确; 2. 高版本jlink固件可识别出赝品jlink,而MDK5.x版本要求SEGGER固件高于V4.78,排查是否是盗版jlink导致该问题发生。若是,可网购jlink-ob小调试器; 3.如果是在程序烧写成功一次后,第二次烧写时报错no cortex-m sw device found,极有可能是软件中设置了SWDIO或SWCLK I/O口的端口模式,由于I/O口一直被占用,使芯片sw端口不能用于下载调试。解决办法:先将boot0保持拉高,再按下复位,然后boot0拉低,之后可以正常使用。
3、keil编译出现error: #159: declaration is incompatible with previous
报错原因:函数A调用函数B,但是函数B出现在函数A后面
解决办法:把在函数A前面提前声明函数B
4、keil编译出现 #error directive: "No valid CPU defined"
解决办法:需要在预处理器中添加CPU型号作为定义符号
5、keil编译出现 STM32出现.\output\Buzzer.axf: Error: L6218E: Undefined symbol GPIO_Init (referred from main.o).
这种问题一般程序未找到执行函数
解决办法:
GPIO_Init ,GPIO_PinRemapConfig ,GPIO_SetBits,RCC_APB2PeriphClockCmd 在main函数中你都用到了,但是你没有在用之前定义这些函数,你可以把包括这些函数的头文件在main函数文件里添加进来。
(1)keil.com/forum/16561/" target="_blank">http://www.keil.com/forum/16561/
(⒉)http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4116.html
(⒊)这个错误是说你没有定义main入口函数,你看看是不是写错了,要跟main一摸一样,大小写也要一致,GPIO_Init ,GPIO_PinRemapConfig ,GPIO_SetBits,RCC_APB2PeriphClockCmd 在main函数中你都用到了,但是你没有在用之前定义这些函数,你可以把包括这些函数的头文件在main函数文件里添加进来。
6、 keil工程找不到头文件解决办法