STM32移植工程教程及常见Keil错误解决方法
1.确定你移植的工程
1.1 这里随便找了一下别人代码中的超声波传感器工程为例,其他同理。
1.2 打开 HARDWARE文件夹
1.3 复制这个HC-SR04(超声波的代码),到你工程的HARDWARE文件夹里面,这里以OLED实验为例
然后打开Keil
2. 添加.c文件
点击这个按钮,点击HARDWARE,Add Files,找到刚刚复制的HC-SR04这个文件,选择hc.c,add添加。
在左边的能看到即说明添加成功
3 添加头文件路径
3.1 点击魔术棒,选择C/C++,打开include paths
3.2 点这里找到HC-SR04的文件夹,选择
出现如图则说明添加成功
4 解决常见的一些问题
4.1
编译一下,把多余的头文件删去
有6个错误 我们一般从第一个错误开始看
这里的错误 是TIM定时器的结构体没定义,但其实这些在工程里面的库函数这些都已经包含了
这时候,找到stm32f10x_conf.h打开,可以看到stm32f10x_tim.h被注释掉了,这就是导致编译错误的原因,只需要删掉注释 重新编译一下即可
重新编译一下 错误就没有了
4.2 引脚冲突
有时候 会遇到引脚冲突,
解决方法一
修改文件里面的宏定义 更换为别的引脚
解决方法二
使用重定义功能 具体的可以查每个引脚的功能
4.3 函数名字不一致导致错误
例如这里 是说没找到delay_us的定义 很明显 这是一个延迟函数,我们找到延迟函数delay.c,看看是如何定义的
可以看出 这里的延迟函数我们写的是delay_ms 而不是我们移植过来的工程里面的 delay_us。
这时候,回到hc.文件 按住Control+F
选择Replace 把delay_us全部替换成delay_ms,然后选择Replace All
再编译一下 错误就没有了