STC学习:串口通信
Posted 18890394937
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STC学习:串口通信相关的知识,希望对你有一定的参考价值。
程序设计目标及程序运行效果说明
程序设计目标:本实验实现的是红外单工方简单上下位机串口数据的发送与接收。单片机通过按键2、3调整发送的数据(0~F),按键1控制数据发送给上位机,并在串口助手的接收数据缓存区显示;上位机设定发送缓存区数据发送数据给单片机单片机将值显示在数码管。
程序运行效果说明:上位机向单片机发送数据:在发送缓冲区显示要发送的数据,按下按键1数据发送到单片机,并在数码管上显示相应的数据;下位机向上位机发送数据:在单片机数码管上显示要发送的数据,可以通过按键2、3进行调整,按下按键1数据发送到上位机,在接受缓冲区显示接收到的数据。
程序相关电路及工作原理说明
1.电路工作原理
单片机集成了USB转串口模块,对应使用RXD线接收数据,用TXD发送数据。每个串口由2个数据缓冲器(相互独立1收1发)、一个移位寄存器(一字节数据一位一位发送出去)、一个串行控制器和一个波特率发生器(这个比较重要,结合相关的定时器)组成。对应发送、接收数据完成(RI、TI硬件置1)都会触发串口中断,但是无法确定是哪个触发的,所以在串口中断中我们要判断是接收数据产生的中断还是发送数据产生的中断,对于发送数据产生的中断,我们要软件将TI清0,并将数据就绪标志清0,允许下一字节数据发送,发送数据函数中通过while循环,等待发送数据准备就绪,完了将就绪的数据复制给SBUF;对于接收数据产生的中断,我们要软件将RI清0,并从SBUF中读取数据。
2.RS232通信原理
RS是“推荐标准”的缩写,232为标识号,C表示修改次数。标准设有25条信号线,包括一个主通道和一个辅助通道。通常 RS-232 接口以9个引脚(DB-9) 或是25个引脚 (DB-25) 的型态出现。
串口通信的传输格式:串行通信中,线路空闲时,线路的TTL电平总是高,经反向RS232的电平总是低。一个数据的开始RS232线路为高电平,结束时Rs232为低电平。数据总是从低位向高位一位一位的传输。示波器读数时,左边是数据的高位。
测试方法
(1)按照“工程建立及下载到开发板整个流程指导.doc”文件将当前目录的Hex文件下载到开发版;
(2) 默认最左边数码管显示00;
(3)程序下载完后默认是留在“程序文件”界面,我们点击“串口助手”选项,对串口、波特率、校验位、停止位进行设置,因为本实验是8位波特率可变的串口通信,所以无需设置校验位、停止位,本实验采用的波特率是9600;
(4) 点击“打开串口”按钮,打开串口;
(5) 设置完后选择“文本模式”或者“HEX模式”,进行数据的发送与接收。
(6)在发送缓存区输入“05”,点击“发送数据”按钮,完成上位机向单片机发送数据,在单片机数码管上显示数字“05”;
(7)通过key2或者key3调整数值(数码管会显示出来)如“0c”,按下key1,完成单片机向上位机发送数据;此时在接收缓冲区显示“0c”。
以上是关于STC学习:串口通信的主要内容,如果未能解决你的问题,请参考以下文章