单片机外设复位的处理

硬复位:

方法一,将TFTLCD 的 RST 同 STM32F1 的 RESET 连接在一起,只要按下开发板的 RESET 键, 就会对 LCD 进行硬复位。
在这里插入图片描述

方法二,将TFTLCD 的 RST 同 STM32F1 的 GPIO连接在一起,先拉低,延迟100us,然后再释放RST(拉高),完成复位。

//直接将LCD的reset引脚接到芯片的nrst引脚,可以实现,中间就是出点问题,就是直接上电就白屏,必须手动按一下复位键,这也不符合上电复位的原理呀。这个或许就是下面文章所讲的不同步复位吧。


void LCD_Init(void)
{
    SPI1_Init();
   LCD_Reset();//直接将LCD的reset引脚接到芯片的nrst引脚,可以实现,中间就是出点问题,就是直接上电就白屏,必须手动按一下复位键,这也不符合上电复位的原理呀
}
 
 
void LCD_Reset(void)
{
  GPIO_ResetBits(GPIOB,GPIO_Pin_11);//清0
    delay_ms(100);
    GPIO_SetBits(GPIOB,GPIO_Pin_11);//置1
    delay_ms(100);

https://www.docin.com/p-22437832.html
单片机的复位信号产生电路多采用看门狗电路。在程序中,合理地插入“喂狗”指令,可以消除单
片机的死机现象。当单片机有外设时,习惯的接法是根据外设所需要的复位信号的电平,直接将外设复位
端接看门狗电路的输出或反向输出。这也是许多资料上介绍的方法。在实验室或干扰较少的场合,按这种
接法系统通常能正常工作。但是,在干扰较多或者在MI电磁兼容试验时,却会出现如串行接口通讯停止、
输入/输出错误、显示混乱等现象。看门狗电路明明产生了复位信号,单片机程序肯定重新对外设进行了初
始化,但即使这时去掉干扰信号,外设也不能自动恢复正常工作。只有关掉电源,并等待数秒后再开启电
源,外设才能恢复正常工作。此时若再加上干扰信号,又会重复以上过程。而EMI电磁兼容试验要求在去
掉干扰信号后,外设应能自动恢复正常工作。其实这种现象是由外设的复位电路不合理造成的。
在有些资料中认为,这种情况是因为在PCB制版图中复位电路通常离CPU较近,离外设较远,由于分
布电容的影响,外设的复位脉冲的有效宽度变窄,不足以可靠复位外设。或者即使外设的复位脉冲的有效
宽度足够宽,分布电容使外设的复位滞后CPU一段时间,若CPU上电后立即初始化外设,由于外设尚未复
位完毕,因此CU上电后延时一段时间,等待外设复位后,再对其初始化。这种方法虽然在一定程度上改
善了外设的复位状况。但不能从根本上消除外设的复位不正常的现象。因为在外设复位期间,如碰到干扰,
便很难保证可靠复位。CPU复位后一般不可能知道外设是否可靠复位,即使知道外设未能可靠复位,CPU也
无法单独再次复位外设,因为外设是不可控的。要消除这种现象,须从软件和硬件两方面着手,从增加外设
复位电路的可控性开始。方法很简单,使外设的复位信号不取自看门狗电路,而取自CPU的某一输出引脚,
如8051单片机的P10。假定外设为低电平复位有效,当CPU复位时P10为高电平,CPU复位后,软件控制P10
变为低电平,延时适当时间后,软件再控制P10变为高电平。这样CU知道外设已复位,就可以对其进行
初始化编程了。当然,在软件复位外设和外设工作期间,外设都可能因干扰而变得不能正常工作,这时可
以借鉴硬件看门狗电路的思想,设计一个软件看门狗来监视外设的工作情况。所谓软件看门狗,就是在外
设复位可控的电路中,用软件来监测或推测外设的工作情况,一但认为外设工作异常,则通过CPU强行复
位并初始化,而其他外设照常工作。
http://news.eeworld.com.cn/mcu/article_2018020537686.html
5 外设的复位及稳定性设计
5.1 外设复位的特殊性与可控性
嵌入式系统通常有LCD显示、摄像头和无线通信模块等外设。外设正常工作也需要正确的复位。有些设计直接将外设的复位引脚与处理器的复位引脚连在一起,共用一个外部硬件复位源,如图7(a)所示。这种连接方式存在一些问题。首先,这要求复位电路有足够的复位时间,才能保证处理器和外设都正确复位;其次,一旦外设出问题,那么处理器也需要复位,整个系统都需重新初始化;最后,容易产生非同步复位,在处理器复位后,对外设写入命令时,可能被外设所复位掉,导致初始化出错。
在这里插入图片描述
这些问题可以从硬件和软件两个方面来处理。硬件方面,对处理器和外设的复位分别进行复位电路设计,适当展宽复位脉冲。软件方面,采用延时法,CPU上电后延时一段时间,等待外设复位充分,再进行外设初始化。最可靠并最具操作性的是保证外设复位的可控性,使外设的复位信号与处理器复位信号分开,由处理器的某一GPIO来控制。当处理器稳定上电完成自身的初始化后,由处理器软件控制外设复位,适当延时后,再对外设进行初始化,如图7(b)所示。
外设复位的可控性,对要求特殊复位时序的外设尤其有用。不同的外设,其复位时序要求不同,具有个性与特殊性,系统应根据具体的复位时序要求进行个性化复位,否则可能导致外设工作不正常。在这里插入图片描述
对于应用系统中有多个外设时,不应该如图8(a)那样把多个外设的复位引脚连在一起,由处理器的一个GPIO控制,进行一次外部硬件复位。通常采用如图8(b)的连接方式,处理器完成上电复位后,分别通过不同的GPIO控制、采用不同的延时对各外设分别进行上电及复位。系统运行过程中,某个外设因受干扰工作不正常时,可以单独对该外设进行复位操作,而不影响其他外设;有利于提高系统设计的灵活性和可靠性,能保证多个外设的可靠运行。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值