你还搞不懂串口的格式转换问题吗?

        相信大多数人在使用串口传输不同单片机之间的数据时都会运到数据格式怎么对应起来的问题,今天我们就来聊聊!

        在开始之前我插一个内容,就是不同的单片机之间的电平可能不相同,是不能直接使用杜邦线连接通信的,需要进行电平转换,是不是很多人之前都是直接接呢,这是错误的,只不过运气好,两单片机的电平都差不多,刚刚好符合TTL,才能能够正确的通信,巧!

        Arduino用过吧,

这个串口调试串口再熟悉不过了,记住哈,这里面输入的是ASCALL字符ASCII码将字符作为数字来表示,因为计算机只能接受数字信息,ASCII码将字符作为数字来表示,以便计算机能够接受和处理。

看看看,我们所有的字符,除了汉字那些,只需128个数字就能表示完。

记住,只需128

unsigned char (0~255)

char (-128~128)

如上上图,我输入61,使用unsigned char接收,通过Serial.print(buffer[0])打印出了5449,

故ASCALL转unsigned char,其实就是ASCALL转10进制

ASCALL:6     16进制:0x36   10进制:54

ASCALL:1     16进制:0x31   10进制:49

这个软件同理,需知道,不勾上16进制显示就是ASCALL字符,勾上就是16进制。

当我以%c输出时,就是本身,没错,ASCALL本身就是字符。

其实计算机里面只认识0和1,根本不认识那些16进制,但为什么我们能写0x..呢,因为规定好的,0x..在执行过程中,计算机是会先根据规定转换成0和1。。。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值