stm32 IDR寄存器软件仿真的BUG

/*
 * 函数名:Key_GPIO_Config
 * 描述  :配置按键用到的I/O口
 * 输入  :无
 * 输出  :无
 */
void Key_GPIO_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

      /*开启按键端口(PB0)的时钟*/
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; 
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; 

    GPIO_Init(GPIOB, &GPIO_InitStructure);
}

用MDK软件仿真的时候,无外部下拉,GPIO管脚初始化之后IDR寄存器的值为0,这是软件仿真的BUG。

下面也是一个例子:软件仿真的时候会死在等待松手部分,实际却是正常通过。

 

原文地址:https://www.cnblogs.com/prayer521/p/5881263.html