请问51单片机怎么通过串口接收字符串?能解释一下代码吗?谢谢了

作者&投稿:敖善 (若有异议请与网页底部的电邮联系)
51单片机串口接收字符串?~

51单片机串口接收字符串,接收的字符串长度不定,无结束符,要判断这个字符串结束,确实比较难。如果每个字符串还是连续发送,几乎是无法判断的。如果每个字符串之前有一定的空闲时间,可以根据最短的空闲时间来判断结束。即接收每一个字符都开始计时,接收下一个字符结束计时,如果计时的时间超过最短的空闲时间,则前一个字符为结束,且新字符串开始。并再重新计时。

单片机串口接收字符串的,根据接收到的字符串调用串口中断 void Com_Int(void) interrupt 4 { //当硬件接收到一个数据时,RI会q

要活学活用知识才是,教材或者单片机资料上有说到串口通信的接收数据寄存器;
当这个寄存器满时(即收到了一个完整的字节时),会发出中断信号,那么你就在中断例程中取走数据就是了,取走数据后,接收端就会自动接收或者等待接收新的数据。如此中断一次取走一个字节,直至发送端停止发送数据。
取走的数据怎么处理,如你说的会有14个字符,那么就先设个大于等于14个字符的数组,然后把取到的数据按顺序填入数组中即可;然后就可以执行下一步的处理了

看流程是什麼了,如果等待14个字节接收完,那就是for循环,或者while等待。如果只是接收的话,就中断,然後去读数组,超过14个字节就处理。

51单片机一次这能发送一帧数据,也就是一个8位的数据,多个数据就需要重复发送重复接收;


用51单片机怎么通过独立按键实现串口通信 比如说你按下一个键S1 在串 ...
用键盘检测程序检测按键按下,检测到按下就用串口向上位机发送字符“1”的ASCII码值,这样在串口调试助手里就可以看到字符“1”了

51单片机串行口通信
SBUF实际上分为两个不同的寄存器,发送时用的SBUF只读,接收时用的SBUF只写,只是它们的地址一样罢了。你没办法知道发送后SBUF(只用于发送)的值。我个人更加倾向认为它被置1了(0xFF).接收可以用中断方法或者查询。用中断时,你只要在中断程序里读SBUF的值,就得到接收的字节。然后还要清除接收置位位...

51单片机串口通信问题
建议检查:单片机出来的是TTL的,跟PC连接需要max232;txd和rxd是否接反;串口连接线是否有问题(非下载线);串口速率等参数是否一致,单片机晶振决定频率;公共地是否连接正常;连续发送数据给单片机,测单片机rxd口有无波形;单片机程序中设置断点看有否收到数据;...

51单片机的串口通信问题(visual basic语言)
单片机最小系统当然最主要的了,51单片机供电电压为5V,串口电平转换芯片选择MAX232,再选择DB9接口,公母口都可以,后期修改也方便,当然你至少要有串口线和PC通信。电路的话就是 上面的图可以参考,你把单片机串口TXD接10脚,RXD接9脚就可以了。PC上的上位机其实没必要去用VB写了,现在串口调试助手太多...

51单片机串口通信问题求解
51单片机串口通信接收数据和发送出去,这不是一个整个过程,即接收和发送没有什么关系的,是完全可以只发送,或只接收的,不需要接收就发出去的。而且不论是接收或发送,每次都是一个字节的,没有什么8个字节的事。但是每发送一个字节,或接收一个字节,数据本身是8个位,注意是8个位,并不是8个字节...

怎么实现51单片机和51单片机间的无线通信
两个以上51单片机的无线通信,硬件需要无线模块(或者wifi模块)+单片机,软件可以与单片机串口通信基本类似。

51单片机的串行通信是怎么工作的??
兄弟,你可以看看书呀,书上不是说了嘛。这么多字要人打出来!!!方式0 8位移位寄存器输入/输出方式。多用于外接移位寄存器以扩展I/O端口。波特率固定为fosc\/12。其中,fosc为时钟频率。在方式0中,串行端口作为输出时,只要向串行缓冲器SBUF写入一字节数据后,串行端口就把此8位数据以等的波特率,...

51单片机 串口通信
这个很好实现。1、可以用按键来实现,这样可以认为控制。2、可以直接按顺序执行要求的指令。

用51单片机怎么做通信?
这个题正好是我那年做的,呵呵,具体程序不知道扔哪儿了,你可以自己确定通信协议,我当时是借鉴的红外遥控器的通信协议,根据高电平的长度不同确定是0还是1 ,然后上层的话自己定下前导码和校验码,收到的时候计算下正确性在显示 找到论文了:3.通信协议分析 系统采用单片机软件编码,仿红外式采用脉宽...

我想做51单片机与电脑串口通信,实现电脑键入十进制,返回BCD码,最好是...
这里有个源码是串口发送接收数据的。坐等悬赏分。源码转自:《51单片机C语言创新教程》温子祺等著。\/*实验名称:串口收发数据实验 描 述:在使用单片机的串口接收数据实验当中,使用串口调试助手发送什么数据,单片机采用查询法将接收到的数据返发到PC 作 者:温子祺 修改日期:2010\/5\/4 \/ include...

让胡路区13045128238: C51单片机如何从PC机串口接收字符串? -
朝仁香砂: 1、单片机串口不管从哪 接收数据 都是遵循串口协议的.字符串就是一个挨一个的ASKII码,中间没有加任何东西.2、不发字符串结束标志.3、回车符可以发送,但具体发不发送看你程序了.

让胡路区13045128238: 如何用c语言编程实现c51单片机中从串口接收一个字符串? -
朝仁香砂: 可以的,定义一个缓冲区(数组)接收,到时单片机把字符串顺序处理一下就行了,一般/n来代表字符串的结束标志.

让胡路区13045128238: 跪求51单片机通过串口接受PC机发来的字符串的代码, -
朝仁香砂: 单片机串口接收字符串的,根据接收到的字符串调用串口中断 void Com_Int(void) interrupt 4 { //当硬件接收到一个数据时,RI会q

让胡路区13045128238: 51单片机串口用数组接收字符串程序怎么写? -
朝仁香砂: 对于固定的数据,可以通过顺序判断来识别用if或switch语句来判决即可 通过串口中断,每次进入把SBUF的值赋给T,通过判决、累加NUM的值最终取得冒号后面的数值(不知楼主是否是要最后的数值) void UART_Int(void) interrupt 4 { static ...

让胡路区13045128238: 51单片机串口通信怎么传递中文汉字,现在能够传输数字,英文字符? -
朝仁香砂: 汉字的话就是传送的GB2312编码,即传说的区位码,一个编码是两个字节,每个字节的值都是大于0x80的,这样跟ASCII码分开.当把编码转换为对应的汉字的时候,就需要在汉字库中根据编码来计算汉字的位置了.

让胡路区13045128238: 如何编程,使51单片机接收串口送来的一串字符,去做其他处理.(不是显示在PC机上) -
朝仁香砂: 你的程序中rec没赋初值 应改成这样就可以 char receive[4],rec=0; void uart_isr() interrupt 4 { if(RI) { RI=0; receive[rec]=SBUF; if (rec else { rec=0;};}

让胡路区13045128238: 如何用c语言编程实现c51单片机中从串口接收一个字符串?
朝仁香砂: 如果用中断方式接收的话,只能接收单个字符.而如果用查询方式的话,接收字符串占用的时间真太长了,整个CPU将陷入一个长期无法工作的状态,按照波特率为19200来算,接收一个字符的时间是573微秒,十个字符的话就是5.73毫秒了,系统无法正常工作.建议用中断接收单个字符.

让胡路区13045128238: 51单片机 ,串口要想从电脑接收到一个字符'1' 用串口调试助手要发送个什么,急急急!!!急急急!! -
朝仁香砂: 取消16进制勾选,发送1就行了

让胡路区13045128238: 怎样用51单片机接收数组?(就是一长串的字母和数字) -
朝仁香砂: 只要设置一个变量来判断串口助手发送字符是否接收完成即可 比如 串口助手发送3个字符,那么变量初始化设为0,每接收一个字符变量加一,然后判断是否等于3,等于3则接收完成,送显示即可 当然了一次只能接收一个啊

让胡路区13045128238: 触摸屏发出的指令通过串口如何让51单片机接收到 -
朝仁香砂: 串口那不就是这个接口了.搞清楚数据帧格式,以及码率,配置相应的单片机串口接收就可以了.最多是两者中间之间要做电平转换.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网