串口调试软件发送码详解_485串口工具

串口调试软件发送码详解_485串口工具串口通信——串口助手发送正数/负数(以ascii码的形式发送或者以16进制形式发送),最后展示出发送的数1. 实验目的1.串口助手发送一个数(发送的形式是ascii码),最后除以100展示这个数,如发送一个-29987

串口通信——串口助手发送正数/负数(以ascii码的形式发送或者以16进制形式发送),最后展示出发送的数   1. 实验目的   1.串口助手发送一个数(发送的形式是ascii码),最后除以100展示这个数,如发送一个-29987,最后要展示出-299.87。   2.串口助手发送一个数(发送的形式是16进制),最后除以100展示这个数,如发送一个-3,最后要展示出-0.03。   其中串口是USART1,其端口是GPIOA,引脚是PIN9、PIN10,一个用来收数据,一个用来发收据。   2. 实验流程   初始化串口;   编写数据转换函数函数;   编写接收数据中断函数和空闲中断函数。 2.1 初始化串口   2.2 编写数据转换函数函数   在写转换函数之前,先要看这个ASCII码中的0对应的是什么。在空闲中断里面打印接收到的数据,下面是部分代码,详细代码参见2.3。   得到结果如下图所示:   
在这里插入图片描述   所以我们通过判断接收过来的字节,判断这个值是哪个数字。   先找规律,这里是假设发送的数字是-29987,函数中传入的值一个是数组,一个是数组的总索引值,这里取到的字节首先要减去0X30,得到这个数字是几,然后再乘以10的几次方,2在万位上,需要乘以10000,它的索引值对应的是1,传来的索引总数是6,所以乘的10次方应该是:10的次方数 = 6(总索引值) – 1(2所在的索引值) – 1;9在千位上,需要乘以1000,它的索引值对应的是2,所以乘的10次方应该是:10的次方数 = 6(总索引值) – 2(9所在的索引值) – 1;第二个9在百位上,需要乘以100,它的索引值对应的是3,所以乘的10次方应该是:10的次方数 = 总索引值 – 3(9所在的索引值) – 1;以此类推。   如果是正数的话,假如是29987,2在万位上,需要乘以10000,它的索引值对应的是1,传来的索引总数是5,所以乘的10次方应该是:10的次方数 = 5(总索引值) – 1(2所在的索引值) – 1;9在千位上,需要乘以1000,它的索引值对应的是2,传来的索引总数是5,所以乘的10次方应该是:10的次方数 = 5(总索引值) – 1(2所在的索引值) – 1;以此类推。   数据转换函数函数(发送ASCII的形式的)如下:   数据转换函数函数(发送的是16进制的)如下:   计算机中存放的整型数据都是按补码的形式存放的,负数的补码是其本身绝对值的原码取反再加1。   ~本身绝对值 + 1 = 负数;现在求本身绝对值就是:本身绝对值 = ~(负数 – 1);对应下面代码的temp = ~(value – 1);   2.3 编写接收数据中断函数和空闲中断函数   3. 实验结果   以ASCII发送正数和负数如下图所示:   
在这里插入图片描述   
在这里插入图片描述   以16进制发送正数和负数如下图所示:   
在这里插入图片描述

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/86285.html

(0)
上一篇 2024年 7月 26日 下午5:43
下一篇 2024年 7月 26日 下午5:51

相关推荐

关注微信