uint8_t dj[12]={0x55,0x55,0x05,0x06,0x01,0x01,0x00};
uint8 t i;
for(i=0;i<7;i++)
{HAL_UART_Transmit (&huart4,&dj[i],1,0xfff);}
这样写对不对
![](https://profile-avatar.csdnimg.cn/adbe93854d3e4690aabeb3bfbf67b562_weixin_63737158.jpg!4)
STM32基于HAL库使用串口发送16进制数组
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
8条回答 默认 最新
- 诺水城子 2023-02-07 11:19关注
去掉for,直接用 HAL_UART_Transmit (&huart4,dj,7,0xfff); 要考虑可能存在的丢包和断包问题,发送7字节,接收方可能接收1次或者多次才能收满这7字节。
丢包主要考虑底层缓存空间太小,接收不及时数据被覆盖掉。可以测试一下你原来for循环单次1一字节,每次发送增加点延时。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 Stata链式中介效应代码修改
- ¥15 latex投稿显示click download
- ¥15 请问读取环境变量文件失败是什么原因?
- ¥15 在若依框架下实现人脸识别
- ¥15 添加组件无法加载页面,某块加载卡住
- ¥15 网络科学导论,网络控制
- ¥100 安卓tv程序连接SQLSERVER2008问题
- ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用