keil未指定 PY32F0 具体芯片型号导致编译报错及无法烧录问题

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

这个报错不是代码错误,是必须给工程指定具体的 PY32F0 芯片型号,编译器才知道用哪套寄存器定义。

py32f0xx.h第 133 行强制检查:必须定义一个芯片型号宏,否则直接报错。

最快解决方法:工程全局宏定义

Keil 操作步骤

  1. 工程 →Options for Target...(魔术棒)
  2. 切换到C/C++选项卡
  3. 找到Define输入框,添加下面的宏(用逗号分隔)
USE_HAL_DRIVER_PY32F002xx,PY32F002xx,PY32F002Ax5

重新编译即可。

编译成功后,烧录固件的时候又报了如下错误:

这个报错和代码无关,是Keil 没有给你的 PY32F002 芯片设置正确的 Flash 烧录算法,导致无法下载程序。

设置 Flash 烧录算法

  1. 切换到Utilities选项卡
  2. 选择Use Debug Driver
  3. 点击Settings
  4. 切换到Flash Download
  5. 点击Add

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