我对STM32的IDR寄存器有疑问
我在下面的代码中将ODR寄存器的pin0设置为1,我想检查IDR寄存器中的pin0是否设置为1。问题是,在将引脚设置为1之后,我必须等待1秒钟,直到IDR寄存器中的pin设置为1。
如何在不等待的情况下读取引脚状态?
我该如何解决这个问题?
void init_pins(void)
{
GPIOG->OTYPER |= (0x01 << 0); // Pin 0 as open drain
GPIOG->OTYPER &= ~(0x01 << 1); // Pin 1 as push - pull
GPIOG->BSRRL = 0x01 << 1; // Pin 1 to High
GPIOG->BSRRL = 0x01 << 0; // Pin 0 to High
microsecond_Delay(1000000);
if( !(GPIOG->IDR & 0x01) )
{
errorCode = -1 ; //Error Code for Bus not floating
}
}
答案 0 :(得分:0)