OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2265|回复: 4

关于串口程序的提问

[复制链接]

6

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2018-8-17
在线时间
30 小时
发表于 2018-11-11 00:06:13 | 显示全部楼层 |阅读模式
3金钱
原子哥的串口程序中:
捕获555.PNG

为什么利用串口小助手输入 0---9的时候要带单引号,输入10以上的数字怎么输入才能有效??

ps:   u8 USART_RX_BUF[USART_REC_LEN];     //接收缓冲,最大USART_REC_LEN个字节.



最佳答案

查看完整内容[请看2#楼]

这个是ACSII码的转换,10位数可以用USART_RX_BUF[1],如USART_RX_BUF[0]*10+USART_RX_BUF[1]
学习一点都不快乐
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4307
金钱
4307
注册时间
2018-6-30
在线时间
808 小时
发表于 2018-11-11 00:06:14 | 显示全部楼层
这个是ACSII码的转换,10位数可以用USART_RX_BUF[1],如USART_RX_BUF[0]*10+USART_RX_BUF[1]
业精于勤荒于嬉;行成于思毁于随!
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-11-11 09:46:40 | 显示全部楼层
ASCII码表了解下,单片机里面的数据全是二进制了解下不过为了方便都是16进制表示的
回复

使用道具 举报

6

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2018-8-17
在线时间
30 小时
 楼主| 发表于 2018-11-15 00:13:40 | 显示全部楼层
1208 发表于 2018-11-11 00:06
这个是ACSII码的转换,10位数可以用USART_RX_BUF[1],如USART_RX_BUF[0]*10+USART_RX_BUF[1]

这样写
num0=USART_RX_BUF[0];
num1=USART_RX_BUF[1];
num=num0*10+num1*1;

如果输入串口写1
num0=49;
num1=0;
num=490;
串口写10
num0=49;
num1=48;
num=538;


方法2:
num0=USART_RX_BUF[0]-48;
num1=USART_RX_BUF[1]-48;
                       
num=num0*10+num1*1;
串口写1
num0=1;
num1=-48;
num=-38
串口写10
num0=1;
num1=0;
num=10;

正常

就是想问下 ,如何使一个3位数 输出一个等大的三位数
就是输入 265  输出  265的这种。
感谢!
学习一点都不快乐
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4307
金钱
4307
注册时间
2018-6-30
在线时间
808 小时
发表于 2018-11-15 09:49:34 | 显示全部楼层
改成这样试下:t=(USART_RX_BUF[0]-‘0’)*100+(USART_RX_BUF[1]-‘0’)*10+USART_RX_BUF[2]-‘0’
业精于勤荒于嬉;行成于思毁于随!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 19:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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