牛人的stm32学习笔记(寄存器版本)

牛人的stm32学习笔记(寄存器版本)

ID:10869896

大小:613.81 KB

页数:27页

时间:2018-07-08

牛人的stm32学习笔记(寄存器版本)_第1页
牛人的stm32学习笔记(寄存器版本)_第2页
牛人的stm32学习笔记(寄存器版本)_第3页
牛人的stm32学习笔记(寄存器版本)_第4页
牛人的stm32学习笔记(寄存器版本)_第5页
资源描述:

《牛人的stm32学习笔记(寄存器版本)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、一、GPIO口的配置STM32的DGPIO口最多可以有7组(GPIOa~GPIOg),而每一组GPIO口均有16个双向IO组成。并且没个IO口均可配置成8种模式(4种输入模式,4种输出模式)。不管配置哪个IO口也不论将其配置成哪种模式(但是配置成哪种模式要看具体应用,参考《中文参考手册》第105页)都可以按以下步骤来进行配置:(1)使能PORTx(x=A~G)时钟这里就得操作寄存器RCC_APB2ENR(32为寄存器)了15141312111098ADC3ENUSART1ENTIM8ENSPI1ENTIM1ENADC2ENADC1ENIOP

2、GEN76543210IOPFENIOPEENIOPDENIOPCENIOPBENIOPAEN保留AFIOENRCC_APB2ENR的0~15位(06~32位保留)第2~8分别是使能GPIOA~GPIOG时钟的,只要将其置“1”即可,如RCC_APB2ENR

3、=1<<2;就是使能GPIOA的时钟;其余IO口的始终使能一次类推。(2)对相应的IO模式进行配置,低8位配置GPIOx_CRL;高8位配置GPIOx_CRH3130292827262524CNF7[1:0]MODE7[1:0]CNF6[1:0]MODE6[1:0]2322212019

4、181716CNF5[1:0]MODE5[1:0]CNF4[1:0]MODE4[1:0]15141312111098CNF3[1:0]MODE3[1:0]CNF2[1:0]MODE2[1:0]76543210CNF1[1:0]MODE1[1:0]CNF0[1:0]MODE0[1:0]GPIOx_CRL(x=A~G(端口配置低寄存器x=A…E)该寄存器用于配置GPIOx的低8位,具体8种模式的配置见《中文参考手册》例如:GPIOD->CRL&=0XFFFFF0FF;GPIOD->CRL

5、=0X00000300;/PD.2推挽输出;其余IO口的

6、低8位以此类推。3130292827262524CNF15[1:0]MODE15[1:0]CNF14[1:0]MODE14[1:0]2322212019181716CNF13[1:0]MODE13[1:0]CNF12[1:0]MODE12[1:0]15141312111098CNF11[1:0]MODE11[1:0]CNF10[1:0]MODE10[1:0]76543210CNF9[1:0]MODE9[1:0]CNF8[1:0]MODE8[1:0]GPIOx_CRH(端口配置高寄存器x=A…E)该寄存器用于配置GPIOx的高8位,具体8种模

7、式的配置见《中文参考手册》例如:GPIOA->CRH&=0XFFFFFFF0;;GPIOA->CRH

8、=0X00000003;//PA8推挽输出;其余IO口的高8位以此类推。(3)端口的输入和输出电平配置15141312111098IDR15IDR14IDR13IDR12IDR11IDR10IDR9IDR876543210IDR7IDR6IDR5IDR4IDR3IDR2IDR1IDR0GPIOx_IDR(端口输入数据寄存器x=A…E)该寄存器配置IO口的0~15位的输入数据,以16位读出。15141312111098ODR15ODR14OD

9、R13ODR12ODR11ODR10ODR9ODR876543210ODR7ODR6ODR5ODR4ODR3ODR2ODR1ODR0GPIOx_ODR(端口输出数据寄存器x=A…E)该寄存器配置IO口的0~15位的输入初始状态,例如:GPIOA->ODR

10、=1<<13;//PA13上拉输入一般GPIO口配置可仿以下两个程序:voidKEY_Init(void){RCC->APB2ENR

11、=1<<2;//使能PORTA时钟GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入GPIOA->CRL

12、=0X00000008;GPIOA

13、->CRH&=0X0F0FFFFF;//PA13,15设置成输入GPIOA->CRH

14、=0X80800000;GPIOA->ODR

15、=1<<13;//PA13上拉,PA0默认下拉GPIOA->ODR

16、=1<<15;//PA15上拉}voidLED_Init(void){RCC->APB2ENR

17、=1<<2;//使能PORTA时钟RCC->APB2ENR

18、=1<<5;//使能PORTD时钟GPIOA->CRH&=0XFFFFFFF0;GPIOA->CRH

19、=0X00000003;//PA8推挽输出GPIOA->ODR

20、=1<<8;//PA8输

21、出高GPIOD->CRL&=0XFFFFF0FF;GPIOD->CRL

22、=0X00000300;//PD.2推挽输出GPIOD->ODR

23、=1<<2;//PD.2输出高}二、串口

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。