代码如下,初始化IO时,我想默认LED_RUN_PIN和Core_Reboot_PIN是高电平,所以Core_Reboot_PIN我在外部上拉了10K电阻,LED_RUN_PIN没有上拉(这个没有大影响),现在存在了如下问题:
初始化管脚后Core_Reboot_PIN我测量是低电平,导致我另一个mcu一直在复位,我必须在初始化时手动输出高电平才可以,但是我看函数内部实现不是no pull吗,我在外部上拉不可以吗?还是stm32上电默认输出就是低电平?刚开始搞嵌入式,不太明白内部机制,帮忙解答一下。
#define LED_RUN_PIN GET_PIN(C, 13)
#define LED_RUN_ON rt_pin_write(LED_RUN_PIN, PIN_LOW)
#define LED_RUN_OFF rt_pin_write(LED_RUN_PIN, PIN_HIGH)
#define Core_Online_PIN GET_PIN(C,0)
#define Core_Run_PIN GET_PIN(C,1)
#define Core_Reboot_PIN GET_PIN(C,2)
#define Core_Onlline rt_pin_read(Core_Online_PIN)
#define Core_Run rt_pin_read(Core_Run_PIN)
#define Core_Reboot_On rt_pin_write(Core_Reboot_PIN, PIN_LOW)
#define Core_Reboot_Off rt_pin_write(Core_Reboot_PIN, PIN_HIGH)
int main(void)
{
rt_pin_mode(LED_RUN_PIN, PIN_MODE_OUTPUT);//管脚输出默认就是低电平,代码内部是NO PULL啊
LED_RUN_OFF;//配置结束必须手动置高电平,才能默认高电平
rt_pin_mode(Core_Online_PIN, PIN_MODE_INPUT_PULLUP);
rt_pin_mode(Core_Run_PIN, PIN_MODE_INPUT_PULLUP);
rt_pin_mode(Core_Reboot_PIN, PIN_MODE_OUTPUT);//管脚输出默认就是低电平,代码内部是NO PULL啊
Core_Reboot_Off;//配置结束必须手动置高电平,才能默认高电平,即使外部有上拉电阻也不好使
}
更多回帖