首页 > 编程知识 正文

gpio端口配置寄存器的作用,stm32单片机gpio配置模式

时间:2023-05-04 21:06:49 阅读:140210 作者:620

首先,

typedef struct

{

vu32 CRL;

vu32 CRH;

vu32 IDR;

vu32 ODR;

vu32 BSRR;

vu32 BRR;

vu32 LCKR;

} GPIO_TypeDef;

BSRR和BRR寄存器来自32位

比较:

1 )置GPIOA-BSRR低16位的某位为'1',则对应的I/O端口管脚置'1';

置GPIOA-BSRR低16位的某位为'0',则对应的I/O端口管脚保持不变。

2 )置GPIOA-BSRR高16位的某位为'1',则对应的I/O端口管脚套'0';

置GPIOA-BSRR高16位的某位为'0',则对应的I/O端口管脚保持不变。

3 )置GPIOA-BRR低16位的某位为'1',则对应的I/O端口管脚套'0';

置GPIOA-BRR低16位的某位为'0',则对应的I/O端口管脚保持不变。

例如:

1 )将端口a的D0、D5、D10、D11设置为高度,并保留其他I/O端口

gioa-bsrr=0x0c 21 (0000110000100001 );

反过头来再好好消化上述第1条特征!!!

2 )将端口a的D1、D3、D14、D15设置为较低,而保留其他I/O端口时

GPIOA-BRR=0xC00A;

假设16位data需要写入高位8位的数据

Gpio_setbits(gpioa,data0xff00 );

gpio_resetbits(gpioa,(~data0xff00 ) );

也可以直接操作这两个寄存器。

GPIOA-BSRR=data0xff00;

GPIOA-BRR=~data0xff00;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。