STM32F030F4怎么读取PA口的值
各位好!!这样读取PA口的值是不是有问题?
void ACC_DET_SWITCH ()
{
//static 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;
}
这样没办法读到对应的值,有什么方法读取PA口的值吗? 本帖最后由 toofree 于 2018-1-21 15:07 编辑
STM32F030F4没用过。但STM32全系列有个特点,就是管脚模拟输入功能,要做数字输入用,得初始化成数字输入功能。
更正一下,刚看了下STM32F030的用户手册,PA口上电默认是数字输入功能。
当然,要初始化IO工作模式和正常操作IO口时,PA口对应的外设时钟必须开启,上电默认是关闭的。 toofree 发表于 2018-1-21 14:52
STM32F030F4没用过。但STM32全系列有个特点,就是管脚模拟输入功能,要做数字输入用,得初始化成数字输入功 ...
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口配置是这样的,有问题吗? §MiCE§ 发表于 2018-1-21 15:00
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_M ...
HAL不会用,一直用的是标准固件库。
所有外设初始化时必须开时钟,见下图第一个红色框,对应IO的就是AHB、APB必须开。
对于输入,就是要置输入方向,要不要上下拉,第二个红色框。
§MiCE§ 发表于 2018-1-21 15:00
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_M ...
初始化少了一句:
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
读某1位:
HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_7 );
读GPIO口:
ReadGPIO_PA_All=GPIOB->IDR; toofree 发表于 2018-1-21 14:52
STM32F030F4没用过。但STM32全系列有个特点,就是管脚模拟输入功能,要做数字输入用,得初始化成数字输入功 ...
学习了!谢谢! toofree 发表于 2018-1-21 14:57
当然,要初始化IO工作模式和正常操作IO口时,PA口对应的外设时钟必须开启,上电默认是关闭的。 ...
IO时钟是开着的,谢谢你的建议。 toofree 发表于 2018-1-21 15:58
HAL不会用,一直用的是标准固件库。
所有外设初始化时必须开时钟,见下图第一个红色框,对应IO的就是AHB ...
谢谢!我再看看。
页:
[1]
2