[STM32F1] 急急急,,stm32串口发送数据

[复制链接]
2533|11
 楼主| 菜鸟+1 发表于 2015-12-19 16:24 | 显示全部楼层 |阅读模式
请问一下,用stm32串口发送这几个数据,电压和电流是未知的,还必须还这个帧的格式写,串口发送这个帧的程序咋写???:)
 楼主| 菜鸟+1 发表于 2015-12-19 16:29 | 显示全部楼层
 楼主| 菜鸟+1 发表于 2015-12-19 16:40 | 显示全部楼层
   USART_SendData(USART1,0x3A);
   USART_SendData(USART1,result);
   USART_SendData(USART1,result1);
   USART_SendData(USART1,result+result1);
   USART_SendData(USART1,0x0D);
   USART_SendData(USART1,0x0A);
这个程序有误,望大神不惜赐教
 楼主| 菜鸟+1 发表于 2015-12-19 16:41 | 显示全部楼层
菜鸟+1 发表于 2015-12-19 16:40
USART_SendData(USART1,0x3A);
   USART_SendData(USART1,result);
   USART_SendData(USART1,result1); ...

这个自己写的,不合适
JY-DX-JY 发表于 2015-12-19 16:50 | 显示全部楼层
估计result是电压,result1是电流。
USART_SendData(USART1,0x3A);
   USART_SendData(USART1,(result>>4)+0x30);
USART_SendData(USART1,(result&0x0f)+0x30);
   USART_SendData(USART1,(result1>>4)+0x30);
USART_SendData(USART1,(result1&0x0f)+0x30);
   USART_SendData(USART1,((result+result1)>>4)+0x30);
USART_SendData(USART1,((result+result1)&0x0f)+0x30);
   USART_SendData(USART1,0x0D);
   USART_SendData(USART1,0x0A);
huangqi412 发表于 2015-12-19 17:43 | 显示全部楼层

:dizzy:  表示要吐了    0X360X34 两个十六进制字节   先转成ASC码10进制6和4   然后又拼合转回十六进制 0X64  最后意思就是0X64对应的值100
 楼主| 菜鸟+1 发表于 2015-12-19 18:58 | 显示全部楼层
JY-DX-JY 发表于 2015-12-19 16:50
估计result是电压,result1是电流。
USART_SendData(USART1,0x3A);
   USART_SendData(USART1,(result>>4) ...

恩恩,result是电压,result是电流,试了一下你的程序合适了,谢谢了
sepmoon 发表于 2015-12-19 19:06 | 显示全部楼层
Modbus ASCII格式
undersky 发表于 2015-12-20 10:15 | 显示全部楼层
类似于modbus ASCII。缺少ID啊。自定的协议吗?
 楼主| 菜鸟+1 发表于 2015-12-20 12:18 | 显示全部楼层
undersky 发表于 2015-12-20 10:15
类似于modbus ASCII。缺少ID啊。自定的协议吗?

恩恩,是自定的协议,上面的程序挺合适的,只要在发送每一句数据的时候加一个延时程序就没问题了,不延时我试了一下还真不行
undersky 发表于 2015-12-20 22:09 | 显示全部楼层
菜鸟+1 发表于 2015-12-20 12:18
恩恩,是自定的协议,上面的程序挺合适的,只要在发送每一句数据的时候加一个延时程序就没问题了,不延时 ...

因为你在发送前没有判断标志位、、、
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部