adda2002 发表于 2023-3-15 17:51:07

请教如何通过串口通讯在电脑上显示一个十进制的数字或.....

请教老师,
如何通过串口通讯在电脑上显示一个十进制的数字或字符串?也就就是显示我在程序中使用的某个变量值,如1243这个数字,或者一串英文字母?我在LCD1602上能实现,只是不知道如何把这个数字或字母通过串口发到电脑上显示,请问需要在电脑上显示的程序该怎么写?
另外,我用如下的初始化程序与电脑通信,一次只能发送两个字符,不知道多发字符该怎么操作 ?
void Init_COM(void)   //串口初始化函数
{
TMOD=0x20;      //定时器工作方式设置定时器1方式2
SCON=0x50;      // 串口工作方式1,允许串口接收
TH1=0xF3;       //定时器初值高8位设置
TL1=0xF3;       //定时器初值低 8位设置
PCON=0x80;      //波特率倍频
TR1=1;          //定时器启动

}

乘风飞扬 发表于 2023-3-15 18:38:25

使用标准打印函数printf可以输出各种类型的数据,详情参考附件例程。

WHX 发表于 2023-4-7 07:38:44

不错,学习了,谢谢!

zackwu 发表于 2023-7-25 19:23:10

你好看了,二楼的例程我去搜了一下,看到的结果是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]
查看完整版本: 请教如何通过串口通讯在电脑上显示一个十进制的数字或.....