请教如何通过串口通讯在电脑上显示一个十进制的数字或.....
请教老师,如何通过串口通讯在电脑上显示一个十进制的数字或字符串?也就就是显示我在程序中使用的某个变量值,如1243这个数字,或者一串英文字母?我在LCD1602上能实现,只是不知道如何把这个数字或字母通过串口发到电脑上显示,请问需要在电脑上显示的程序该怎么写?
另外,我用如下的初始化程序与电脑通信,一次只能发送两个字符,不知道多发字符该怎么操作 ?
void Init_COM(void) //串口初始化函数
{
TMOD=0x20; //定时器工作方式设置定时器1方式2
SCON=0x50; // 串口工作方式1,允许串口接收
TH1=0xF3; //定时器初值高8位设置
TL1=0xF3; //定时器初值低 8位设置
PCON=0x80; //波特率倍频
TR1=1; //定时器启动
}
使用标准打印函数printf可以输出各种类型的数据,详情参考附件例程。
不错,学习了,谢谢! 你好看了,二楼的例程我去搜了一下,看到的结果是SCANF是扫描键盘的,我现在的问题是,通过串口发来的字符串,我如何总结在一个变量中如LONG类型变量中,然后用IF ELSE 去判断。
if ((RX2_Buffer != 0x2B)&&(RX2_Buffer != 0x4F)&&(RX2_Buffer != 0x4B))
{
printf("AT+ENTM\r\n");
delay_ms(200); //延时200MS
}
以上是我现在用的方式,有没有一种方式是
if (RX2_DATA1) == 600
{}
else if (RX2_DATA1) == 610
{}
,
,
,
,
如何把S2BUF这个CHAR的值合并起来呢?
百度上搜到的方法是移位,我试了一下好像不管用。
DATA = RX2_Buffer<<24 +RX2_Buffer<<16+RX2_Buffer<<8+RX2_Buffer,
PRINTF("%LD",DATA )
上面这种方法试了不管用,请问有没有好办法
页:
[1]