准备工作,根据习惯建立工程文件夹user,lib,project,start。user用来存放用户自己的文件可以将config文件放在此文件夹,将固件库里的inc、src文件夹复制到lib文件夹,将system_stm32fxxx.c复制到start文件夹。
新建工程,选择驱动芯片类型,加载对应启动文件,将准备工作里的文件按目录添加到工程里。编译,仿真。
遇到的问题:
1、使用标准外设驱动问题
编译错误提示:.\JJT.axf: Error: L6218E: Undefined symbol assert_param (referred from stm32f37x_adc.o).
如果不使用stm32标准外设库,仅仅是自己编写一些简单的程序则不需要此操作。
2、启动文件的问题
仅仅使用keil生成的启动文件system_stm32fxxx.s需要将system_stm32fxxx.c文件手动添加到工程文件中否则会报错
.\JJT.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f37x.o).
3、仿真问题
做好前面的工作之后,编译不再出错,进入仿真,发现进不了主函数,程序一直在系统启动准备阶段,且出现不能读写的错误提示*** error 65: access violation at 0x40021000 : no 'read' permission。此时需要修改Debug的设置。
将Debug的Dialog.DLL和Parameter的默认设置DCM.DLL和-pCM4改为
接下来仿真,正常进入main函数断点。