打印
[STM32F1]

stop灯亮 你试试进入sotp模式 亮不亮了

[复制链接]
2440|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyjie|  楼主 | 2021-7-6 21:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我将ADC采到的数据存入16位数组中,然后串口依次发送字节,可是发送得到的数据是反的,比如0x0FFF,收到的两个字节就是0xFF, 0x0F。这给我写上位机处理数据造成了困扰,这是不是大小端的问题,上位机如果直接用16位数组直接存储就可以了

使用特权

评论回复
沙发
dengdc| | 2021-7-6 21:58 | 只看该作者
好办呀。你上位机把两个字节反一下不就完了吗

使用特权

评论回复
板凳
sonicll| | 2021-7-7 08:55 | 只看该作者
就是大小端的问题,你需要自己调整一下字节顺序

使用特权

评论回复
地板
呐咯密密| | 2021-7-7 11:22 | 只看该作者
或者在发送数据之前给反一下,

使用特权

评论回复
5
yszong| | 2021-7-7 18:52 | 只看该作者
自己把发送顺序调一下就行了

使用特权

评论回复
6
zwll| | 2021-7-7 18:59 | 只看该作者
就是多那么一两行代码,你都懒得写

使用特权

评论回复
7
dingy| | 2021-7-7 19:03 | 只看该作者
跟你发送的顺序有关。不过你直接反一下就好了。

使用特权

评论回复
8
dengdc| | 2021-7-7 19:05 | 只看该作者
串口通讯每次只能发送1个字节8位数据。你应该按照这个约定发送数据才能得到正确结果

使用特权

评论回复
9
zhanghqi| | 2021-7-7 19:07 | 只看该作者
16位数据要拆成2个字节发送。

使用特权

评论回复
10
jlyuan| | 2021-7-7 19:09 | 只看该作者
按顺序存入你的16位数组里面,就会正确还原,我们常用的都是小端模式,低字节占据低地址,这个根本不是问题,只是你肉眼看上去是反的,但这就是在内存中的顺序

使用特权

评论回复
11
yufe| | 2021-7-7 19:13 | 只看该作者
先发高位字节,再发低位字节。

使用特权

评论回复
12
zwll| | 2021-7-7 19:16 | 只看该作者
串口通讯每次只能发送1个字节8位数据,16位数据是先低8位,后高8位,接收时先接收低8位,后接收高8位,这时发送的低8位就跑到接收高8位的位置上去了,而发送的高8位就变成了接收的低8位,所以数据是反的

使用特权

评论回复
13
dingy| | 2021-7-7 19:18 | 只看该作者
看来楼主是软件转行过来的啊,没有经历过单片机汇编程序,一个bit一个bit的编辑那才爽呢。

使用特权

评论回复
14
supernan| | 2021-7-7 19:21 | 只看该作者
存的时候有没有存反呢? 可以反向输出

使用特权

评论回复
15
wyjie|  楼主 | 2021-7-7 19:23 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

评论回复
16
sadicy| | 2021-7-8 11:39 | 只看该作者
啥灯亮不亮的,

使用特权

评论回复
17
SantaBunny| | 2023-3-6 21:43 | 只看该作者
从STOP模式下唤醒后,要重新倍频一下(如果系统时钟工作在72MHZ),配置一下时钟

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

927

主题

12706

帖子

5

粉丝