解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

来源:本站
导读:目前正在解读《解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象》的相关信息,《解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象》的详细说明。
简介:近日因工作关系,需要用STM8L101F3P6这款单片机用IO口模拟串行通讯,波特率2400bps,前辈同事已经写完了程序,我需要拿来研究一下该款MCU的低功耗的情况,而在调试的过程中,发现1个奇怪的问题,描述如下。

在while(1){}的循环中,无论是接收还是发送。第一次循环的收发数据都是错的,此后的循环均正确。比如:PC一个字符一个字符的发送0x01,0x02,0x03,接收到3个字符MCU就发回来,但第1次循环接收到是错误数据0x40,0xA0,0xE0,此后再循环收发均正确。。。百思不得其解,在while(1)循环内还会出这种问题?

代码如下:

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

病症如下:

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

-----------------------------------------------------------------------------------------------------------------------------------

上电后:

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

此时已经能看出问题了,想想看。

-----------------------------------------------------------------------------------------------------------------------------------

发送0x01:

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

-----------------------------------------------------------------------------------------------------------------------------------

发送0x02:

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

-----------------------------------------------------------------------------------------------------------------------------------

发送0x03:

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

-----------------------------------------------------------------------------------------------------------------------------------

症状:

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

-----------------------------------------------------------------------------------------------------------------------------------

再发0x01:

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

-----------------------------------------------------------------------------------------------------------------------------------

再发0x02:

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

-----------------------------------------------------------------------------------------------------------------------------------

再发0x03:

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

看到这,我想应该知道问题出现在哪了吧?哈哈。

-----------------------------------------------------------------------------------------------------------------------------------

分析:

用IO口模拟串行通讯,串口通讯的起始位用低电平0表示,停止位用高电平1来表示。在没有进行数据收发的时候,要使TXD保持高电平,以便能识别出特发数据的起始位。解决办法是,上电初始化时,使TXD引脚为高电平。

-----------------------------------------------------------------------------------------------------------------------------------

病好了:

解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象

提醒:《解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象》最后刷新时间 2024-03-14 00:57:32,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《解决STM8L101单片机IO口模拟串口通讯发生的奇怪现象》该内容的真实性请自行鉴别。