嵌入式stm32接地的按键,判断按键是否按下怎么写(用寄存器控制)?
嵌入式stm32接地的按键,判断按键是否按下怎么写(用寄存器控制)?我的是pe4,pe3有两个按键,pe5一个LED,还有个LED是pb5...
嵌入式stm32接地的按键,判断按键是否按下怎么写(用寄存器控制)?我的是pe4,pe3有两个按键,pe5一个LED,还有个LED是pb5
展开
1个回答
展开全部
1、STM32 的每个 IO 端口都有 7 个寄存器来控制
(1)配置模式的 2 个 32 位的端口 配置寄存器 CRL 和 CRH
(2)2 个 32 位的数据寄存器 IDR 和 ODR
(3)1 个 32 位的置位/复位寄存器 BSRR
(4)一个 16 位的复位寄存器 BRR
(5)1 个 32 位的锁存寄存器 LCKR。
2、每个GPIO端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH)分别控制每个端口的高八位和低八位,如果IO口是0-7号的话,则写CRL寄存器,如果IO口是8-15号的话,则写CRH寄存器,两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR)一个是只读作输入数据寄存器,一个是只写作输出寄存器,一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。常用的IO端口寄存器只有四个:CRH,CRL,IDR,ODR。
3、另外,STM32的每个端口使用前都要将其时钟使能,STM32的GPIO的时钟统一挂接在APB2上,具体的使能寄存器为RCC_APB2ENR,该寄存器的第2位到第8位分别控制GPIOx(x=A,B,C,D,E,F,G)端口的时钟使能,当外设时钟没有启用时,程序不能读出外设寄存器的数值
(1)配置模式的 2 个 32 位的端口 配置寄存器 CRL 和 CRH
(2)2 个 32 位的数据寄存器 IDR 和 ODR
(3)1 个 32 位的置位/复位寄存器 BSRR
(4)一个 16 位的复位寄存器 BRR
(5)1 个 32 位的锁存寄存器 LCKR。
2、每个GPIO端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH)分别控制每个端口的高八位和低八位,如果IO口是0-7号的话,则写CRL寄存器,如果IO口是8-15号的话,则写CRH寄存器,两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR)一个是只读作输入数据寄存器,一个是只写作输出寄存器,一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。常用的IO端口寄存器只有四个:CRH,CRL,IDR,ODR。
3、另外,STM32的每个端口使用前都要将其时钟使能,STM32的GPIO的时钟统一挂接在APB2上,具体的使能寄存器为RCC_APB2ENR,该寄存器的第2位到第8位分别控制GPIOx(x=A,B,C,D,E,F,G)端口的时钟使能,当外设时钟没有启用时,程序不能读出外设寄存器的数值
追问
使能了的
但是没有用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询