如何把uart的缓存数据转换成16位格式

如何把uart的缓存数据转换成16位格式,第1张

1. 保证目标缓罩袜码冲区长度够用 2. 格式串和后边的参数一定要对应, 个数和类型都必须相同 3. 使用"%s"时更物哪要加倍小心, 限制转换长度是个可行的方法, 如: "%.100s" 4. 用好皮snprintf代替sprintf, 要安全一些。

先定义一个union { unsigned int iunsigned char ac[4]} udata

udata.i=1

if ( udata.ac[0]== 1 ) //小端机,则从裂李低到高发送

{

udata.i=123456789

int j=0

while( j<缓散4 )

{

send_data_uart( udata.ac[j] )

j++

}

}

else //大端机,从高到低发送

{

udata.i=123456789

int j=4

while( j-->0 )

{

send_data_uart( udata.ac[j] )

}

}

修正楼上的方法扰源氏一,应该采用位与:

unsigned int val = 123456789

send_data_uart( val &0xff )

send_data_uart( (val >>8) &0xff )

send_data_uart( (val >>16)&0xff )

send_data_uart( (val >>24)&0xff )

请将贴结给楼上,我认为它的方法一效果更好


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12528739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存