问题遇到的现象和发生背景
近日用STM32F103C8T6做一个按键输入检测的小程序,两个按键接入PA12和PA15,初始化均正确,
用GPIO_ReadInputData(GPIOA)读不到GPIO口的变化,但是用GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_12)和GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_15)却能正常读出GPIO口的变化;
注:我用DAP仿真器进行Debug,没有用到PA15管脚。
请指教!
近日用STM32F103C8T6做一个按键输入检测的小程序,两个按键接入PA12和PA15,初始化均正确,
用GPIO_ReadInputData(GPIOA)读不到GPIO口的变化,但是用GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_12)和GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_15)却能正常读出GPIO口的变化;
注:我用DAP仿真器进行Debug,没有用到PA15管脚。
请指教!
这两个函数都是读的同一个寄存器,只不过一个只是取了该寄存器的一位,应该是你读取的位不对吧,或者你的判断方式不对!注意返回的数据:GPIO_ReadInputData(GPIOA),返回的是寄存器的总数据,其值不是0或者1,而是一个16位数据;GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_15)只返回0或者1。