STM32怎么把温度以报文的形式发送出去?节点1发送给节点2.

2019-07-20 08:20发布

两个节点都是STM32F407单片机,节点2测到温度,然后以报文的形式发送给节点1,显示在TFTLCD上!
怎么把测到的温度值转换成能发送的报文?怎么把接受到的报文转换成温度值。
温度值为short型!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
mack13013
1楼-- · 2019-07-20 14:20
得舍 发表于 2018-5-4 09:41
我刚才试了一下,发现时数据类型转换错误!需要把short wTemp;转换成unsigned char * msg;之后再发送,这 ...

发送:
[mw_shl_code=c,true]
short wTemp = DS18B20_Get_Temp();
CAN1_Send_Msg((u8*)(&wTemp), sizeof(wTemp));
[/mw_shl_code]

祝你好运!

正点原子
2楼-- · 2019-07-20 18:41
 精彩回答 2  元偷偷看……
mack13013
3楼-- · 2019-07-20 23:42
本帖最后由 mack13013 于 2018-5-4 06:51 编辑

发送:

[mw_shl_code=c,true]
short wTemp = DS18B20_Get_Temp();
CAN1_Send_Msg(&wTemp, sizeof(wTemp));
[/mw_shl_code]

接收:

[mw_shl_code=c,true]
u8 buf[8], ucLen;
short wTmpRcv;
ucLen = CAN1_Receive_Msg(buf);
if(sizeof(short) != ucLen)
{
    //接收数据长度错了,处理一下

else
{
    //接收到数据了
    wTmpRcv = *((short*)buf);
}
[/mw_shl_code]

大概过程就是这样,具体细节自己完善吧。可能有错误




得舍
4楼-- · 2019-07-21 05:33
mack13013 发表于 2018-5-4 06:42
发送:

[mw_shl_code=c,true]

好的,谢谢!我今天试试!
得舍
5楼-- · 2019-07-21 08:37
 精彩回答 2  元偷偷看……

一周热门 更多>