关于医疗器械的算法、协议开发(三)

串口配置一般步骤
串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();
串口复位:USART_DeInit(); 这一步不是必须的
GPIO端口模式设置:GPIO_Init(); 模式设置为推挽复用以及浮空输入或者上拉输入(具体可参照中文参考手册)
串口参数初始化:USART_Init();
开启中断并且初始化NVIC(如果需要开启中断才需要这个) NVIC_Init();USART_ITConfig();
使能串口:USART_Cmd();
编写中断处理函数:USARTx_IRQHandler();
串口数据收发:void USART_SendData();//发送数据到串口,DR uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据
串口传输状态获取:
FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);

void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);

1,协议数据格式
0xAA 	0xFF	CMD ID	Len	Len	Data1	Data2	Data...	校验和	校验和
开始字节	开始字节	命令ID号低八位	数据长度高8位	数据长度低8位	数据1	数据
2	数据N	校验和高8位	校验和低81byte	1byte	1byte	1byte	1byte	1byte	1byte	1byte	1byte	1byte

1.1开始字节
每包数据开始都需要发送0xAA 0xFF,标识数据包的开始
1.2 CMD ID
命令字节
1.3数据长度:
Data1.....DataN的长度
1.4 校验和
Data1......DataN的累加和
1.5 主从命令包回复
主机和从CPU通信,所有的命令不会有应答机制,因为有心跳包机制,保证主从通讯是OK的。

2,通讯协议数据

2.1 心跳包数据 0x01
0xAA 	0xFF	0x01	0	0	0	0
2.1.1数据包发送对象
主机和从机同时发送此数据包
2.1.2介绍
心跳包保证主机和副CPU通信是正常的,每隔500ms发送一次。

2.2 主机启动OK 0x02
0xAA 	0xFF	0x02	0	0	0	0
2.2.1数据包发送对象
主机发送给从机
2.2.2介绍
主机告诉从CPU,主机已经准备就绪,从机在收到此命令时才能发送数据给主机,
在收到此指令之前,从机不要发送数据给主机。
2.3 报警 0x03
2.3.1 数据包发送对象
主机发送给从机
2.3.2数据段
大小:1byte
数据段值
0x00:停止报警
0x01:高级报警
0x02:中级报警
0x03:低级报警

2.4 病人类型设置 0x04
2.4.1 数据包发送对象
主机发送给从机
2.4.2数据段
数据段大小:1byte
数据段值
0x00:成人
0x01:小孩
0x02:新生儿

2.5: 血氧 0x05
2.5.1 数据包发送对象
从机发送给主机器
2.5.2数据段
大小:4bytes
Byte1: 0x00无血氧 0x01有线血氧 0x02 无线血氧
Byte2:血氧值
Byte3:脉率值低八位
Byte4:脉率值高八位
Byte5:错误信息值
错误信息值:(每一位代表一种错误信息值,共八位)
Bit0:血氧探头脱落
Bit1:手指未接入
Bit2:
Bit3:
Bit4:
Bit5:
Bit6:
Bit7:

2.6:有线血氧透传数据 0x06
2.6.1 数据包发送对象
从机发送给送主机,主机发送给从机
2.6.2数据段
有线血氧模块数据

2.7:无线模块透传数据 0x07
2.7.1 数据包发送对象
从机发送给送主机,主机发送给从机
2.7.2数据段
无线模块数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值