STM32F10x(Keil+MDK)
by HYH | 2017 年 11 月 3 日 下午 8:51
一.安装后keil MDK环境后,就可直接开发arm了。
备用下载链接:http://pan.baidu.com/s/1qYNtrys 密码:wqpy
最好安装最新版的。
二.RT-Thread简单使用。
1.编译.
1)打开工程
在bsp\Stm32F10x下有相应的工程文件,打开即可。
2).下载设备包。
网址:http://www.keil.com/dd2/pack/#/eula-container
打开包管理器
导入包
3).设置芯片型号
选中工程文件夹,右键设置Options
在Device栏选中要开发的芯片型号(如STM32F103C8)
4)编译
直接Build Target即可
5)编译错误解决方法
A.bxcan.c,can.c错误
解决方法:不用can(高手可尝试其它方法),需要用时手动写,不用rtthread的代码。
修改DeviceDrivers\can.c
在文件开始写上
#ifdef RT_USING_CAN
文件尾写上
#endif
B.LINK(链接错误):
设置选项Target:
设置C/C++选项:
6)烧写
由于Keil的烧写工具是Ulink2,所以还是用stm32flash烧写。
三.USB口的使用
官方示例:
链接:http://pan.baidu.com/s/1nvn76yP 密码:3y6u
其中 STM32F10x_USB驱动.rar 为windows下的驱动程序(运行里面的程序安装)。
STM32F10xxx全速USB设备开发套件.zip 为官方示例。解压后可得到STM32_USB-FS-Device_Lib_V4.0.0文件夹,不过这些程序都只是可以在官方评估板上完美运行,如果是自己的开发板还需要进行移植(如果使用到的硬件一致,无需更改源代码)。
目录简介:
由于每个工程文件夹的结构大致一致,就以其中一个作简介:
1.USB转串口的使用(Virtual_COM_Port)
1)编译与烧写
打开工程文件
选择这个
如果安装了对应芯片的pack文件,直接关闭pack installer。然后选择是。
选择要开发的芯片,可能要选两次。
接下来更改Option:Output以便于用stm32flash烧写(有Ulink2的无需此操作)
接下来直接编译即可。
烧写时,注意要写对hex文件的名字。
成功烧写并安装好USB驱动时,就能在设备管理器上看到虚拟的COM口设备,而且通过向虚拟端口发送数据,可在USART0接收到数据。
不过,虚拟的串口有些不稳定,有时需要重新插拔才能正常使用。
四.汇编相关
1.由于未知原因,直接写汇编程序会报错(不是在C语言中嵌入)。因此需要把C语言启动的汇编文件(startup_*.s,根据芯片容量选择文件名,所有启动文件均可在MDK的pack安装目录中搜到)加入工程中(最好重新复制一份),用其初始化汇编环境。
原启动文件的Reset_Handler 会寻找SystemInit和__main符号,并跳转到该符号所在行以达到启动C程序(主函数汇编后的符号为__main)的目的。改造后把启动文件导入的符号改为自己的符号。
IMPORT 自己的符号
LDR R0, =自己的符号
BLX R0 ;跳到符号所在行运行,即启动汇编。
在自己写的程序中导出符号以供链接器使用。
EXPORT 要导出的符号
这是使用proteus8.6的仿真结果。可以看到0x20000010(stm32F10X的内存区内)的数值不断增大。
https://hyhsystem.cn/wordpress/
Copyright ?2018 何亚红的博客 unless otherwise noted.