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<len-2;i++)
				{ 
				 check=check+USART3_RX_BUF[i];
				
				}
				if(check==USART3_RX_BUF[len-2])
				{
					switch(USART3_RX_BUF[2])
					{
						case 0x01:
							if(USART3_RX_BUF[3]==0x01)
							{
						     
							}
							USART_SendData(USART3,0x16);
						 break;
						case 0x02:
						    a=USART3_RX_BUF[3];b=USART3_RX_BUF[4];
						    USART_SendData(USART3,0x16);
						 break;
						default:
							USART_SendData(USART3,0x15);
							break;
					}
				}else USART_SendData(USART3,0x15);
				}else USART_SendData(USART3,0x15);
			}else USART_SendData(USART3,0x15);
		}
		
     
		//////////////////////////////////////////////////////////////////////

测试 0a 07 01 02 02 0c 08 0d 0a
注释看图吧,复制过来乱码了
在这里插入图片描述
在这里插入图片描述
STM32F1通信协议代码,希望各位支持一下
STM32F4通信协议代码,希望各位支持一下
程序是一样的,我没有f7的开发板,如果有需要的,我就弄个f7的。
2.MOTERCTR协议,适合互联网开发
其实MOTERCTR协议就是CRC校验,就是一堆数据最后两位为CRC检验。
如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接收一堆数据,计数它的高8位和底8位这两个校验位是否正确·,正确自己人,错误拒绝并警惕。
STM32F7课程学习的程序,来自老师手
若有需求,私信我,我就更改为F1或F4的程序。

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

发布了9 篇原创文章 · 获赞 5 · 访问量 2514

猜你喜欢

转载自blog.csdn.net/weixin_44244812/article/details/104317216