控制GPIO输出点亮LED灯——直接操作存儲器
使用51单片机控制IO口相对来说要简单得多最小系统搭建完毕后直接通过软件往各IO口写“1”或者写“0”即可。但使用STM32控制IO口输入输出却遠没有这么容易经过一个下午的查阅文献及探索后,略微有了头绪
其中各个寄存器的作用:
端口位设置/复位寄存器 |
用于位操作GPIO的输出狀态的:设置端口为0或1 |
用于位操作GPIO的输出状态的:设置端口为0 |
|
端口锁定后下次系统复位之前将不能再更改端口位的配置 |
每个I/O端口位可以自甴编程,然而I/0端口寄存器必须按32位字被访问(不允许半字或字节访问)GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;这样,在读和更改訪问之间产生IRQ时不会发生危险
输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/Oled贴片灯引脚说明脚上的数据。因此要控制GPIOC端口,必须先使能APB2时钟此外,STM32初始化外设第一步就是开启APB时钟(时钟部分知识暂时知道该如此,往后再学习)
关于GPIO各寄存器的描述: