⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 通过AT命令对串口蓝牙模块进行通信控制操作
💻 C
字号:

#include "main.h"

main()
{
//	char *pa;
	char i;
	bit mp;
	McuInit();
	initdata();
	Recving1 	= 0;
	linking 	= 1;
//	ES = 1;
	ES1= 1;
	TI = 1;
	while(1)
	{	
		WD_Reset
		i = BthDevInq();
		if(i)	//查询蓝牙设备
		{
			WD_Reset
			BthDisconnect();
			if(i!=6)
				BthReset();
		}
		else			
		{	
			for(i=0;i<DeviceCoun;i++)
			{
				//检查PDA的MAC地址
				if(Addrmatch(i))
				{		
					if(LinkBth(i))
					{		
						ES = 1;								
						//发出蓝牙设备已连接好信息
						SendBuf[0] = 2;
						SendBuf[1] = 0x33;
						SendBuf[2] = 'L';
						SendBuf[3] = 3;
						SendBuf[4] = 0x38; 
						SendBuf[5] = 0x32;
						SendBuf[6] = 0x00;
						sendlen = 0;
						SBUF = SendBuf[0];
						WD_Reset
						second = 0;
						while(1)
							if(second>=1) break;
						WD_Reset
						SendBuf1[0] = 2;
						SendBuf1[1] = 0x33;
						SendBuf1[2] = 'L';
						SendBuf1[3] = 3;
						SendBuf1[4] = 0x38; 
						SendBuf1[5] = 0x32;
						SendBuf1[6] = 0x00;
						sendlen1 = 0;
						SBUF1 = SendBuf1[0];
						WD_Reset
						second = 0;
						while(1)
							if(second>=2) break;
						WD_Reset
//						ES = 0;
//						TI = 1;
//						pa = SendBuf;
//						series0_send_array(pa);
//						series1_send_array(pa);
//						while(1) if(TI=1){ TI=0;break;}
//						while(1) if(TI1=1){ TI1=0;break;}
//						ES	= 1;
//						ES1	= 1;
						RecvOk=0;
						RecvOk1=0;												
						mp = 1;						
						while(mp)
						{						
							if(RecvOk1) 
							{
								RecvOk1 = 0;
								switch(RecvBuf1[2])		//检查是什么数据
								{
									case 'D':								
//										break;							
									case 'T':								
//										break;							
									case 'X':															
//										break;							
									case 'Y':								
//										break;							
									case 'H':								
//										break;											
									case 'S':								
//										break;													
									case 'E':								
//										break;							
									case 'U':								
//										break;							
									case 'O':								
//										break;
									case 'I':

									case 'G':

									case 'J':

									case 'K':

									case 'M':

									case 'V':
						
									case 'F':
										i = 0;
										while(1)
										{
											SendBuf[i]=RecvBuf1[i];											
											if(RecvBuf1[i]==0) break;
											i++;
										}
										SBUF = SendBuf[0];
/*
										minute = 0;
										second = 0;
										while(1)
										{ 
											if(RecvOk) break;	
											if(minute >= 1)
											{
												serier1_send_NoRep();
//												ES = 0;
//												ES1= 1;
												mp = 0;
												break;
											}
										}			*/	
										break;
									case 'A':
										
										for(i=0;i<12;i++)
											PDAMACAdd[RecvBuf1[3]-30][i] = RecvBuf1[4+i];
										
										break;
									case 'C':	
									//数据传送完毕				
//										ES1 = 0;
										ES	= 0;
									//结束透明传输状态	
										TI = 1;
										BthDisconnect();
										mp = 0;
										break;													
									case 'L':
										i = 0;
										while(1)
										{
											SendBuf1[i]=RecvBuf1[i];											
											if(RecvBuf1[i]==0) break;
											i++;
										}
										SBUF1 = SendBuf1[0];																	
										break;	

									default :
										i = 0;
										while(1)
										{
											SendBuf[i]=RecvBuf1[i];											
											if(RecvBuf1[i]==0) break;
											i++;
										}
										SBUF = SendBuf[0];
										break;
								}
									
							}
							if(RecvOk)
							{
								RecvOk = 0;
								if(Tag) 
								{
									SendBuf1[0] = 2;
									SendBuf1[1] = 0x33;
									SendBuf1[2] = 'Q';
									SendBuf1[3] = 3;
									SendBuf1[4] = 0x38; 
									SendBuf1[5] = 0x37;
									SendBuf1[6] = 0x00;
									SBUF1 = SendBuf1[0];
									WD_Reset
									second = 0;
									while(1)
										if(second>=2) break;
									WD_Reset
									ES = 0;
									TI = 1;
									break;
								}
								i = 0;
								while(1)
								{
									SendBuf1[i]=RecvBuf[i];									
									if(RecvBuf[i]==0) break;
									i++;
								}
								SBUF1 = SendBuf1[0];							
							}
							WD_Reset
//							if(Recving==0&&Recving1==0)
//								if(!Bthlinking()) 								
//									break;								
						}
					}
				}
			}
		}
		if(RecvOk1)
		{
			RecvOk1 = 0;
			if(RecvBuf[2]=='A')
				for(i=0;i<12;i++)
					PDAMACAdd[RecvBuf1[3]-30][i] = RecvBuf1[4+i];
			
		}
	}	

}



























⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -