一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 1915|回复: 0
收起左侧

关于解决STM32 IO配置导致复位失败的问题

[复制链接]
发表于 2019-9-27 15:59 | 显示全部楼层 |阅读模式
int main()
{ u8 i;
        clk_init();
        board_init();

        ///***开机提示音**///
        for(i=0;i<3;i++)
        {
        Buzzer_on;

        delay_ms(400);       
  Buzzer_off;

        delay_ms(400);
         
        }
}
如上述简单程序,本该上电蜂鸣器叫三次,结果,经常出现蜂鸣器持续鸣叫,尤其是液晶显示屏未连接的时候,概率接近100%。经过仔细排查,排除了复位电容的硬件问题,确定为软件导致
void uart2_LCD_init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;                         //uart2
                NVIC_InitTypeDef NVIC_InitStructure;
                USART_InitTypeDef USART_InitStructure;
    //串口2 gpio配置
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;                //选择           TXD
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;        //速度配置为2M
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);                    //将gpio设置 初始化入相应寄存器
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;                //选择                           RXD
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;        //速度配置为2M
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
    GPIO_Init(GPIOA, &GPIO_InitStructure);                          //将gpio设置 初始化入相应寄存器
                                   ///**配置lcd busy  io**////
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;                //选择           TXD
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;        //速度配置为2M
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}
最后查到就是上面这个红色io配置的问题,修改为了上拉输入,问题得以解决。最初是配置成了浮空输入,上电状态由于串口显示屏未插或 显示屏启动有延时,导致了io浮空电平混乱,从而导致主板复位异常,一直处于长时间鸣叫状态
特此分享,希望对同行朋友有所帮助

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-29 22:30 , Processed in 0.057852 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表