问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

百度文库 牛人的STM32学习笔记(寄存器版本) 帮忙下载一下 谢谢

发布网友 发布时间:2023-07-08 18:09

我来回答

2个回答

热心网友 时间:2023-10-22 18:03

附件已上传 请下载  满意请采纳回答


热心网友 时间:2023-10-22 18:03

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

RCC_APB2ENR的0~15位(06~32位保留)
第2~8分别是使能GPIOA~GPIOG时钟的,只要将其置“1”即可,如
RCC_APB2ENR|=1<<2;就是使能GPIOA的时钟;其余IO口的始终使能一次类推。 (2)对相应的IO模式进行配置,低8位配置GPIOx_CRL;高8位配置GPIOx_CRH
31 30 29 28 27 26 25 24 CNF7[1:0] MODE7[1:0] CNF6[1:0] MODE6[1:0] 23 22 21 20 19 18 17 16 CNF5[1:0] MODE5[1:0] CNF4[1:0] MODE4[1:0] 15 14 13 12 11 10 9 8 CNF3[1:0] MODE3[1:0] CNF2[1:0] MODE2[1:0] 7 6 5 4 3 2 1 0 CNF1[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|=0X00000300;/PD.2推挽输出;其余IO口的低8位以此类推。
31 30
29 28 27 26 25 24 CNF15[1:0] MODE15[1:0] CNF14[1:0] MODE14[1:0] 23 22 21 20 19 18 17 16 CNF13[1:0] MODE13[1:0] CNF12[1:0] MODE12[1:0] 15 14 13 12 11 10 9 8 CNF11[1:0] MODE11[1:0] CNF10[1:0] MODE10[1:0] 7 6 5 4 3 2 1 0 CNF9[1:0] MODE9[1:0] CNF8[1:0] MODE8[1:0]

GPIOx_CRH(端口配置高寄存器x=A„E)
该寄存器用于配置GPIOx的高8位,具体8种模式的配置见《中文参考手册》例如: GPIOA->CRH&=0XFFFFFFF0;;GPIOA->CRH|=0X00000003;//PA8 推挽输出;其余IO口的高8位以此类推。
15 14 13 12 11 10 9 8 ADC3EN
USART1EN TIM8EN
SPI1EN
TIM1EN
ADC2EN
ADC1EN
IOPGEN
7 6 5 4 3 2 1 0 IOPFEN IOPEEN IOPDEN IOPCEN IOPBEN IOPAEN 保留 AFIOEN

(3)端口的输入和输出电平配置
15 14 13 12 11 10 9 8 IDR15
IDR14
IDR13
IDR12
IDR11
IDR10
IDR9
IDR8
7 6 5 4 3 2 1 0 IDR7 IDR6 IDR5 IDR4 IDR3 IDR2 IDR1 IDR0

GPIOx_IDR(端口输入数据寄存器x=A„E) 该寄存器配置IO口的0~15位的输入数据,以16位读出。
15 14 13 12 11 10 9 8 ODR15 ODR14 ODR13 ODR12 ODR11 ODR10 ODR9 ODR8 7 6 5 4 3 2 1 0 ODR7 ODR6 ODR5 ODR4 ODR3 ODR2 ODR1 ODR0

GPIOx_ODR(端口输出数据寄存器x=A„E)
该寄存器配置IO口的0~15位的输入初始状态,例如:GPIOA->ODR|=1<<13;//PA13上拉输入
一般GPIO口配置可仿以下两个程序: void KEY_Init(void) {
RCC->APB2ENR|=1<<2; //使能PORTA时钟 GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入 GPIOA->CRL|=0X00000008;
GPIOA->CRH&=0X0F0FFFFF;//PA13,15设置成输入 GPIOA->CRH|=0X80800000; GPIOA->ODR|=1<<13; //PA13上拉,PA0默认下拉 GPIOA->ODR|=1<<15; //PA15上拉 }
void LED_Init(void) {
RCC->APB2ENR|=1<<2; //使能PORTA时钟 RCC->APB2ENR|=1<<5; //使能PORTD时钟 GPIOA->CRH&=0XFFFFFFF0;
GPIOA->CRH|=0X00000003;//PA8 推挽输出 GPIOA->ODR|=1<<8; //PA8 输出高 GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300;//PD.2推挽输出 GPIOD->ODR|=1<<2; //PD.2输出高 }

var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;

二、串口通信
STM32最多可以提供5路串口,其串口配置主要有以下步骤: (1)串口时钟使能

RCC_APB2ENR的0~15位(16~32位保留) 在寄存器RCC_APB2ENR里的第14位就是对串口1的时钟使能即: RCC_APB2ENR|=1<<14; //使能串口1时钟 , 那么除串口1的时钟使能在RCC_APB2ENR外其余的时钟使能位在寄存器RCC_APB1ENR里,看下表:
31
30
29 28 27 26 25 24 保留
DACEN
PWREN
BKPEN 保留 CANEN 保留
23 22 21 20 19 18 17 16 USBEN
I2C2EN
I2C1EN
UART5EN
UART4EN UART3EN UART2EN 保留
15 14 13
12 11 10 9 8 SPI3EN
SPI2EN
保留 WWDGEN 保留
7
6
5 4 3 2 1 0 保留
TIM7EN TIM6EN TIM5EN TIM4EN TIM3EN TIM2EN

RCC_APB1ENR
例如:RCC_APB1ENR|=1<<17; //使能串口2时钟 ,其余串口时钟使能以此类推。 (2)串口复位即结束复位
STM32在使用串口时不管当前该串口出于什么状态都先要将其复位,而复位后要将其结束复位。串口复位主要在寄存器RCC_APB1RSTR(串口1的复位)和寄存器 RCC_APB2RSTR(其余串口复位)这两个寄存器如下表
15
14 13
12
11
10
9
8
ADC3RST USART1RST TIM8RST SPI1RST TIM1RST ADC2RST ADC1RST IOPGRST 7
6 5
4
3
2
1 0
IOPFRST IOPERST IOPDRST IOPCRST IOPBRST IOPARST 保留 AFIORST

RCC_APB2RSTR(APB2外设复位寄存器)
寄存器RCC_APB2RSTR的第14位是进行串口1的复位如:RCC_APB1RSTR|=1<<14; //将串口1复位 ,然后结束复位RCC_APB1RSTR|=~(1<<14); //结束串口1复位 其余串口复位在寄存器 RCC_APB1RSTR里如下表:
15 14 13 12 11 10 9 8 ADC3EN
USART1EN TIM8EN
SPI1EN
TIM1EN
ADC2EN
ADC1EN
IOPGEN
7 6 5 4 3 2 1 0 IOPFEN IOPEEN IOPDEN IOPCEN IOPBEN IOPAEN 保留 AFIOEN

var cpro_psid = "u2787156";
var cpro_pswidth = "966";
var cpro_psheight = "120";

http://wenku.baidu.com/view/a58c835027284b73f24250d6.html
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在RLC电路中,谐振频率为___同期为___谐振条件为___? 电磁振荡并联 RLC振荡回路的谐振频率与振荡特性 佛手柑水培还是干放 中山市美派电器有限公司怎么样? 成都美派电器有限公司怎么样? 两条不同品牌的DDR3内存条可以一起用吗 驾驶证的牡丹卡多长时间能办下来 新衣服必须用洗衣液洗才能去甲醛吗? 梦见逛街被偷抢 2024年买什么品牌的运动男鞋比较好? 谁能帮我写一个STM32f103,I2C通信等我示例代码? 华为荣耀恢复出厂设置后不能安装应用怎么办? 问女生有喜欢的人文言文 stm32单片机两个I2c1和i2c能同时初始化使用吗???下面是初始化程序正确吗??再次谢过 2010年中考绵阳数学填空题18题的具体解析 用古文问男的有没有女朋友 和一个女同学好上,但是弄完她脸不是很红正常吗? 女贞蜂蜜的功效与作用 野三坡黑芝麻是真的吗 按键盘上PrtSc键没反应怎么办? 我没有真正的想开过,只有想开过开心过几个小时或几天,大多数时候心情都很糟糕,怎样才能长期开心? 谁看见过类似寻宝类的动漫 如何才能快乐生活呢? 海天与“千禾们”的零添加博弈,都对销量造成了什么影响? prt sc键是什么意思 日本有多少现役航空母舰,标准版的 海天味业和海康威视哪个更有优势 食品质量与安全进中粮可以吗 有前科的人可以进中储粮吗 孕妇女人梦见脚踩在水里 和高中女同学上的是一所大学,经常在一起玩,慢慢的有了好感,我该不该进一步发展 六月适合种什么花(适合六月种植的花推荐) 谁在用古之极玛咖,效果怎么样 机动车载人应遵守什么规定? 男人一过40岁,若身体出现这4种症状,别大意是加速衰老的表现 6月份适合种什么花(盘点六种适合六月种植的花) 机动车载物、载人规定 6月种什么花比较合适 古之极玛咖怎么样 优质好产品 玛卡怎么吃效果最好?玛卡的吃法 男人衰老的症状有哪些? 六月份种什么花合适(夏季播种的花卉大全) 吐鲁番6月份适合种啥花 用手机号码申请的怎么换绑定手机号? 简欧风装修设计要点简欧风格怎么装修 卧室摆件选什么风格卧室摆件有哪些种类 autoCAD里面,比如我画了100个圆,我从右下角向左上角全选时,不会全部选中,怎么回事? 女性业障重的表现 桌面有一个天天捕鱼的东西总让我按东西,怎么取消啊 fishingjoy怎么卸载