高级会员
主题
帖子
积分750
阅读权限30
注册时间2013-10-25
最后登录1970-1-1
在线时间 小时
|
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浮空电平混乱,从而导致主板复位异常,一直处于长时间鸣叫状态
特此分享,希望对同行朋友有所帮助
|
|