
我在学习单片机串口通信,可是我设置字符显示,得到的结果是:当打开一次串口,收到数字
让我解答,有点深奥的,别忘了分有``
如何将单片机通过串口上传到Java的命令进行转换,让Java可以显示。
需要一个包 comm.jar需要一个配置文件 javax.comm.properties (工程根目录)(或者放在JDK里)\\\/\\\/ 取得端口句柄CommPortIdentifier id = CommPortIdentifier.getPortIdentifier(portName);port = (SerialPort) id .open(SerialDemo, 30000);port .setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);port .notifyOnDataAvailable(true);port .notifyOnBreakInterrupt(true);port .enableReceiveTimeout(delayTime);读取之类的自己写就行了,(port .getInputStream()),完事之后别忘了关掉端口,不然下次就不能用了,只能重启系统
关于串口,从单片机发送的数据,在电脑上面串口显示的数据不一样,情况很多种。
同学。
波特率要设置的一样。
上位机(就是串口工具吧)的波特率要和你的单片机设置的一样。
还有就是单片机那个计算的值要尽可能准确,使用晶振也有点重要,有的晶振不能设置出很匹配的波特率。
。
一般11.0925M的就在波特率计算方面会很简便。
你的22M的也应该会不错,,自己计算。
让波特率匹配就可以了,,谢谢,,
单片机串口助手中发送区的字符在接收区不显示
程序上首先你要给相应的寄存器配置好(波特率啊,有无奇偶校验位,数据位等等),然后单片机不断检测是否接收到数据,如果接收到了数据就把接收到的数据又回发到串口助手,这样串口助手就可以显示你自己发送的数据了;如果没有接收到数据的话就让单片机继续检测。
你说输入的字符怎么和程序联系起来,你要明白:单片机本来就存在一个寄存器是专门存放你在串口发送区发送的数据的,只要你在发送区一按“发送”,单品机就自动会存放在那个寄存器里面的(这一点不需要我们程序上的编写),因此,你要想在串口接收区观察你发送的数据,只需在程序上把寄存器里面的数据取出来再发送出去就OK了。
vc通过串口显示单片机发送的数字
void CEmluatorDlg::OnOnCommMscomm1() { \\\/\\\/ TODO: Add your control notification handler code here VARIANT variant_inp; COleSafeArray safearray_inp; LONG len,k; BYTE rxdata[2048]; \\\/\\\/设置BYTE数组 An 8-bit integerthat is not signed. CString strtemp; if(m_MSComm.GetCommEvent()==2) \\\/\\\/事件值为2表示接收缓冲区内有字符 { variant_inp=m_MSComm.GetInput(); \\\/\\\/读缓冲区 safearray_inp=variant_inp; \\\/\\\/VARIANT型变量转换为ColeSafeArray型变量 len=safearray_inp.GetOneDimSize(); \\\/\\\/得到有效数据长度 for(k=0;k 呵呵,要上位机软件支持吧单片机串口通信数据丢失原因
51单片机用1602显示从串口发送来的字符串,为什么这段代码的字符串会累加
如果不想累加该怎么改进
应该在接收完一组完整的数据后,把接收计数器ccc清空。
这样就不会累加显示了。
为什么我在做单片机的串口通信时,发送字符,每次要复位一次才能在串口调试软件上显示出来
1,你要把初始化串口寄存器加入到你的工作流程中:如while(1)循环中。
2,初始化串口寄存器包括定时器、波特率、中断使能等.



