今天使用新的电脑编译了原本在另一台电脑上创建的一个工程,结果报如下错误:


这个报错不是代码错误 ,是必须给工程指定具体的 PY32F0 芯片型号,编译器才知道用哪套寄存器定义。
py32f0xx.h 第 133 行强制检查:必须定义一个芯片型号宏,否则直接报错。
最快解决方法:工程全局宏定义
Keil 操作步骤
-
工程 → Options for Target...(魔术棒)
-
切换到 C/C++ 选项卡
-
找到 Define 输入框,添加下面的宏(用逗号分隔)
USE_HAL_DRIVER_PY32F002xx,PY32F002xx,PY32F002Ax5
重新编译即可。
编译成功后,烧录固件的时候又报了如下错误:

这个报错和代码无关 ,是 Keil 没有给你的 PY32F002 芯片设置正确的 Flash 烧录算法,导致无法下载程序。
设置 Flash 烧录算法
- 切换到 Utilities 选项卡
- 选择 Use Debug Driver
- 点击 Settings
- 切换到 Flash Download
- 点击 Add

添加如上两项后,即可成功烧录。