STM32f103C8T6入门学习记录Word格式.doc
- 文档编号:15495368
- 上传时间:2022-11-02
- 格式:DOC
- 页数:35
- 大小:1.13MB
STM32f103C8T6入门学习记录Word格式.doc
《STM32f103C8T6入门学习记录Word格式.doc》由会员分享,可在线阅读,更多相关《STM32f103C8T6入门学习记录Word格式.doc(35页珍藏版)》请在冰豆网上搜索。
4、编写main.c和文件路径 10
第三章 14
STM32点亮第一个LED使用keilforARMMDK软件仿真 14
1、Main.c函数代码:
14
2、代码分析:
15
3、软件仿真介绍:
16
第四章 19
串口的使用 19
1、为什么要用串口?
19
2、STM32跟PC机(也就是电脑)如何连接 19
3、代码分析 20
4、仿真及调试 23
5、串口接收数据 25
第五章 27
通用定时器的使用 27
1、STM32F103内部定时器有哪些?
27
2、如何进行程序编写 27
3仿真结果观察 30
4对第四章串口的补充 31
5工程代码 35
第一章
我与STM32的那些日子
STM32这块板子是在阿莫上跟一个老师买的,砍了半天100块钱。
包括一个Jlinkv8仿真器(好像65块左右),和一块STM32系统板。
那已是一年前的事了。
那时我刚大三,刚学了半年51,于是想学点更高级的。
但我好像属于三分钟热度的这种人,买回来学了一个星期,就学不动了,寄存器操作,固件库的使用根本就没明白是怎么一回事,之后就没有然后了。
现在看到那块板子,总有一种说不出的滋味,要是当时能咬牙切齿努力学习,说不定现在也不会安静地坐在电脑前一字一句敲打这篇激励性文章了。
对于STM32我没用任何基础,唯一有的也只是一年前学的那一个星期,不过那已不重要了,我现在仍是一个小白。
作为一个初学者,也许是坐井观天,看的是片面的,可能有很多观点是错误的,希望读者朋友能勇于指出来。
-----前记
第二章
使用固件库建立一个工程
我打算先从软件编程学起,以前用过KEIL和IAR,IAR我比较熟悉,因为参加电子设计竞赛的时候,就是用它编程MSP430程序的。
但我还是选择了KEIL,也许因为资料比较多,或者别的吧,我没分析过KEIL和IAR代码效率如何,因为这不是我现在要考虑的,软件都只是工具而已。
我去百度搜索了几篇如何在KEILMDK环境下建立STM32工程,加上自己的实践。
我也把我的初学者步骤贴出来。
1、了解STM32F103的固件库
我在网上下了STM32F103的固件库-----stm32f10x_stdperiph_lib3.5V版的,里面内容如图所示,据说STM32F103和STM32F101都能用。
2、创建第一个工程
1.新建一个文件夹取名如first_project,也可以建在桌面。
2.在里面新建CMSIS,libraries,Libaries,List(用于链接的),Obj(工程文件),output
(输出hex文件),User文件夹;
3.将固件库里Libraries--->
STM32F10x_StdPeriph_Driver下的inc和src文件夹复
制到fisrt_project文件夹下的libraries里;
将固件库里Libraries--->
CMSIS--->
CM3--->
CoreSupport文件夹里面的core_cm3.c
和core_cm3.h文件复制到我们新建的fisrt_project文件夹下的CMSIS里;
将固件库里Project---->
STM32F10x_StdPeriph_Template(这个文件家里有KEIL和
IAR建好工程的模板)里的stm32f10x_conf.h,stm32f10x_it.c,
stm32f10x_it.h,system_stm32f10x.c四个文件复制到我们新建的fisrt_project
文件夹下的User里;
如下图所示
打开keiluvision4MDK,在菜单栏里点击project选择newuVisionproject
保存工程名,选择Obj文件夹,文件名为first_project,不用加后缀格式,系统默认。
接下来会弹出让你选择器件的窗口,这里我们选择STmicroelectronics的STM32F103C8
最后会弹出是否复制启动代码的对话框,选择YES;
3、接下来就是管理工程文件了
1、在project窗口右键点击Tagert1选择manageconponents或者找到倒数第二个品字形图标;
2、在Groups框下面将Groups1重命名为startup,同时添加CMSIS,Libraries,User;
选择CMSIS在Files框下将CMSIS文件夹的core_cm3.c添加进去;
选择Libraries在Files框下将Libraries--->
src文件下的所以文件都加进去添加进去;
选择User在Files框下将User文件下的所以文件都加进去添加进去;
如下图所示:
点击OK,确定;
工程构架如下图所示:
4、编写main.c和文件路径
1、新建main.c保存到User文件夹里,将其添加到User工程名下。
#include"
stm32f10x.h"
intmain(void)
{
while
(1)
{;
}
2、在project框下,右键点击Target1,选择OptionsforTargettarget1
在output选项下,在createHEXfile前打上钩,点击selectFolderforObjects选择输出文
件夹为output文件夹;
在Listing选项下,点击selectFolderforListings选择链接文
件夹为List文件夹;
在C/C++选项下,define里填入USE_STDPERIPH_DRIVER,STM32F10X_MD中间用英
文的逗号;
(一定要记得)
IncludePaths里,点击右边的文件路径框,选择相应的CMSIS,
libraries里的INC和SRC还有User;
也可以填绝对路径,比如:
C:
\Users\Administrator\Desktop\STM32编程练习
\fisrt_project\CMSIS这样比较麻烦
好了,这下开始编译链接:
0Error,0Warring;
First_project就建好了;
万里长征的第一步,总算走出去了。
总结:
关键是Optionfortarget的设置,包括output,listing,和C/C++,尤其是C/C++这个选项里一定要设置对。
Define:
USE_STDPERIPH_DRIVER,STM32F10X_MD,这是预定义的两个宏定义。
在stm32f10x.h这个头文件里搜索USE_STDPERIPH_DRIVER有这么一段
#ifdefUSE_STDPERIPH_DRIVER
#include"
stm32f10x_conf.h"
#endif
据说是定义控制了是否在应用中启用外设驱动。
在stm32f10x.h这个头文件里搜索STM32F10X_MD,
/*#defineSTM32F10X_MD*//*!
<
STM32F10X_MD:
STM32Mediumdensity
devices*/STM32中密度器件
#ifdefSTM32F10X_MD
ADC1_2_IRQn=18,/*!
ADC1andADC2globalInterrupt*/USB_HP_CAN1_TX_IRQn=19,/*!
USBDeviceHighPriorityorCAN1TXInterrupts*/
USB_LP_CAN1_RX0_IRQn=20,/*!
USBDeviceLowPriorityorCAN1RX0Interrupts*/
CAN1_RX1_IRQn=21,/*!
CAN1RX1Interrupt*/
CAN1_SCE_IRQn=22,/*!
CAN1SCEInterrupt*/
EXTI9_5_IRQn=23,/*!
ExternalLine[9:
5]Interrupts*/
:
:
#endif/*STM32F10X_MD*/可能是定义中断向量的值吧
就写到这里,才发现自己做也许一个两个小时就能建好工程,但是要把写出来我却用了一个下午。
为了大家跟我都尽快学会STM32,我会努力学习将成果与大家分享;
2013年12月25日
第三章
STM32点亮第一个LED使用keilforA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32f103C8T6 入门 学习 记录
![提示](https://static.bdocx.com/images/bang_tan.gif)