§MiCE§ 发表于 2018-1-21 11:00:39

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;
               
               
        }


§MiCE§ 发表于 2018-1-21 11:02:02

这样没办法读到对应的值,有什么方法读取PA口的值吗?

toofree 发表于 2018-1-21 14:52:35

本帖最后由 toofree 于 2018-1-21 15:07 编辑

STM32F030F4没用过。但STM32全系列有个特点,就是管脚模拟输入功能,要做数字输入用,得初始化成数字输入功能。

更正一下,刚看了下STM32F030的用户手册,PA口上电默认是数字输入功能。


toofree 发表于 2018-1-21 14:57:52

当然,要初始化IO工作模式和正常操作IO口时,PA口对应的外设时钟必须开启,上电默认是关闭的。

§MiCE§ 发表于 2018-1-21 15:00:49

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口配置是这样的,有问题吗?

toofree 发表于 2018-1-21 15:58:02

§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必须开。
对于输入,就是要置输入方向,要不要上下拉,第二个红色框。








wenyangzeng 发表于 2018-1-21 21:09:53

§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;

§MiCE§ 发表于 2018-1-24 21:05:16

toofree 发表于 2018-1-21 14:52
STM32F030F4没用过。但STM32全系列有个特点,就是管脚模拟输入功能,要做数字输入用,得初始化成数字输入功 ...

学习了!谢谢!

§MiCE§ 发表于 2018-1-24 21:05:56

toofree 发表于 2018-1-21 14:57
当然,要初始化IO工作模式和正常操作IO口时,PA口对应的外设时钟必须开启,上电默认是关闭的。 ...

IO时钟是开着的,谢谢你的建议。

§MiCE§ 发表于 2018-1-24 21:07:03

toofree 发表于 2018-1-21 15:58
HAL不会用,一直用的是标准固件库。
所有外设初始化时必须开时钟,见下图第一个红色框,对应IO的就是AHB ...

谢谢!我再看看。
页: [1] 2
查看完整版本: STM32F030F4怎么读取PA口的值