STM32 学习日记(一)通讯协议

通信协议

1.通讯协议是什么?
简单来讲就是暗号。
可以说是一个单片机向另外一个单片机,用串口发送信息时要加暗号,暗号对,自己人。暗号错,拒绝并警惕。
2.通讯协议的内容是什么?
简答来说是数据。
1.普通协议,适合自主开发
数据包含 数据包开始标志+数据长度+任务号+执行数据+校验和+数据包结束标志(也是中断接收完成的标志,由多个十六进制数组成,并且要保证接执行数据中不存在的)
上代码:

if(USART3_RX_STA&0x8000)//接收完成的标志
		{	
	    len=USART3_RX_STA&0x3fff;
			USART3_RX_STA=0;
			if(USART3_RX_BUF[0]==0x0a&&USART3_RX_BUF[len-1]==0x08)
			{
				if(USART3_RX_BUF[1]==len)
				{
					check=0;
					for(i=1;i

测试 0a 07 01 02 02 0c 08 0d 0a
注释看图吧,复制过来乱码了
STM32 学习日记(一)通讯协议_第1张图片
STM32 学习日记(一)通讯协议_第2张图片
注意的是:一定要避免通讯堵塞,一要设置最大接收数据长度,二是定时。
置最大接收数据数据长度:要合理
任务超时:计算最大的数据传输时长为界限
STM32F1通信协议代码,希望各位支持一下
STM32F4通信协议代码,希望各位支持一下
程序是一样的,我没有f7的开发板,如果有需要的,我就弄个f7的。
2.MOTERCTR协议,适合互联网开发
其实MOTERCTR协议就是CRC校验,就是一堆数据最后两位为CRC检验。
如图:
STM32 学习日记(一)通讯协议_第3张图片
STM32 学习日记(一)通讯协议_第4张图片
STM32 学习日记(一)通讯协议_第5张图片
接收一堆数据,计数它的高8位和底8位这两个校验位是否正确·,正确自己人,错误拒绝并警惕。
STM32F7课程学习的程序代码,来自老师手笔
若有需求,私信我,我就更改为F1或F4的程序。

通讯协议不仅仅是个协议,更是程序的生命,协议一定要复杂点,那么别人就不能轻易黑你的产品,现在流行手机当作上位机,大家有兴趣,就下载我弄的app源码,修改成您的专属产品
WIFI调试代码,可自己尝试开发

你可能感兴趣的:(STM32 学习日记(一)通讯协议)