请问STM32F030F4如何读取PA口的值

2019-07-14 14:35发布

各位好!!
这样读取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;
               
               
        }



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
IseekerTonyZhu
1楼-- · 2019-07-15 18:18
 精彩回答 2  元偷偷看……
IseekerTonyZhu
2楼-- · 2019-07-15 20:32
zhouxk 发表于 2019-1-15 20:18
HAL不会用,一直用的是标准固件库。
所有外设初始化时必须开时钟,见下图第一个红 {MOD}框,对应IO的就是AHB、APB必须开。
对于输入,就是要置输入方向,要不要上下拉,第二个红 {MOD}框。

谢谢!我再看看。
IseekerTonyZhu
3楼-- · 2019-07-15 21:26
zhouxk 发表于 2019-1-15 20:18
HAL不会用,一直用的是标准固件库。
所有外设初始化时必须开时钟,见下图第一个红 {MOD}框,对应IO的就是AHB、APB必须开。
对于输入,就是要置输入方向,要不要上下拉,第二个红 {MOD}框。

你好!请问一下怎么读取低8位的值呢?
IseekerTonyZhu
4楼-- · 2019-07-15 22:29
非常感谢两位的解答,问题也找到了。读取PA值(GPIOA->IDR)0X603D在仿真的时候是可以用的。正常情况下不能读取正常值,因为仿真脚在PA口中,仿真的时候时钟、数据都读为高电平,正常运行是减去仿真IO口的值为0X203D这样就工作正常了。

一周热门 更多>