51单片机做串口通信接收缓存区没反应
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机做串口通信接收缓存区没反应相关的知识,希望对你有一定的参考价值。
参考技术A 可以使用如下思路,添加结束符,1、接收到新数据,存入,缓存。
2、接收到结束符号,如叹号,将缓存中的数据处理,处理完成后通过for循环清空缓存。
3、继续等待新的串口数据。
单片机编程中 如何清除串口接收寄存器中的值,即清除SBUF中的值
追问:可是我做实验,需要清除。以便接收到新的不同的值,从而单片机做出相应的动作回答清除标志位----
不用清除。也不可能清除。
可以这样做:
每收到一个新数据,就置位一个自定义的标志位,如:R_flag = 1;。
程序中,一旦发现它为1,就进行一次处理,然后就将其清零:R_flag = 0;。
这样,收到一个,就仅仅处理一遍。 参考技术A 单片机的SBUF是不需要清零的!
你是模拟串口通信吗?
不管是模拟串口通信还是硬件串口通信,都是是不需要清零的.因为模拟串口通信时是判断串口有无起始位来决定是否接受数据,而硬件串口SBUF是自动接收数据,并会产生一个中断,这时你只需要读出SBUF的值就行了。 参考技术B value属性可以直接获取其选中项的value值。
单击按钮获取下拉列表选中项的value值:
<select id="test">
<option value="1">option-1</option>
<option value="2">option-2</option>
<option value="3">option-3</option>
<option value="4">option-4</option>
</select> <br>
<input type='button' value='获取选中项' onClick="fun()"/>2、javascript代码
function fun()
obj = document.getElementById("test");
alert(obj.value);
参考技术C 不用清除。追问
可是我做实验,需要清除。以便接收到新的不同的值,从而单片机做出相应的动作
追答清除标志位
CLR RI
clr RI; 在程序中编译通不过,显示没有定义,有错误。请问高手,有没一段完完整的程序?
以上是关于51单片机做串口通信接收缓存区没反应的主要内容,如果未能解决你的问题,请参考以下文章