蓝桥杯国赛备赛(嵌入式组)

这篇具有很好参考价值的文章主要介绍了蓝桥杯国赛备赛(嵌入式组)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、数码管(拓展板)(共阴接法)

引脚控制
PA3 :RCLK 串型存储时钟输入 (上升沿有效)
PA2 :SCK 串行移位时钟输入(上升沿有效)
PA1 :SER 串型数据输入

发送数据时先发高位:因为会通过移位寄存器将他移到最后一个位置。

1、程序设计
(1)拓展板跳线帽连接(如下图)
蓝桥杯国赛备赛(嵌入式组)
(2)配置PA1、PA2、PA3为推挽输出
(3)通过STC-ISP软件得到数码管显示“段选”
(4)根据595芯片工作原理,编写seg_display函数(先发送高位)

1.1、共阴数码管码表
蓝桥杯国赛备赛(嵌入式组)
1.2、程序

“seg.c”

#include "seg.h"

#define	SER_H	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET)
#define	SER_L	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET)

#define	SCK_H	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_SET)
#define	SCK_L	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_RESET)

#define	RCK_H	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET)
#define	RCK_L	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET)

u8 seg_buf[3];	// 数码管显示缓存数组
u8 seg_code[]={
//   0    1    2    3    4    5    6    7    8    9   
    0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

void Seg_Display(void)
{
	u8 i;
	
	for(i=0;i<8;i++)
	{
		if(seg_buf[2] & 0x80)	SER_H;
		else SER_L;
		SCK_L;
		SCK_H;
		seg_buf[2] <<= 1;
	}
	
	for(i=0;i<8;i++)
	{
		if(seg_buf[1] & 0x80)	SER_H;
		else SER_L;
		SCK_L;
		SCK_H;
		seg_buf[1] <<= 1;
	}
	
	for(i=0;i<8;i++)
	{
		if(seg_buf[0] & 0x80)	SER_H;
		else SER_L;
		SCK_L;
		SCK_H;
		seg_buf[0] <<= 1;
	}
	RCK_L;
	RCK_H;
}

“seg.h”

#ifndef __SEG_H
#define __SEG_H

#include "main.h"

extern u8 seg_buf[3];
extern u8 seg_code[];
void Seg_Display(void);

#endif

main.c

void Seg_Process()
{
	HAL_Delay(100);
	
	seg_cnt++;	
	seg_buf[0] = seg_code[seg_cnt/100];
	seg_buf[1] = seg_code[seg_cnt/10%10];
	seg_buf[2] = seg_code[seg_cnt%10];
	Seg_Display();
}

现象:数码管从0开始加

二、双路ADC采集(扩展板)

引脚:
PA4:RP5滑动变阻器
PA5:RP6滑动变阻器

蓝桥杯国赛备赛(嵌入式组)
2.1、程序设计步骤
(1)按上图接好线
(2)配置PA4、PA5为ADC采集模式,并设为单端模式
(3)配置ADC2的转换通道数为2
(4)测试HAL_ADC_Start的ADC启动函数和HAL_ADC_GetValue的ADC读取函数
蓝桥杯国赛备赛(嵌入式组)
代码
main.c

void ADC_Process()
{
	//RANK1 - ADC2_IN17
	HAL_ADC_Start(&hadc2);//开启adc
	volt_rp5 = HAL_ADC_GetValue(&hadc2)/4095.0f*3.3f;	//读取通道1
	//RANK2 - ADC2_IN13
	HAL_ADC_Start(&hadc2);
	volt_rp6 = HAL_ADC_GetValue(&hadc2)/4095.0f*3.3f;//读取通道2
}

三、光敏电阻(扩展板)

1、接线
PA3:光敏电阻开关量信号
PA4:光敏电阻的分压模拟电压值
蓝桥杯国赛备赛(嵌入式组)
2、程序设计

(1)接线如上图
(2)配置PA4为ADC采集模式,并设置单端模式
(3)配置PA3为gpio输入模式
(4)测试ADC采集和GPIO读取功能

四、ADC按键(扩展板)

引脚:PA5
用法:每个按键按下去ad(pa5)采集到的电压不同,用以区分那个按键按下
蓝桥杯国赛备赛(嵌入式组)

u8 ADC_Key_Read()
{
	u8 keyio = 0;
	
	HAL_ADC_Start(&hadc2);
	adc_keyval = HAL_ADC_GetValue(&hadc2);
	
	if(adc_keyval < 200)
		keyio = 1;
	else if(adc_keyval < 800)
		keyio = 2;
	else if(adc_keyval < 1400)
		keyio = 3;
	else if(adc_keyval < 2000)
		keyio = 4;
	else if(adc_keyval < 2600)
		keyio = 5;
	else if(adc_keyval < 3200)
		keyio = 6;
	else if(adc_keyval < 3800)
		keyio = 7;
	else if(adc_keyval < 3950)
		keyio = 8;
	
	return keyio;
}

五、DS18B20(扩展板)

引脚PA6连p3排针上tdq
比赛中底层驱动会给,我们只需编写读取DS18B20温度的程序
看手册18页参考编程

#define delay_us(X)  delay((X)*100/5)  //这儿之前是80要改成100

float DS18B20_Read(void)
{
	float temp_return;
	u8 low,high;
	ow_reset();
	ow_byte_wr(0xcc);
	ow_byte_wr(0x44);
	
	ow_reset();
	ow_byte_wr(0xcc);
	ow_byte_wr(0xbe);
	low = ow_byte_rd();
	high = ow_byte_rd();
	temp_return = (high<<8 | low)*0.0625;
	
	return temp_return;
}

ds18b20.h

#ifndef __DS18B20_HAL_H
#define __DS18B20_HAL_H

#include "main.h"		//之前是stm32gxxx.h 换成main.h

#define OW_PIN_PORT		    GPIOA
#define OW_PIN				GPIO_PIN_6


#define OW_DIR_OUT() 	    mode_output1()
#define OW_DIR_IN() 	    mode_input1()
#define OW_OUT_LOW() 	    (HAL_GPIO_WritePin(OW_PIN_PORT, OW_PIN, GPIO_PIN_RESET))
#define OW_GET_IN()  	    (HAL_GPIO_ReadPin(OW_PIN_PORT, OW_PIN))
#define OW_SKIP_ROM 		0xCC
#define DS18B20_CONVERT 	0x44
#define DS18B20_READ 		0xBE


void ds18b20_init_x(void);
float DS18B20_Read(void);		//这个函数自己写

#endif

main.c

//温度
float temp_float;
u32 tempTick = 0;
void DS18B20_Process()
{
	if(uwTick - tempTick < 500)	return;			//500ms执行一次
	tempTick = uwTick;
	
	temp_float = DS18B20_Read();
}

六、DHT11(扩展板)

引脚PA7连接 P3上的HDQ
代码设计
(1)修改头文件
(2)修改延时#define delay_us(X) delay(X*100/5);
(3)修改dht11.c中与GPIO操作相关的驱动文件
(4)调用dht11_read()函数解析数据


unsigned int dht11_read(void)
{
  int i;
  long long val;
  int timeout;

  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);
  delay_us(18000);  //pulldown  for 18ms
  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);
  delay_us( 20 );	//pullup for 30us

  mode_input();

  //等待DHT11拉高,80us
  timeout = 5000;
  while( (! HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7)) && (timeout > 0) ) timeout--;	 //wait HIGH

  //等待DHT11拉低,80us
  timeout = 5000;
  while( HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7) && (timeout > 0) ) timeout-- ;	 //wait LOW

#define CHECK_TIME 28

  for(i=0;i<40;i++)
  {
	timeout = 5000;
	while( (! HAL_GPIO_ReadPin  (GPIOA, GPIO_PIN_7)) && (timeout > 0) ) timeout--;	 //wait HIGH

	delay_us(CHECK_TIME);
	if ( HAL_GPIO_ReadPin (GPIOA, GPIO_PIN_7) )
	{
	  val=(val<<1)+1;
	} else {
	  val<<=1;
	}

	timeout = 5000;
	while( HAL_GPIO_ReadPin (GPIOA, GPIO_PIN_7) && (timeout > 0) ) timeout-- ;	 //wait LOW
  }

  mode_output();
  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);

  if (((val>>32)+(val>>24)+(val>>16)+(val>>8) -val ) & 0xff  ) return 0;
    else return val>>8; 

}
void lcd_diaplay()
{
	sprintf((char*)display_buf,"T:%d.%dC H:%d%%",(dht11_val>>8 & 0xff),(dht11_val & 0xff),(dht11_val>>24 & 0xff));
	LCD_DisplayStringLine(Line6 ,(unsigned char *)display_buf);
}

七、一个定时器通道捕获两路pwm频率(扩展板)

1、cube配置
蓝桥杯国赛备赛(嵌入式组)
2、代码文章来源地址https://www.toymoban.com/news/detail-468504.html


// 输入捕获
/* Captured Values */
uint32_t uwIC3Value1 = 0;
uint32_t uwIC3Value2 = 0;
uint32_t uwDiffCapture_ch3 = 0;
/* Capture index */
uint16_t uhCaptureIndex_ch3 = 0;
/* Frequency Value */
uint32_t uwFrequency_ch3 = 0;
/* Captured Values */
uint32_t uwIC2Value1 = 0;
uint32_t uwIC2Value2 = 0;
uint32_t uwDiffCapture = 0;
/* Capture index */
uint16_t uhCaptureIndex = 0;
/* Frequency Value */
uint32_t uwFrequency = 0;
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance == TIM2)
	{
	  //TIM2_CH3频率捕获
	  if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_3)
	  {
		if(uhCaptureIndex_ch3 == 0)
		{
		  /* Get the 1st Input Capture value */
		  uwIC3Value1 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_3);
		  uhCaptureIndex_ch3 = 1;
		}
		else if(uhCaptureIndex_ch3 == 1)
		{
		  /* Get the 2nd Input Capture value */
		  uwIC3Value2 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_3); 

		  /* Capture computation */
		  if (uwIC3Value2 > uwIC3Value1)
		  {
			uwDiffCapture_ch3 = (uwIC3Value2 - uwIC3Value1); 
		  }
		  else if (uwIC3Value2 < uwIC3Value1)
		  {
			/* 0xFFFFFFFF is max TIM2_CCRx value */
			uwDiffCapture_ch3 = ((0xFFFFFFFF - uwIC3Value1) + uwIC3Value2) + 1;
		  }
		  else
		  {
			/* If capture values are equal, we have reached the limit of frequency
			   measures */
			Error_Handler();
		  }

		  /* Frequency computation: for this example TIMx (TIM1) is clocked by
			 APB2Clk */      
		  uwFrequency_ch3 = 1e6 / uwDiffCapture_ch3;
		  uhCaptureIndex_ch3 = 0;
		}
	  }
	  
	  //TIM2_CH2频率捕获
	  if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2)
	  {
		if(uhCaptureIndex == 0)
		{
		  /* Get the 1st Input Capture value */
		  uwIC2Value1 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2);
		  uhCaptureIndex = 1;
		}
		else if(uhCaptureIndex == 1)
		{
		  /* Get the 2nd Input Capture value */
		  uwIC2Value2 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2); 

		  /* Capture computation */
		  if (uwIC2Value2 > uwIC2Value1)
		  {
			uwDiffCapture = (uwIC2Value2 - uwIC2Value1); 
		  }
		  else if (uwIC2Value2 < uwIC2Value1)
		  {
			/* 0xFFFFFFFF is max TIM2_CCRx value */
			uwDiffCapture = ((0xFFFFFFFF - uwIC2Value1) + uwIC2Value2) + 1;
		  }
		  else
		  {
			/* If capture values are equal, we have reached the limit of frequency
			   measures */
			Error_Handler();
		  }

		  /* Frequency computation: for this example TIMx (TIM1) is clocked by
			 APB2Clk */      
		  uwFrequency = 1e6 / uwDiffCapture;
		  uhCaptureIndex = 0;
		}
	}
  }
}

void main()
{
	//...
	HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_2);	//开启TIM2_CH2的输入捕获中断
	HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_3);
	while(1)
	{
			
	}	
}

八、一个定时器通道捕获两路pwm占空比(扩展板)

void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance == TIM3)
	{
		  if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2)
		  {
			if(uhCaptureIndex_T3CH2 == 0)			//第一次中断:上升沿中断,CCR
			{
			  /* Get the 1st Input Capture value */
			  uwIC2Value1_T3CH2 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2);
			  __HAL_TIM_SET_CAPTUREPOLARITY(htim,TIM_CHANNEL_2,TIM_INPUTCHANNELPOLARITY_FALLING);
			  uhCaptureIndex_T3CH2 = 1;
			}
			else if(uhCaptureIndex_T3CH2 == 1)		//第二次中断:下沿中断,CCR
			{
			  /* Get the 2nd Input Capture value */
			  uwIC2Value2_T3CH2 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2); 
			  __HAL_TIM_SET_CAPTUREPOLARITY(htim,TIM_CHANNEL_2,TIM_INPUTCHANNELPOLARITY_RISING);
			  /* Capture computation */
			  if (uwIC2Value2_T3CH2 > uwIC2Value1_T3CH2)
			  {
				uwHigh_T3CH2 = (uwIC2Value2_T3CH2 - uwIC2Value1_T3CH2); 
			  }
			  else if (uwIC2Value2_T3CH2 < uwIC2Value1_T3CH2)
			  {
				/* 0xFFFF is max TIM1_CCRx value */
				uwHigh_T3CH2 = ((0xFFFF - uwIC2Value1_T3CH2) + uwIC2Value2_T3CH2) + 1;
			  }
			  uwIC2Value1_T3CH2 = uwIC2Value2_T3CH2;
			  uhCaptureIndex_T3CH2 = 2;
			}
			else if(uhCaptureIndex_T3CH2 == 2)		//第三次中断,上升沿中断,CCR
			{
			  uwIC2Value2_T3CH2 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2); 
			  /* Capture computation */
			  if (uwIC2Value2_T3CH2 > uwIC2Value1_T3CH2)
			  {
				uwLow_T3CH2 = (uwIC2Value2_T3CH2 - uwIC2Value1_T3CH2); 
			  }
			  else if (uwIC2Value2_T3CH2 < uwIC2Value1_T3CH2)
			  {
				/* 0xFFFF is max TIM1_CCRx value */
				uwLow_T3CH2 = ((0xFFFF - uwIC2Value1_T3CH2) + uwIC2Value2_T3CH2) + 1;
			  }
			  
			  /* Frequency computation */      
			  uwFrequency_T3CH2 = 1e6 / (uwLow_T3CH2 + uwHigh_T3CH2);
			  duty_T3CH2 = uwHigh_T3CH2 * 100.0f / (uwLow_T3CH2 + uwHigh_T3CH2);	//单位是%
			  uhCaptureIndex_T3CH2 = 0;
			}
		  }
		  
		 if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)
		  {
			if(uhCaptureIndex_T3CH1 == 0)			//第一次中断:上升沿中断,CCR
			{
			  /* Get the 1st Input Capture value */
			  uwIC1Value1_T3CH1 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);
			  __HAL_TIM_SET_CAPTUREPOLARITY(htim,TIM_CHANNEL_1,TIM_INPUTCHANNELPOLARITY_FALLING);
			  uhCaptureIndex_T3CH1 = 1;
			}
			else if(uhCaptureIndex_T3CH1 == 1)		//第二次中断:下沿中断,CCR
			{
			  /* Get the 2nd Input Capture value */
			  uwIC1Value2_T3CH1 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); 
			  __HAL_TIM_SET_CAPTUREPOLARITY(htim,TIM_CHANNEL_1,TIM_INPUTCHANNELPOLARITY_RISING);
			  /* Capture computation */
			  if (uwIC1Value2_T3CH1 > uwIC1Value1_T3CH1)
			  {
				uwHigh_T3CH1 = (uwIC1Value2_T3CH1 - uwIC1Value1_T3CH1); 
			  }
			  else if (uwIC1Value2_T3CH1 < uwIC1Value1_T3CH1)
			  {
				/* 0xFFFF is max TIM1_CCRx value */
				uwHigh_T3CH1 = ((0xFFFF - uwIC1Value1_T3CH1) + uwIC1Value2_T3CH1) + 1;
			  }
			  uwIC1Value1_T3CH1 = uwIC1Value2_T3CH1;
			  uhCaptureIndex_T3CH1 = 2;
			}
			else if(uhCaptureIndex_T3CH1 == 2)		//第三次中断,上升沿中断,CCR
			{
			  uwIC1Value2_T3CH1 = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); 
			  /* Capture computation */
			  if (uwIC1Value2_T3CH1 > uwIC1Value1_T3CH1)
			  {
				uwLow_T3CH1 = (uwIC1Value2_T3CH1 - uwIC1Value1_T3CH1); 
			  }
			  else if (uwIC1Value2_T3CH1 < uwIC1Value1_T3CH1)
			  {
				/* 0xFFFF is max TIM1_CCRx value */
				uwLow_T3CH1 = ((0xFFFF - uwIC1Value1_T3CH1) + uwIC1Value2_T3CH1) + 1;
			  }
			  
			  /* Frequency computation */      
			  uwFrequency_T3CH1 = 1e6 / (uwLow_T3CH1 + uwHigh_T3CH1);
			  duty_T3CH1 = uwHigh_T3CH1 * 100.0f / (uwLow_T3CH1 + uwHigh_T3CH1);	//单位是%
			  uhCaptureIndex_T3CH1 = 0;
			}
	}
}

到了这里,关于蓝桥杯国赛备赛(嵌入式组)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第十三届蓝桥杯嵌入式国赛真题(基于HAL库的巨简代码+超级详解)

    相关说明: 开发板:CT117E-M4(STM32G431RBT6) 开发环境: CubeMX+Keil5 涉及题目:第十三届蓝桥杯嵌入式国赛真题 难点:双路AD测量电压、输入捕获测频率、LCD屏幕翻转、冒泡法、初始上电判断、按键长短按 CubeMX配置、主要函数代码及说明: 1.使能外部高速时钟: 2.配置时钟树:

    2023年04月09日
    浏览(44)
  • 蓝桥杯青少C++省赛备赛指南和真题详解

    蓝桥杯大赛是工业和信息化部人才交流中心举办的全国性专业信息技术赛事,已经成功举办了13届,历时14年。蓝桥杯大赛首席专家倪光南院士说:“蓝桥杯以考促学,塑造了领跑全国的人才培养选拔模式,并获得了行业的深度认可。” 随着蓝桥杯加入国家白名单赛事,含金

    2024年02月04日
    浏览(99)
  • 嵌入式开发7279A数码管 键盘

    HD7279A硬件电路图HD7279A是一种管理键盘和LED显示器的专用智能控制芯片。它能对8位共阴极LED显示器或64个LED发光管进行管理和驱动,同时能对多达8×8的键盘矩阵的按键情况进行监视,具有自动消除键抖动并识别按键代码的功能,从而可以提高CPU工作的效率。HD7279A和微处理器之

    2024年02月03日
    浏览(25)
  • 【蓝桥杯嵌入式】第十三届蓝桥杯嵌入式省赛客观题以及详细题解

    题解:   概念题。 MCO引脚,是单片机对外提供时钟的引脚。 HSE,高速外部时钟信号,时钟源由外部晶体/陶瓷谐振器与外部时钟; HSI,高速的内部时钟,由内部8MHz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输入; SYSCLK,是系统时钟; HSE/2,对高速外部时钟进

    2023年04月16日
    浏览(43)
  • 【蓝桥杯嵌入式】第十二届蓝桥杯嵌入式省赛客观题及详细题解

    解析: 波特率,指 每秒钟传输码元符号的个数,对符号传输速率的一种度量,单位为1baud/s 。 由于串口只有高低电平之分,即1码元等于1bit,即波特单位1baud和1bit等效,因此,此时的波特单位可以是位/秒。 答案: B 解析: 放大电路的开环,是指未经反馈通路形成的独立放大电

    2023年04月17日
    浏览(59)
  • 【蓝桥杯嵌入式】第十四届蓝桥杯嵌入式[模拟赛2]客观题及详细题解

    解析 USART_CR1:控制寄存器1,其中的M位定义了数据字的长度,由软件对其设置和清零。 USART_CR2:控制寄存器2。 USART_BRR:波特率寄存器。 USART_DR:数据寄存器。 (如果现场不记得,可以查阅芯片手册) 答案: A 解析 在STM32微控制器中,DMA可编程的数据传送数目:最大为65535。(如果现场不

    2023年04月10日
    浏览(45)
  • 【蓝桥杯嵌入式】蓝桥杯嵌入式第十四届省赛程序真题,真题分析与代码讲解

     🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都已更新完毕,欢迎大家前往订阅本专题🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 🎏【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题 🎏【蓝桥杯嵌入式】蓝桥杯第十三届省

    2023年04月15日
    浏览(59)
  • 【蓝桥杯嵌入式】第十四届蓝桥杯嵌入式[模拟赛1]程序设计试题及详细题解

    模拟赛1的题目中需要的准备的知识点不多,其中只用到了 串口 、 LCD 、 LED 、 按键 、 定时器的PWM输出 、以及 ADC 等几个模块,题目要求也简单详细并且数量不多,非常适合入门比赛,以及整合自己比赛的模块。 与模拟赛2相比,当然是模拟赛2的试题比较难啦,虽然需要的模

    2023年04月13日
    浏览(32)
  • 【蓝桥杯嵌入式】蓝桥杯嵌入式第十二届省赛题,考点:模拟电压,串口通信,计时器

     🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 🎏【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题 🎏【蓝桥杯嵌入式

    2023年04月09日
    浏览(43)
  • 【蓝桥杯嵌入式】第十四届蓝桥杯嵌入式[模拟赛2]程序设计试题及详细题解

    这次的模拟赛试题模块还是一些常见模块: LCD 、 LED 、 按键 、 定时器 以及 串口 ,相对比较常规,相比于真正的省赛也比较简单。但是它 适合刚刚学完各个模块需要做真题的同学 ,可以借此来巩固自己之前所学;对于已经能够掌握各个模块的同学也是有帮助的,就是平台

    2023年04月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包