我正在尝试每100ms 读取一次 Tiva 器件上的输入 PA2、使用一个软件定时器、将1/0值存储在一个16位移位寄存器中。 我正在从频率发生器以5Hz 方波发送。 移位寄存器在0xAAAA 和0x5555之间切换、但通常读取一个0的字符串、移位寄存器更改为0x0000。 我从读取记录了最多22个连续0。 连续的0随机发生、有时相隔仅7秒、有时相隔65秒。
PA2引脚在文件 pin_mux.c 中以这种方式定义
// GPIOInput 的使能引脚 PA2、PA3、PA4、PA5、PA6
MAP_GPIOPinTypeGPIOInput (GPIO_PORta_base、
(GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6);
引脚按这种方式读取
BT_STAT_Val =((GPIOPinRead (GPIO_Porta_base、PA2_Bluetooth_STAT)& PA2_Bluetooth_STAT)>> 2);
如果(BT_STAT_Val = 0)
consecute_0s++;
其他
consecute_0s = 0;
我正在寻找 GPIOPinRead 读取0序列的原因。 我已经验证了示波器上的输入信号、它是连续方波。 我是否可能尝试太快地读取输入?