历史上的今天
今天是:2024年12月22日(星期日)
2020年12月22日 | STM32自学笔记GPIO寄存器
2020-12-22 来源:eefocus
GPIO寄存器一览
以下图片全部摘自STM32中文参考手册
GPIOx->CRL(x=A…E)

这个寄存器主要是设置GPIO的低8位(0~7)端口的配置
MODE 用来设置端口输出的速度 (在输入模式下不需要配置,仅在输出模式下需要配置)
CNF 用来设置输入模式或者输出模式
例如
设置PA0为推挽输出速度为50MHz
GPIOA->CRL&=0XFFFFFFF0;//PA0配置清零
GPIOA->CRL|=0X00000003;//PA0输出 速度50MHz
设置PA0为上下拉输入(默认下拉)
GPIOA->CRL&=0XFFFFFFF0;//PA0配置清零
GPIOA->CRL|=0X00000008;//PA0上下拉输入(默认下拉)
设置PB5为模拟输入
GPIOB->CRL&=0XFF0FFFFF;//PB5配置清零
GPIOB->CRL|=0X00000000;//PB5模拟输入
如果看不懂最好复习一下子2进制和16进制之间的转换
GPIOx->CRH(x=A…E)

这个寄存器和GPIOx->CRL大同小异,不同的是这个寄存器是设置高8位(8~15)端口的配置
GPIOx->IDR(x=A…E)

这个寄存器是用来读取当前端口的电平状态,低16位(0~15)每一位对应每一个端口
例如
读取PA0的数值
unsigned char a;
a=GPIOA->IDR&1<<0;
读取PB5的数值
unsigned char a;
a=GPIOB->IDR&1<<5;
读取PB15的数值
unsigned char a;
a=GPIOB->IDR&1<<15;
GPIOx->ODR(x=A…E)

这个寄存器是用来设置当前端口的电平状态,低16位(0~15)每一位对应每一个端口
例如
设置PA0为1
GPIOA->ODR|=1<<0;
设置PB5为1
GPIOB->ODR|=1<<5;
设置PA0为0
GPIOA->ODR|=0<<0;
看不懂的最好复习一下C语言的位运算
GPIOx_BSRR(x=A…E)

这个寄存器是用来设置当前端口的电平状态,低16位(0~15)设置端口的电平为1,高16位设置端口电平为0
例如
设置PA0为1
GPIOA->BSRR|=1<<0;
设置PA0为0
GPIOA->BSRR|=1<<16;
设置PB5为1
设置PB5为0
GPIOA->BSRR|=1<<21;
GPIOx_BRR(x=A…E)

这个寄存器是用来清除当前端口的电平状态,也就是把电平状态设置为0
例如
清除PA0的电平状态
GPIOA->BRR|=1<<0;
清除PB5的电平状态
GPIOB->BRR|=1<<5;
GPIOx_LCKR(x=A…E)

这个寄存器是用来锁住当前端口的配置
不常用,所有就没有记笔记了
个人总结
常用的寄存器有GPIOx->CRL,GPIOx->CRH,GPIOx->ODR,GPIOx->IDR
需要熟练掌握位运算,2进制与16进制之间的转换
史海拾趣
|
为什么把NT-TR01F模块一接为接收模式,模块就不断地产生数据,而且产生数据的速率很高。请各位高手帮帮忙解决一下,急啊~~谢谢啦!!!… 查看全部问答> |
|
头戴式显示器有什么稀奇的,入眼式才厉害呢!华盛顿大学的研究小组将灯管与电路整合进了隐形眼镜。这种入眼式显示器与普通隐形眼镜一般大,可惜现在还点不亮。不过在能点亮之前,相信大家都很关心一个问题--佩戴舒适度。因此他们在兔子的红眼睛 ...… 查看全部问答> |
|
嵌入式技术已经无处不在,从随身携带的mp3、语言复读机、手机、PDA到家庭之中的智能电视、智能冰箱、机顶盒,再到工业生产、娱乐中的机器人,无不采用嵌入式技术。各大跨国公司及国内家电巨头如INTEL、TI、SONY、三星、TCL、联想和康佳等都面临着嵌 ...… 查看全部问答> |
|
1.串口通信的基本原理: 一般计算机与外部设备通讯有两种方式: 并行传送(Parallel ):一次的传输量为8个位(1字节),通过并行端口,如打印机 串行传送(Serial ):一次只传输1个位,通过串行端口,如RS-232 位与字节的概念: &n ...… 查看全部问答> |
|
我们单位原来做的那一块极度萎缩,认为没有前途,根据大政方针要深入嵌入式开发,可是我对于这一块很不熟悉,对于C、DSP、硬件、linux内核都是重头入门,做了10多年的MIS,都快要人到中年了,现在又要重头入门,我该怎么办啊?真的要再重头来做嵌入 ...… 查看全部问答> |
|
本帖最后由 Sur 于 2014-11-1 12:14 编辑 1、 首先要下载一个ccs_setup_win32安装包(8.72M)地址https://download.eeworld.com.cn/detail/Sur/5371212、 下面需要注意的是电脑里面的防病毒软件,如果没有关的话会有如下对 ...… 查看全部问答> |
|
本帖最后由 le062 于 2015-10-15 10:11 编辑 1. 内核版本与官网15.05源不一致 解决:已将git中的master回溯到15.05,重新拉取编译即可。放在百度云中的dl文件夹也已更新。 2. nfs服务器不能开机自启动以及启动后局域网不能访问 在/etc/pro ...… 查看全部问答> |
|
功能要求: 1,MT66XX平台,根据功能要求选取性价比最合适的。 2,蓝牙抗干扰性强 3,无线电广播 4,电源充放 Q:久陆七叁叁5零,重酬!! 此内容由EEWORLD论坛网友9673350原创,如需转载或用于商业用途需征得作者同意并注明出处 … 查看全部问答> |




