STM32F10x随笔(keil mdk)

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/


posted @ 2018-01-31 17:21  何亚红  阅读(680)  评论(0编辑  收藏  举报