帮忙看一个c语言编的串口通信程序

帮忙看一个c语言编的串口通信程序,第1张

#include <reg52h>

#define uchar unsigned char

#define uint unsigned int

unsigned char a,i;

uchar code table[]="I get ";

void init()

{

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

REN=1;

SM0=0;

SM1=1;

EA=1;

ES=1;

}

void main()

{

init();

while(1);

}

void ser() interrupt 4

{

while(RI==0); //收去一个字符

a=SBUF;

RI=0;

if(a=='x')

for(i=0;i<6;i++) //发送部分,中断要做的事情尽量放在中断里

{

TI=0;

SBUF=table[i];

while(TI==0);

TI=0;

}

}

SBUF是可以直接寻址的专用寄存器。物理上,它对应着两个寄存器,即一个发送寄存器一个接收寄存器,CPU写SBUF就是修改发送寄存器;读SBUF就是读接收寄存器。接收器是双缓冲的,以避免在接收下一帧数据之前,CPU未能及时的响应接收器的中断,没有把上一帧的数据读走而产生两帧数据重叠的问题。对于发送器,为了保持最大的传输速率,一般不需要双缓冲,因为发送时CPU是主动的,不会产生重叠问题。

串口打印停止,点一下关闭串口,再开启串口又恢复了的原因是串口连接不稳定、缓存区满、程序错误或者串口设置错误。

1、串口连接不稳定:串口连接不稳定,导致串口打印停止。关闭串口后重新连接,会恢复稳定的连接,使串口打印正常。

2、缓存区满:串口打印缓存区满了,导致串口打印停止。关闭串口后重新连接,会清空缓存区,使串口打印正常。

3、程序错误:串口打印程序出现错误,导致串口打印停止。关闭串口后重新连接,会重新启动程序,使串口打印正常。

4、串口设置错误:串口设置错误,导致串口打印停止。关闭串口后重新设置串口参数,会使串口打印正常。

USB转4串口

高速USB转4串口产品设计-RS232串口

WCH_PC_Application

原创

关注

0点赞·302人阅读

基于480Mbps 高速USB转8路串口芯片CH344Q,可以为各类主机扩展出4个独立的串口。CH344芯片支持使用 *** 作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动程序,可支持Windows、Linux、Android、macOS等 *** 作系统。因CDC类协议和类驱动的原因,CDC串口功能没有VCP完整,使用上也存在一些差异。默认建议使用厂商提供的VCP串口驱动程序。

使用单个CH344芯片即可实现USB一拖四串口转接产品,高速USB收发器和控制器、高速全双工串口控制器、以及每个UART内置独立的大容量收发FIFO,可轻松满足各类串口波特率下的连续稳定通信。

芯片提供的串口默认为TTL电平,可直接设计TTL串口产品,也可以外加RS232/RS485/RS422等电平转换芯片实现其他接口类型的USB转多串口产品。

CH344主芯片提供2种封装,LQFP48的CH344Q和LQFP48的CH344L,CH344Q是高速USB转串口芯片,因此其USB和串口通讯效率更高,支持最高6Mbps串口波特率。CH344L是全速USB转串口芯片,相较于CH344Q更适合对性能要求不高的场合。

因RS232串口产品默认提供的是全MODEM信号的DB9接口,因此建议默认选择CH344Q芯片,若不需要使用全功能串口仅有简版RS232接口需要,其他信号脚悬空即可。

 

以上就是关于帮忙看一个c语言编的串口通信程序全部的内容,包括:帮忙看一个c语言编的串口通信程序、串口打印停止,点一下关闭串口,再开启串口又恢复了、串口一拖四232怎么设置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10090563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存