单片机与电脑之间的数据传输,需要进行串口设置。包括波特率、时钟源、COM口、数据位数、奇偶校验位、停止位数等,务必确保电脑的配置与单片机的一致。发送数据将要发送的数据放入发送缓冲区,每次只能发送一个字节。一旦启动了单片机的发送功能,数据传输便告完成。
从你出现的问题看,你应该是发的0,1,2,3……255的数,而不是它们对应的ASCII的值。
首先,要正确配置单片机的串口,包括波特率、使用时钟源、COM口、数据位位数、奇偶校验位、停止位位数等,同时要保证计算机的配置和单片机的一致。然后,把要发送的数据送到发送缓存,只能一个字节一个字节的发送。启动单片机发送,就可以完成发送操作。
首先,波特率要和上位机一致!然后你发送的时候,要每发一个数据,等待它发送完才能再发第二个数据,也就是判断TI有没有标志。
想要发送多次,来传送一个数据,就必须自己制定协议。一个简单的方法是:把“两个八位二进制数”先拆成“四个四位二进制数”,分成四次进行传送。每次传送,用低四位来表示“一个四位二进制数”,用高四位来表示“第几个”。接收方再根据高四位的信息,把低四位拼凑成“两个八位二进制数”。
1、如果是通过串口驱动的接口直接读取字符串信息,则需要查看该接口的定义。如果是通过c标准库接口读取字符串信息,则是按照字节目读取。不管哪种情况,你还需要了解发送端是按怎样的字节序发送这些字节,每一个发送单位的长度是多少,这样才能给出答案。
2、字符类型是整型类型的一种,将其转换成int类型,然后再输出十六进制形式即可。下面是一个示例程序。
3、楼主为解决此问题,问了多处,请看http://zhidao.baidu.com/question/5671857html 处答复。
1、数据不知道你收到正不正确,不过你这个24586出来的有点怪。应该是char跟unsigned char的问题 char -128-127 unsigned char 0 -255 我的方法是 unsigned char * pTemp = (unsigned char)str;pv = (int)pTemp[1]8+pTemp[0];有问题可以HI我。
2、处理接收的数据可以先建立一个数组recv[4];把接收到的数据放里面,recv[0]对应第一个数据recv[1]对应第2个数据一次类推。
3、uchar code table[]=I receive,thanks; //定义一个字符串数组 void init(){ } //设置工作方式,这个懂。
4、串口字节为:SBUF暂存数组:A[]依次将接收到的字节存入A[0],A[1],A[2],...A[n],接收完毕,存入字符串结束标识:A[N+1]=0A就代表一个字符串。如果是一串数字,要转为整数。
打开VC++0,新建基于对话框的工程RS485Comm,在主对话框窗口IDD_RS485COMM_DIALOG上添加两个按钮,ID分别为IDC_SEND和IDC_RECEIVE,标题分别为“发送”和“接收”;添加一个静态文本框IDC_DISP,用于显示串口接收到的内容。
你先需要验证一下软件的发送功能是否正常。将窗口的RX和TX短接,你自己发送的数据会被自己收到,这样就可以验证上位机测的发送、接收功能是否正常了。先把自己调试好了,再去跟单片机联调。如果你这边确认无问题,那么单片机那边需要有人调试验证是否接收到了你发送的数据。
串口通讯目前流行的方法大概有两种:一是利用Microsoft提供的CMSCOMM控件进行通讯,不过现在很多程序员都觉应该放弃这种方式。二是利用WINAPI函数进行编程,这种编程的难度最高,要求你要掌握很多的API函数。三是利用现在网络上面提供的一些串口通讯控件进行编写,比如CSerial类等。
首先你需要定位数据位置,这个需要根据你的实际情况,比如在03 0C之后,那么根据查找这个标记确认数据位置,这个需要实际逻辑,帮不到你什么。其次你需要将2位数据提取出来,方法很多,比如CString的Mid函数,或者直接GetBuffer之后对进行char *的操作。
vc++ 串口通讯 实现简单的串口通讯,通过串口读取数据,显示出出来波形(根据时间显示出来的)。有什么书籍或者网站,方法都行。... 实现简单的串口通讯,通过串口读取数据,显示出出来波形(根据时间显示出来的)。有什么书籍或者网站,方法都行。
1、单片机为51系列,PC机具有RS-232-C接口,利用芯片MAX232实现电平转换。利用串口通信调试小... 利用汇编语言编写PC机与单片机之间的串口通信的程序,以PC机作为上位机,单片机作为下位机。单片机为51系列,PC机具有RS-232-C接口,利用芯片MAX232实现电平转换。 利用串口通信调试小助手软件验证发送和接收数据的准确性。
2、能!但是这是一种非标准的协议类型,就不能用一般的UART控制器实现。对于单片机来说可以用普通IO口模拟,就像18B20的单线通信一样,一个bit一个bit的发。在计算机上你可以通过驱动软件控制串口或者并口中的一条引脚,再加上一条地线就可以与另外一台计算机的对应端口的引脚进行bit方式的数据收发了。
3、SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1 TMOD|= 0x20; //定时器工作方式2 PCON= 0x00;TH1 = 0xFD; //baud reload value 9600、数据位停止位1。
4、Send1SData()//采用中断回调函数。
5、这是最简单的单片机与PC机串口通信的程序。单片机收到单个字符无需判断,原字符发送出去即可。可以用proteus 仿真测试,用虚拟终端代替PC机,用电脑键盘输入字符,由虚拟终端发送给单片机,单片机收到按原字符返回,虚拟终端就会显示出接收的字符。
1、问题点找到了,debug_str()会将在LCD显示的数据同时也传到PC,它是通过调用MT层中的MT_ProcessDebugStr()来完成的,所以每条显示的内容都会增加一个包头,也就是你看到的乱码。这里给你两个建议,一个屏蔽debug_str(),不增加后面的那一行,在LCD的外部是写串口通信。
2、World。此时如果把相互绑定模块中的一个摇杆往左拔一下,可以发送Match DescriptionRequest 命令,对方则显示Match Description Request 信息。通往无线的桥梁无线世界的先锋38400,无奇偶校验,1 位停止位。
3、BLINK_LEDS endif 所以工程OPTIONS 编译选项不需要再去设置HAL_LED,BLINK_LEDS 在该文件 HAL_BOARD_INIT()宏定义中 ,初始化 P0_2,P0_3 不管用。
4、还可以通过串口烧程序,不过第一次烧要先下载支持OAD的程序,以后才能直接用串口烧 还有无线更新程序,和串口烧程序类似,要先烧个支持无线升级的包,有115k,一般的430还存不下。MSP430直接支持的只有JTAG,串口和无线烧程序在TI的zstack中有实现,想研究可以把里面的模块搬过来改改,都有点麻烦。
5、本文应用IAR Embedded Workbench开发环境,在TI ZStack-1-3协议栈的基础上,编写了系统的应用程序代码,用VC编写了上位机程序。系统软件主要包括协调器节点程序、路由和终端程序、上位机程序。ZStack提供了丰富的函数调用接口。
6、法都有。对于zigbee组网,初学者不需要具体了解协议栈的内部结构,而且zstack是半开源的,你 也没机会了解核心代码,我们要做的就是了解应用程序的接口函数,然后应用它。