各位好!!
这样读取PA口的值是不是有问题?
void ACC_DET_SWITCH ()
{
//sta
tic uint32_t ACC_DET_COUNT = 0;
//static uint32_t LOCK_CLOSE_DET_Count = 0;
static uint32_t ReadGPIO_PA_All = 0;
ReadGPIO_PA_All = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_All);
switch(ReadGPIO_PA_All)
{
case 0x603D:
HAL_Delay(50);
MIRROR_OPEN ;
HAL_Delay(4000);
MIRROR_OPEN_STOP;
break;
}
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
我的IO口配置是这样的,有问题吗?
HAL不会用,一直用的是标准固件库。
所有外设初始化时必须开时钟,见下图第一个红 {MOD}框,对应IO的就是AHB、APB必须开。
对于输入,就是要置输入方向,要不要上下拉,第二个红 {MOD}框。
初始化少了一句:
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
读某1位:
HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7 );
读GPIO口:
ReadGPIO_PA_All=GPIOB->IDR;
学习了!谢谢!
一周热门 更多>