430之通用异步串口通信模块
扫描二维码
随时随地手机看文章
今天把同学的datasheet复印版本拿过来跟着视频学的,突然间发现复印版本的datasheet好比电子档的要好很多,给我个人的感觉吧,要掌握一门芯片,真的要去仔仔细细的看一下datasheet,静下心来看,发现他和六级中科学类阅读是一样的,我在感到庆幸的同时,还在感谢我高中的班主任,感谢他在高中的时候,英语学习对我的帮助,好了吐槽到这,进入今天的正题~~~
异步通信的特点:
1:可以是7位和8为数据字节,能够进行奇偶校验
2:独立的收发移位寄存器
3:发送数据的有独立的接收和发送寄存器,注意是低位在前面
4:内置空闲线路和地址通信协议
5:拥有起始位探测,可以从低功耗模式中唤醒
6: 可编程的波特率发生器
7:错误探测
8:独立的收发中断
其实这些功能:只需要这张图就可以解决了,各个模块的应用,其实很容易懂的,下面来介绍一下
首先看标志1:三个可以选择的时钟源ACLK,SMCLK,UCLK1,
进去就是一个分频器(标志2),由于分频器存在一定的误差,举个例子,就是学习51的时候,为了的到9600的波特率,不是片外的晶振必须是11.0592MHz 的晶振吗,如果采用12M的就会有误差,430为了克服这个问题,采用了分频器得到整数,小数部分通过一个小数点的逻辑电脑(多数表决得到)当然误差肯定也是存在的,但是430得到了进一步的优化
在进去就要看上下两部分图中标志是3,还有4,其中3是接收部分,4是发射部分,每个部分有移位寄存器,缓存器,还有接发收控制寄寄存器组成
最后在对每个部分进行分析就可以了,关键是要看懂datasheet上的介绍,这张图的了解这么多就可以了
430提供两种多机通信方式:空闲线路通信模式,地址通信模式
其中空闲线路是以线路闲置的时间来判断是数据位还是地址位,其中如果线路闲置了超过10个高电平的间隔,当单片机再次接收到数据是,这把第一个数据当作是地址位,后面的是紧跟的是数据,如果没有超过,这一直认为是数据块
地址通信模式的话,就是在数据中穿插了一个标志位,其中当标志位是1的时候,单片机认为这是地址,当标志位是0时则认为是数据
之后便是430单片机提供的数据检测,比如帧错误,奇偶校验错误,重复接收错误,断开错误,等等还有出现错误是继续送给cpu处理的设置,还是果断抛弃,关键的标志位要看具体的datasheet上的说明
之后便是USART的接收允许和中断允许,也是需要看懂几个图就可以了
接收使能图
首先看一下标号1,这是单片机不允许接收的状态,这个时候,URXEx等于0,当URXEx等于1的时候,单片机处于状态2,这时候,如果给单片机发送任何一个数据,都可以让单片机处于状态3,注意的是,单片机的URXEx是系统硬件清零,当单片机完成状态3,便会向cpu提供一个中断的申请
同样,发送状态也是差不多,这里可以去参考datasheet了,笔者不做另外说明
430单片机的UART看懂这些,就可以看相关的寄存器操作了,但是学习寄存器的使用,光看懂是没用的,要通过具体的编程,好了,今天就总结到这里