第十三届 蓝桥杯 嵌入式设计与开发项目 省赛

赛题

第十三届 蓝桥杯 嵌入式设计与开发项目 省赛_第1张图片
第十三届 蓝桥杯 嵌入式设计与开发项目 省赛_第2张图片
第十三届 蓝桥杯 嵌入式设计与开发项目 省赛_第3张图片
第十三届 蓝桥杯 嵌入式设计与开发项目 省赛_第4张图片
部分程序展示:

void UART_function(void)
{
	u8 a,flag=0;;
	if(UART2_RX_over)
	{
		UART2_RX_over=0;
		if((UART2_RX_LEN==7)&&UART2_RX_BUF[3]=='-')
		{
			for(a=0;a<7;a++)
			{
				if(a==3) a=4;
				if((UART2_RX_BUF[a]<'0')||(UART2_RX_BUF[a]>'9'))  {flag=1;break;}			
			}
			if(!flag)	//格式正确
			{
				for(a=0;a<3;a++)
				{
					if(UART2_RX_BUF[a]!=MIMA_BUF[a]) {flag=1;break;}
				}
				if(!flag)	//密码正确
				{
					for(a=0;a<3;a++)
					{
						MIMA_BUF[a]=UART2_RX_BUF[a+4];	//修改密码
					}
				}
			}
		}
		HAL_UART_Receive_DMA(&huart1,UART2_RX_BUF,64);
	}
}

void LED_function(void)
{
	static u8 LED_state_last=0;
	
	if(LED_state_last!=LED_state)
	{
		LED_state_last=LED_state;
		LED_write(LED_state);
	}
}

		if(LCD_display)
		{
			if(!TASK_TIMES._5S_time)
			{
				LCD_display=0;
				TIM2->ARR=999;	//1K
				TIM2->CCR2=500;	//50%	
				TIM2->CNT=0;
				LED_state|=(0x01<<0);	//点熄灭LD1  
				sprintf((char *)LCD_Line1_BUF,"       PSD          ");
				sprintf((char *)LCD_Line3_BUF,"    B1:@            ");
				sprintf((char *)LCD_Line4_BUF,"    B1:@            ");
				sprintf((char *)LCD_Line5_BUF,"    B1:@            ");
				LCD_flag|=(0x01<<1);
				LCD_flag|=(0x01<<3);						
				LCD_flag|=(0x01<<4);						
				LCD_flag|=(0x01<<5);				
			}
		}
		UART_function();
		KEY_function();
		LED_function();
		LCD_function(); 

个人程序参考:
链接:https://pan.baidu.com/s/1LMECSy3GuABduu42YUJdSQ
提取码:qy2o

你可能感兴趣的:(蓝桥杯,蓝桥杯)