找回密码
 立即注册
查看: 953|回复: 3

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

[复制链接]

2

主题

0

回帖

14

积分

新手上路

积分
14
发表于 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;          //定时器启动

}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-3-15 18:38:25 | 显示全部楼层
使用标准打印函数printf可以输出各种类型的数据,详情参考附件例程。

串口printf-scanf.zip

39.23 KB, 下载次数: 92

  • 打卡等级:以坛为家II
  • 打卡总天数:484
  • 最近打卡:2025-05-01 08:52:01
已绑定手机

23

主题

589

回帖

2813

积分

金牌会员

积分
2813
发表于 2023-4-7 07:38:44 | 显示全部楼层
不错,学习了,谢谢!
不停地学习
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:18:51

9

主题

44

回帖

333

积分

中级会员

积分
333
发表于 2023-7-25 19:23:10 | 显示全部楼层
你好看了,二楼的例程我去搜了一下,看到的结果是SCANF是扫描键盘的,我现在的问题是,通过串口发来的字符串,我如何总结在一个变量中如LONG类型变量中,然后用IF ELSE 去判断。
if ((RX2_Buffer[2] != 0x2B)&&(RX2_Buffer[3] != 0x4F)&&(RX2_Buffer[4] != 0x4B))
{
        printf("AT+ENTM\r\n");
        delay_ms(200);                        //延时200MS
}
以上是我现在用的方式,有没有一种方式是
if (RX2_DATA1) == 600
{}
else if (RX2_DATA1) == 610
{}
,
,
,
,
如何把S2BUF这个CHAR的值合并起来呢?
百度上搜到的方法是移位,我试了一下好像不管用。
DATA = RX2_Buffer[0]<<24 +RX2_Buffer[2]<<16+RX2_Buffer[3]<<8+RX2_Buffer[4],
PRINTF("%LD",DATA )
上面这种方法试了不管用,请问有没有好办法
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:42 , Processed in 0.149178 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表