|
产品上引脚必须复用PA13和PA14。把PA13和PA14初始化成GPIO输入时,读外部输入的电平(频率低于1HZ方波),PA13和PA14读出来的电平一直为0,不知道问题出在哪里? 之前用过STM32F1系列,用下载口做GPIO时要先关SWJ,STM32F0没有这个寄存器,用STM32CubeMX生成的代码也没有什么特殊的地方。 请教大家: 初始化代码如下: GPIO_InitStruct.Pin = LPMODE_PIN; GPIO_InitStruct.Mode = GPIO_MODE_INPUT;//GPIO_MODE_IT_RISING_FALLING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(LPMODE_PORT, &GPIO_InitStruct); 读电平: static u8 CheckPinState(GPIO_TypeDef *SrcPort, u8 SrcPin) { u8 ucCnt = 3; u8 ucStatus = 1; u8 ucHighLevelCnt = 0, ucLowLevelCnt = 0; // remove jitter while (ucCnt--) { (HAL_GPIO_ReadPin(SrcPort, SrcPin)) ? (ucHighLevelCnt++) : (ucLowLevelCnt++); } (ucHighLevelCnt > ucLowLevelCnt) ? (ucStatus = 1) : (ucStatus = 0); return ucStatus; } |
微信公众号
手机版
这一条中,SrcPin的类型不对,不能是u8,应该是u16类型。
见stm32f0xx_hal_gpio.c和stm32f0xx_hal_gpio.h
评分
查看全部评分