- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语⾔和汇编实现STM32F103点亮LED
⽬录
⼀、芯⽚准备
1)芯⽚选取STM32F103C8T6
材料 :STM32最⼩系 核⼼板(STM32F103C8T6)+⾯包板+3只红绿黄LED 搭建电路,使⽤GPIOB、GPIOC、GPIOD这3个端⼝控制
LED灯 (最⾼时钟2Mhz),轮流闪烁,间隔时长1.34s (这⾥的间隔时长是实验所得)。
STM32F103C8T6是⼀款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V ,⼯
作温度为-40°C ~ 85°C。
2)点亮流⽔灯原理
寄存器可以存储数据,指令,也可以担任⼀些特定的功能,stm32板⼦⾥由很多寄存器,如果想实现流⽔灯操作,就需要对相应的引脚进⾏
操作,想对引脚进⾏操作,就需要对相应的引脚进⾏时钟使能配置、端⼝配置 (⾼或低)寄存器配置、端⼝输出寄存器配置。
1.因为流⽔灯要操作的引脚都是在GPIO端⼝的,所以根据系 结构图,属于AHB总线,所以所要⽤的端⼝的复位和时间控制都受RCC控
制。
2.再看寄存器组起始地址表,可以看到RCC的地址范围,且可以看到要控制的寄存器 (我的板⼦上只有ABC三种)都是在APB2总线。
3.跳到这⾥,就是外设时钟使能寄存器,,偏移量为0x 18,⽽在前⾯⼀个表可以看到起始地址为0x4002 1000,偏移量为0x 18,所以该
寄存器的地址为0x4002 10 18
4.图中圈处理就是该寄存器⾥各位的含义,⽐如第三位也就是2那个位置为 1时,就是GPIOA的时钟开启了。这时我们就可以⽤代码表达出
来了,以PA7引脚为例 :
#define RCC_AP2ENR *((unsigned vo ati e int*)0 #时钟使能寄存器
RCC_AP2ENR|=12 ; //开启APB2-GPIOA外设时钟使能
5.接下来就是配置端⼝配置寄存器了,可以发现上⾯的时钟使能寄存器开启时钟是针对⼀个区域的,并不能确定引脚,⽽这个寄存器就是确
定引脚的,端⼝配置寄存器有两个,分别为端⼝配置低寄存器 (CRL)和端⼝配置⾼寄存器 (CRH),每四位配置⼀个端⼝,如11 、
0 1,11就是选择开启功能,0 1就是选择模式和确定最⼤速度,但有⼀点不⼀样,低寄存器的偏移地址为0x00,⾼寄存器的偏移地址为
0x04。
低寄存器 :
⾼寄存器 :
6.以PA7为⽰例,相应端⼝配置器GPIOA_CRL地址为GPIOA的基址+上偏移量,为0x400 10800,⽽这个端⼝要开启,所以要使对应位
为相应的值,我这⾥是0设置推挽输出并设置最⼤速度为2Mhz,下⾯为相应代码 :
#define GPIOA_CRL *((unsigned vo ati e int*)0
GPIOA_CRL=0 // PA 7推挽输出,2Mhz
7.接下来就是配置端⼝输出寄存器 (ORD),可以看到偏移量为0xc,所以该寄存器的地址等于端⼝的基址加上偏移量,在相应的位赋值可
以控制输出电压,0为低电压,1为⾼电压,以PA7引脚为例⼦,想要输出⾼电压,就需要在第⼋位赋 1。
代码如下 :
#define GPIOA_ORD *((unsigned vo ati e int*)0x4001080C)
GPIOA_ORD|=17; //设置初始灯为亮
8.这⾥就可以控制led亮或者灭了,实现流⽔灯只需增加灯的数量和增加⼀些延时就⾏了。
⼆、C语⾔点亮
1)keil创建项 ⽬及配置
1.打开keil,Proj ect-new μVision Proj ect :
2、设置项 ⽬⼯程的路径和名称,点击保存
2)配置环境
1、设置⼯程的⽬标环境,本实验基于STM32F103C8T6,因此在弹出的窗⼝选择相应的选项,这⾥没有STM32F103C8T6,所以选择
STM32F103C8,点击保存即可:
2、ARM的CMSIS已经把
开发所需要的软件组件都封装好了,因此直接选择即可:
3、⿏标右键单击Source Group 1,具体如下图所⽰ :
最后add,创建⽂件完成 !
4.将代码粘贴进.c⽂件⾥ :
// APB2使能时钟寄存器
#define RCC_AP2ENR *((unsigned vo ati e int*)0x4
您可能关注的文档
最近下载
- 部编版五年级语文上册期末测试卷(共五套)【含答案】.pdf VIP
- 《医学检验学》课件.ppt VIP
- 河南省嵩县凡台沟-武松川金矿矿产资源开采与生态修复方案 .pdf VIP
- 初高中物理学习中思维方法比较.ppt VIP
- 上交叉综合征的肌肉失衡及处理ppt课件.pptx VIP
- (新课标)新外研版中职(英语基础模块2)Unit 7 Inventions Make Life Better《Listening and Speaking》说课稿.doc VIP
- 大学生心理健康知到课后答案智慧树章节测试答案2025年春上海交通大学、北京师范大学、清华大学、吉林大学、中国人民大学、北京航空航天大学、北京理工大学、东北大学、南京大学、华中科技大学、中山大学、电子科技大学.docx VIP
- 五年级青春期教育主题班会课.pptx VIP
- 塑料制品厂供配电毕业设计.doc VIP
- 米家米家洗衣机 | 智投洗 滚筒10kg使用说明书.pdf
原创力文档


文档评论(0)