1.单片机有rxd txd两个引脚负责数据的接收
2.串行通讯方式,有0123四种,也可分为波特率可调和固定波特率,在SCON中整体设定,也可位设定
3.可调波特率,由计时器1专门负责,注意的地方是,计时器1输出频率的32分之一,输出通讯控制器,这点 可以理解波特率的计算问题.
4.传送数据问题,有个SBUF寄存器,其实是同名的两个寄存器,分别负责接和收.只一句SBUF=12;
数据自动传送出去了,因为计时器1于串口,等同于晶振于单弹片机.
5.传送或接收数据需要时间,就需要标志位做判断,TI RI,每一个接收动作完成后,都会置1,用来查询,但需要软件清零 .
关键字:c52 串口通讯 RS232
引用地址:
c52串口通讯RS232总结
推荐阅读最新更新时间:2024-03-16 14:36
MAX883 利用RS232口为光纤数据环路供电
光纤是光导纤维的简写,是一种利用光在玻璃或塑料制成的纤维中的全反射原理而达成的光传导工具。
[模拟电子]
stm32学习笔记(三)串口通讯实验
#include sys.h #include usart.h ////////////////////////////////////////////////////////////////////////////////// //如果使用ucos,则包括下面的头文件即可. #if SYSTEM_SUPPORT_OS #include includes.h //ucos 使用 #endif ////////////////////////////////////////////////////////////////////////////////// //本程序只供学习使用,未经作者许可,不得用于其它
[单片机]
51单片机IO口模拟串口通讯的设计
#include sbit BT_SND =P1^0; sbit BT_REC =P1^1; IO 口模拟232通讯程序 使用两种方式的C程序 占用定时器0 #define MODE_QUICK #define F_TM F0 #define TIMER0_ENABLE TL0=TH0; TR0=1; #define TIMER0_DISABLE TR0=0; sbit ACC0= ACC^0; sbit ACC1= ACC^1; sbit ACC2= ACC^2; sbit ACC3= ACC^3; sbit ACC4= ACC^4; sbit ACC5= ACC^5; sbit ACC6= ACC^6; sbit AC
[单片机]
STM32F10x 学习笔记8(USART实现串口通讯 DMA 方式)
STM32F10x 的USART 支持DMA 方式,并且在DMA完成后可以产生中断。这对于需要接收或发送大量数据的应用情景是很有帮助的。 在普通的8位或16位单片机中很少有包含DMA控制器的,所以可能许多嵌入式程序员对DMA方式并不熟悉。简单的说,直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。由于无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。 STM32F10x 上具有两个DMA控制器,共有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。
[单片机]
51单片机IO口模拟串口通讯程序设计实例
51 IO口模拟串口通讯C源程 #include reg51.h sbit BT_SND =P1^0; sbit BT_REC =P1^1; /********************************************** IO 口模拟232通讯程序 使用两种方式的C程序 占用定时器0 **********************************************/ #define MODE_QU IC K #define F_TM F0 #define TIMER0_ENABLE TL0=TH0; TR0=1; #define TIMER0_D ISA BLE TR0=0; sbit A CC 0=
[单片机]
RS232接口规范及编程资料(上)
大多数的电脑设备都具有RS-232C接口,尽管它的性能指标并非很好。在广泛的市场支持下依然常胜不衰。就使用而言,RS-232也确实有其优势:仅需3根线便可在两个数字设备之间全双工的传送数据。不过,RS-232C的控制要比使用并行通讯的打印机接口更难于控制。RS-232C使用了远较并行口更多的寄存器。这些寄存器用来实现串行数据的传送及RS-232C设备之间的握手与流量控制。本文将分别描述的串行通讯的原理及具体的软件设计。 (1) RS-232C介绍与PC硬件:
RS-232C使用-3到-25V表示数字“1”,使用3V到25V表示数字“0”,RS-232C在空闲时处于逻辑“1”状态,在开始传送时,首先产生一起始位,起始位为一
[嵌入式]
RS232串口驱动(C51)
/* RS232 driver */ //#include D:\Design\Programming\RS232.h /*引用地址*/ #include reg51.h #define uchar unsigned char #define uint unsigned int ////////////////////////用户接口/////////////////////////// void RS232_ini(/*uint speed*/); void RS232_send(uchar word); uchar RS232_rec_buffer; //数据接收变量 bit RS232_rec_flag;
[单片机]
串口通讯(DMA模式)
在高级语言中,I/O 流输入(input)操作一般都要求指定要读取的数据的最大长度(字节数)。当接收到至少1字节、最多所指定的字节数时,函数返回。 STM32 串口接收数据时,HAL API 要求指定数据长度。但无论轮询、中断或是DMA方式,都必须完整地接收到这么多字节,程序流程才继续。如何接收变长消息,我想不到特别好的实现方式。一种方式是,轮询加超时。另一种方式是,设计消息协议,使消息头为定长,且消息头内包含消息体的长度。但是,如果通讯异常,导致消息数据错误或丢失,那么,还是缺少“提前返回”的机制。 相对来说,轮询加超时的方式似乎更好些。效率低,但是是可靠的。我也不确定。 DMA是STM32内的一个硬件模块,它独立于
[单片机]