一、232串口通信数据显示乱码?
.出现乱码
解决方法:设置合理的波特率,比如我的板子阳初2410,则设置波特率为115200.
2.进不了bootloader和按回车进不了命令行。
解决方法:将串口工具的数据流控制设置为无。
3.安装串口驱动及设置
解决方法:将USB-TO-RS232线接上电脑,安装相应驱动,我的是PL2303,xp系统,安装好后,设备管理器里面会出现打印机COM一项,点开后选属性,可以做相应调整,我安装好后是COM4,将其调整为COM1,波特率设置为默认,其他选项也为默认。
二、怎么读取串口GPS数据?
GPS一般默认输出规范为NMEA0183报文.
串口编程读取$GPxxx开始,回车换行结束;
按照0183报文解析所需数据即可
使用串口助手调试读取。
编程读取命令读取。
使用串口助手读取。
理解通信协议,读取指令。
三、串口没数据,labview读取数据导致串口出错?
你的这个串口设备在打开(也就是调用open函数获取设备描述符)的时候设置的是非阻塞方式。导致串口上没数据的时候read也立即返回,但是你的while已经把有效的数据读走了,if里面读到的一定是空的,所以什么也不打印。 建议
1. 在打开串口设备时使用阻塞方式,不会设置的话查查open系统调用的帮助,它有个flag;
2. 把while循环内的if语句去掉。
四、怎么用matlab读取串口数据?
s=serial('com1');//设置串口
set(s,'BaudRate',9600,'StopBits',1,'Parity','none','DataBits',8,'InputBufferSize',255);
//串口的一些设置,注意,'none'有引号,有些值如InputBufferSize只能在串口关闭时才能设置,
//所以不建议先打开串口
fopen(s)//打开串口
fwrite(s,100);//打100(十进制)写入串口也可以是一维数组,可以用示波器测com的第3个引脚
a=fread(s);
//读出串口数据,由于matlab是顺序执行的,所以这里读不到100,
//程序会卡在这里直到读到数据为止,好像是存完buffer吧,这里忘了。
//自己从com的第2个引脚给数据试试看就清楚了
fclose(s);//关闭串口
五、c串口读取数据能用吗?
有专用的cserial类,打开串口,就可以读写数据
六、串口读取数据很慢,怎么解决?
串口读取数据慢可能是由于以下原因导致:
1. 波特率设置过低:波特率表示串口通讯速率,如果设置过低,每秒传输的数据量就会减少,导致读取数据的速度变慢。可以考虑将波特率适当提高。
2. 数据读取方式不正确:有时候我们可能使用了不正确的读取方式,如使用了阻塞读取(即读取数据时程序会一直等待数据的到来),导致读取速度变慢。可以尝试使用非阻塞读取或者事件驱动方式读取数据。
3. 数据粘包现象:当一次发送的数据量过大时,容易出现粘包现象,导致读取速度变慢。可以考虑在发送数据时分包发送。
4. 串口信号质量不良:如果串口信号质量较差,如串口传输距离太远或者干扰严重,都会导致读取数据速度变慢。可以考虑更换串口线路或者调整串口距离。
5. 硬件资源占用过高:如果程序同时还有其他几个任务运行,可能会导致系统资源占用过高,从而影响读取数据的速度。可以考虑关闭不必要的任务或者优化程序代码。
总之,解决串口读取数据慢的方法多种多样,需要具体情况具体分析。可以依次排查以上可能出现的问题,并适当调整相关参数和优化程序代码。
七、使用Vb如何读取串口数据?
VB6.0MsComm控件可以利用OnComm事件连续获取来自外设发送的信号。
基于:
1)MsComm控件的RThreshold 属性不为0和恰当的接收代码。
2)使用电脑主板物理COM口或PCI多串口卡上的COM口COM,这样的COM口是全双工的,发送与接收不会冲突。
3)高质量的接收代码和符合通信协议和数据帧规约的接收处理代码。
实例代码:
Private Sub Form_Load() MSComm1.InputMode = comInputModeBinary '采用二进制传输 MSComm1.InBufferCount = 0 '清空接受缓冲区 MSComm1.OutBufferCount = 0 '清空传输缓冲区 MSComm1.RThreshold = 1 '产生MSComm事件 MSComm1.InBufferSize = 1024 TxtSend = "" TxtSend = "" txtReceive = "" Text2 = ""End SubPrivate Sub MSComm1_OnComm() '接收数据 Dim strBuff As String Select Case MSComm1.CommEvent Case 2 MSComm1.InputLen = 0 strBuff = MSComm1.Input BytReceived() = strBuff jieshou lenInput = Len(strData) Text2 = lenInput \ 2 '数据处理代码 End SelectEnd SubPublic Function jieshou() '接收数据处理为16进制 Dim i As Integer For i = 0 To UBound(BytReceived) If Len(Hex(BytReceived(i))) = 1 Then strData = strData & "0" & Hex(BytReceived(i)) Else strData = strData & Hex(BytReceived(i)) End If Next txtReceive = strDataEnd Function
八、串口接收到的数据为乱码?
乱码的原因通常有两个:
1、波特率 数据位 校验位 不匹配,即网络转串口设备与您的串口设备波特率不匹配,设置成一致即可。
2、硬件原因,注意TTL RS232 RS485这几种电平形式是不同的,不能直接连接,需要用232芯片或者485芯片转发,客户最常患的一个错误是将TTL电平直接接到计算机上,肯定会乱码,计算机是RS232电平。另外硬件设计不当,有干扰也可能会导致通讯不正常。仔细检查硬件即可。 如果无法确认问题在哪,可以使用自收发的形式排除。1、您的设备直接和电脑通讯,按照你理解的波特率相关设置,看是否正常,以确认你的设置是否有问题。2、断开您的设备与网络模块之间的连接,再将模块串口的RXD和TXD短接,通过网络发送网络接收,看数据是否正常,以确认我们的模块工作正常。3、断开您的设备与网络模块之间的连接,再将您的设备的串口收发短接,通过电脑自收自发,看数据是否正常,以确认您的电脑到串口这部分硬件工作正常。
九、串口显示乱码的原因有哪些?
1.USB转串口的问题解决方法:我曾用一个12块钱的那种U转串,出现过乱码,换一个好的就没事了2.波特率不同步的问题解决方法:两边设置的波特率的一样,会导致这样的问题3.在通信波特率为 38400 时,通信正常,arm 板上解受到的数据(ascII码)显示正常。但是当波特率为 115200 时,解受到的数据就出现乱码的现象!
解决方法:暂无4.用ARM2103 给电脑发送信息,用串口高度精灵看,一直接收的都是错误码解决方法: 我用的44b0曾经出现过显示乱码的问题,在超级终端上显示的;后来才发现是在boot汇编程序里设置了主频为60M;但是在串口初始化时用的是40M,在c语言程序里忘记重新设定主频了
十、crt打印串口信息显示乱码?
主要问题点有两个:
1、使用RT809H时,打印信息正常但不能进入控制台;
可能原因:RX TX GND线未接好(TX:发送);电视软件关闭了串口;SecureCRT工具的流控制下面被打勾了;
2、使用RT809F时,打印信息乱码;
可能原因:RX TX GND线未接好或未接对位置;波特率未选对
- 相关评论
- 我要评论
-