串口发送与接收字符串是存在很大不同的
2011-06-17 14:25
190 查看
发送字符串较简单,我们先来看一段发送字符串的代码:
unsigned char buff[]={"i love you/n"};
void send_txt()
{
for(i = 0; i < sizeof(buff); i++)
{
SBUF = buff[i] ; //挨个地往SBUF里面写入一个字节,这里是相当于把事先准备好的东西往盒子里放,等到把盒子里的被取走了, //再自动加入一个新的,这里只要一次中断,就可以把字符串发送完,电脑有缓存,可以把这些字符先放在缓存 里,再一并取走
while(!TI); //这里一定要等到前一个字节发送完成后,对TI置0,才能发送下一个字节,
TI = 0;
}
}
接收字符有点小小的区别,这里接收的东西不是事先准备好的,单片机不像pc机那样有缓存,只有一个8位的SBUF,每次接收一个字节,都要产生一次中断,
下面看一段代码:
unsigned char buff[LEN] ;定义一个长度为LEN的缓存来存放接收到的字符串
unsigned char i = 0;
receive_byte()
{
RI = 0;
buff[i++] = SBUF;
while(!RI);
RI = 0;
if(i == LEN) //循环接收
{
i = 0;
}
}
unsigned char buff[]={"i love you/n"};
void send_txt()
{
for(i = 0; i < sizeof(buff); i++)
{
SBUF = buff[i] ; //挨个地往SBUF里面写入一个字节,这里是相当于把事先准备好的东西往盒子里放,等到把盒子里的被取走了, //再自动加入一个新的,这里只要一次中断,就可以把字符串发送完,电脑有缓存,可以把这些字符先放在缓存 里,再一并取走
while(!TI); //这里一定要等到前一个字节发送完成后,对TI置0,才能发送下一个字节,
TI = 0;
}
}
接收字符有点小小的区别,这里接收的东西不是事先准备好的,单片机不像pc机那样有缓存,只有一个8位的SBUF,每次接收一个字节,都要产生一次中断,
下面看一段代码:
unsigned char buff[LEN] ;定义一个长度为LEN的缓存来存放接收到的字符串
unsigned char i = 0;
receive_byte()
{
RI = 0;
buff[i++] = SBUF;
while(!RI);
RI = 0;
if(i == LEN) //循环接收
{
i = 0;
}
}
相关文章推荐
- 51单片机串口程序,字符串/16进制发送与接收
- 基于proteus的51单片机仿真实例六十二、串口发送和接收字符串实例
- Qt中串口16进制发送和接收数据
- Z-Stack中串口发送接收的流程
- 微信通过openID发送消息/后台post、get提交并接收数据 C# .NET 配置404,500等错误信息 连接字符串
- C#----串口数据接收发送
- Java Socket接收和发送(字符串)
- Android 基于Netty的消息推送方案之字符串的接收和发送(三)
- 举例说明串口发送数据——字符串发送与十六进制发送的区别
- 网关--串口接收数据转送到网口发送到PC机
- UDP客户端实现在不同端口上发送和接收数据
- vs2010 串口发送与接收--随记
- asp.net接收发送的xml字符串数据
- 串口发送数据——字符串发送与十六进制发送的区别
- 51单片机串口通信(字符串接收和发送)
- 串口(调试助手)发送数据——字符串发送与十六进制发送的区别
- SendMessage和PostMessage发送消息(不同进程传递字符串)
- STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和串口只发送数据不能接收数据问题
- linux多线程下打开串口发送和接收数据
- 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--串口发送|接收 封装(十九)