我是靠谱客的博主 单纯板栗,最近开发中收集的这篇文章主要介绍MCU基础理论知识地表最强科普,告诉你单片机难不难学,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

电脑收到的信息,它是通过微控制器直接发给电脑的,通讯方式是串行通讯。

ac225fd222323bf9beec185df1fe45ab.png

这种通讯方式非常简单,它只需要三根线。

第一根线是微控制器的发送,连接着电脑的接收。

第二根线是电脑的发送,连接着微控制器的接收。

第三根线是地线。

我们给电脑发送数据,通过第一根线就可以完成。

比如我们给电脑发送大写字母A,那么这一根线上到底发送了什么呢?

通过波形测试发现,微控制器发送的波形是这样的。

87ca95fb8594d527549c2a77f543d636.png

这是一帧完整的串行数据,它一共有十位从左往右依次把数据给发送出去。

第一位是起始位,它永远都是低电平。

第十位是停止位,它永远都是高电平。

然后中间的就是8个二进制数据。

因为是二进制,所以第一位代表一,第二位二,第三位代表四,以此类推,第八位代表128。

按照这个规律,把收到的这个A的波形的每一位相加,最后的结果就是65。

文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信林老师就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///

65和A之间有什么关系呢?

这得看ASCii代码对照表了,在这个对照表中可以看出,65正好对应的大写的A。

e35b3e5039d0d180872ce5cc23931fe5.png

而我们要发送B的话,那微控制器就得发送66了,可以看一下对照表它的波形加起来就是66。

我们想要发送什么数据,就按照ASCii代码对照表上的值,让微控制器去发送高低电平就可以了。

但是需要注意,在发送的时候必须要有时间间隔。

那么这个时间间隔是多少呢?这里看串口通讯的波特率了,一般使用的波特率是9600,意思就是一秒之内发送9600位这样的数据,也就是每一位数据之间的间隔为100微秒。

因此,每1bit的时间就是1/9600秒=104.1666…us,约0.1ms,既然是9600等份,即每1bit紧接着下一个比特,不存在额外的间隔,两台设备要想实现串口通讯,这收发端设置的波特率必须相同,否则是没办法实现通讯的。

按照这个规律,每隔100微秒给电脑发送一次高低电平,电脑就能收到我们发送的是什么。

比如我们现在发送的是66,电脑收到的就是B,如果我们想要它发送更快的话,可以选择更高的波特率。

如果选择115200的波特率,则它在一秒之内可以发送115200个数据,比刚才快了十多倍,则它发送的时间间隔应调整为8.7微秒。

我们发送的时间间隔和波特率一定要严格对应上,如果对应不上,可能会出现以下这样的情况。

0ab703d39f0a1d3bcb2af16dcbfa7077.png

串口通讯的数据结构

起始位: 起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。

数据位: 数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定。传输数据时先传送字符的低位,后传送字符的高位。

奇偶校验位: 奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。

停止位: 停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。

空闲位: 空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。

当我们把数据发送过去,接收方可能已经过了接收时间,这样就会导致数据错乱,刚才我们从串口通讯的最底层解释了它到底是什么,其实在串口发送数据的时候,根本不需要像刚才说的那么麻烦。

就拿对应的开发板为例,这是它发送大写字母C的程序,在程序的最开头设置好波特率,然后直接把C用这个函数就能发送出去,根本不需要我们设置时间间隔,也不需要我们按照阿斯课表像刚才那样一位一位的去发送数据。

因为这个函数做了上面所说的一切,它的本质就是按照时间间隔把大写字母C根据ASCii代码对照表一位一位的发送出去,这就是串口通讯的本质,无论程序有多简单,最后发送的高低电平都是固定不变的,不知道你看懂了吗?看懂了的话别忘了帮我点个赞。

对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就行,免费的,私信发“林老师”就可以拿~点击打开我的头像就能领取

最后

以上就是单纯板栗为你收集整理的MCU基础理论知识地表最强科普,告诉你单片机难不难学的全部内容,希望文章能够帮你解决MCU基础理论知识地表最强科普,告诉你单片机难不难学所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部