STM32串口通讯协议

2019-07-14 23:12发布

想写一个串口程序,可是通讯协议一直搞不明白,怎么设定帧头帧尾和数据位,怎么去识别呢???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
康师佛
1楼-- · 2019-07-16 12:55
 精彩回答 2  元偷偷看……
bowenduosi
2楼-- · 2019-07-16 13:33
学习学习!!!!!!!!!!
yangleilishu
3楼-- · 2019-07-16 18:50
受教了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
yand
4楼-- · 2019-07-17 00:34
真赞,好好试试。
四眼仔
5楼-- · 2019-07-17 04:39
本帖最后由 四眼仔 于 2015-12-9 15:51 编辑
laidaihua 发表于 2015-5-18 13:29
如果是用的直接支持9bit数据UART的MCU,在发送前直接设置数据或地址标识就可以了;
如果是需要手动设置9bit数据的MCU,则在每帧数据发送时单独设置控制位。

51单片机 时可以通过TB8和RB8来决定 发送/接收 地址帧或数据帧的,一般时手动设置
但是STM32好像没有这个功能,我要做一个STM32(主机)跟8个51单片机(从机) 多机通信。请问STM32 作为主机 ,怎样决定发送的是地址或数据?
代码里 这样区分行不行?
//·发送地址,唤醒从机
void USART_Send_addr_9b(UART_HandleTypeDef *huart, uint8_t Data)
{
         huart->Instance->DR= ((uint16_t)Data |(uint16_t)0x100);
}
//·对从机发送数据
void USART_Send_data_9b(UART_HandleTypeDef *huart, uint8_t Data)
{
         huart->Instance->DR= ((uint16_t)Data &(uint16_t)0x0FF);
}

一周热门 更多>