4 -【第十二届】蓝桥杯物联网试题 (省赛题)

这篇具有很好参考价值的文章主要介绍了4 -【第十二届】蓝桥杯物联网试题 (省赛题)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

设计题

4 -【第十二届】蓝桥杯物联网试题 (省赛题)
4 -【第十二届】蓝桥杯物联网试题 (省赛题)
4 -【第十二届】蓝桥杯物联网试题 (省赛题)
4 -【第十二届】蓝桥杯物联网试题 (省赛题)

配置过程:

节点1

1.将时钟树频率设置成32MHz

4 -【第十二届】蓝桥杯物联网试题 (省赛题)

2.将GPIO引脚做如下配置:

引脚功能

4 -【第十二届】蓝桥杯物联网试题 (省赛题)

使能ADC功能

4 -【第十二届】蓝桥杯物联网试题 (省赛题)
4 -【第十二届】蓝桥杯物联网试题 (省赛题)

使能RTC功能

4 -【第十二届】蓝桥杯物联网试题 (省赛题)

3.生成工程代码

4.移植OLED、LoRa库文件

4 -【第十二届】蓝桥杯物联网试题 (省赛题)

5.编写逻辑代码

自定义Task_Main.h Task_Main.c工程文件

Task_Main.h
#ifndef _TASK_MAIN_H_
#define _TASK_MAIN_H_

#include "main.h"
#include "stm32l0xx_hal.h"
#include "rtc.h"
#include "sx127x_lora.h"
#include "oled.h"
#include "stdio.h"
#include "string.h"
#include "stm32l0xx_it.h"
#include "adc.h"

void Task_BrdInit(void);
void Task_Main(void);
uint8_t user_scan(void);
void lora_recv(void);
void get_oled(void);
void get_adc(void);
void get_rtc_dis(void);
void get_adc_dis(void);
void get_rtc(void);

#endif
Task_Main.c
#include "Task_main.h"

#define FREQ			433000000L
radio_handle_t handle;

RTC_DateTypeDef NOWDATE;
RTC_TimeTypeDef NOWTIME;

bool oled_mode = 0;  //0:RTC模式 1:ADC检测模式

float v_vrp1 = 0.00;
float v_vrp2 = 0.00;

uint8_t recv_buf[256] = {0};
uint16_t recv_buf_size;
uint32_t adc_value[2] = {0};
bool recv_flag = 0;
char oled_dis_rtc_1[16] = "      RTC       ";
char oled_dis_rtc_2[16] = "    23-59-55    ";
char oled_dis_adc_1[16] = "VRP1:0.00v      ";
char oled_dis_adc_2[16] = "VRP2:0.00v      ";

char send_data1[21] = "   VRP1:0.00:00-00-00";
char send_data2[21] = "   VRP2:0.00:00-00-00";

extern bool get_led5_flag;
extern bool get_lora_flag;
extern bool get_rtc_flag;
extern bool get_adc_flag;

void Task_Main(void)
{
  if(user_scan())
  {
    oled_mode = !oled_mode;
  }
  get_adc();
  if(oled_mode)
  {
    get_adc_dis();  
  }
  else
  {
    if(get_rtc_flag)
    {
      get_rtc_flag = 0;
      get_rtc_dis();
    }
  }

  if(get_lora_flag)
  {
    get_lora_flag = 0;
    lora_recv();
  }
}

void Task_BrdInit(void)
{
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);
    OLED_PowerControl(ENABLE);
    HAL_Delay(200);
    OLED_Init();
    OLED_Clear();
    OLED_ShowString(0, 0, (uint8_t *)oled_dis_rtc_1, 16);
    OLED_ShowString(0, 2, (uint8_t *)oled_dis_rtc_2, 16);
    spi_init();
    zm4xx_pin_init();
    handle = radio_zm4xx_inst_init(spi_recv_byte,spi_send_byte,zm4xx_rst_pin_set,zm4xx_sel_pin_set,HAL_Delay,delay_us);
    if(handle != NULL){
      if(RADIO_RET_OK == radio_freq_set(handle, FREQ)){
      }
      radio_mode_set(handle, RX_MODE);	//Receive Mode
    }
    HAL_ADC_Start_DMA(&hadc, adc_value, 2);
}

void get_rtc_dis(void)
{
  HAL_RTC_GetTime(&hrtc, &NOWTIME, RTC_FORMAT_BIN);
  HAL_RTC_GetDate(&hrtc, &NOWDATE, RTC_FORMAT_BIN);
  
  sprintf(oled_dis_rtc_2, "    %02d-%02d-%02d    ", NOWTIME.Hours, NOWTIME.Minutes, NOWTIME.Seconds);
  OLED_ShowString(0, 0, (uint8_t *)oled_dis_rtc_1, 16);
  OLED_ShowString(0, 2, (uint8_t *)oled_dis_rtc_2, 16);
}

void get_rtc(void)
{
  HAL_RTC_GetTime(&hrtc, &NOWTIME, RTC_FORMAT_BIN);
  HAL_RTC_GetDate(&hrtc, &NOWDATE, RTC_FORMAT_BIN);
}

uint8_t user_scan(void)
{
  uint8_t key_stat = 0;
  key_stat = HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_14);
  HAL_Delay(50);
  key_stat = HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_14);
  if(key_stat == 0)
  {
    while(!HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_14));
    return 1;
  }
  return 0;
}

void get_adc_dis(void)
{ 
  OLED_ShowString(0, 0, (uint8_t *)oled_dis_adc_1, 16);
  OLED_ShowString(0, 2, (uint8_t *)oled_dis_adc_2, 16);
}

void get_adc(void)
{
  v_vrp1 = (adc_value[1]*3.3)/(4095);
  v_vrp2 = (adc_value[0]*3.3)/(4095);

  sprintf(oled_dis_adc_1, "VRP1:%.2fv      ", v_vrp1);
  sprintf(oled_dis_adc_2, "VRP2:%.2fv      ", v_vrp2);
  HAL_ADC_Start_DMA(&hadc, adc_value, 2);
}

void lora_recv(void)
{
  uint8_t recv_data[256] = {0};

  if(radio_buf_recv(handle, recv_buf, &recv_buf_size) == RADIO_RET_OK)
  {
      uint8_t i=0;
      for(i=0; i<recv_buf_size-3; i++)
      {
        recv_data[i] = recv_buf[i+3];      
      }
      if(strcmp((const char *)recv_data, (const char *)"VRP1?") == 0)
      {
        recv_flag = 1;
        get_rtc();
        sprintf(send_data1, "   VRP1:%.2f:%02d-%02d-%02d", v_vrp1, NOWTIME.Hours, NOWTIME.Minutes, NOWTIME.Seconds);
        radio_buf_send(handle, (uint8_t *)send_data1, 21);
        radio_mode_set(handle, RX_MODE);
      }
      else if(strcmp((const char *)recv_data, (const char *)"VRP2?") == 0)
      {
        recv_flag = 1;
        get_rtc();
        sprintf(send_data2, "   VRP2:%.2f:%02d-%02d-%02d", v_vrp2, NOWTIME.Hours, NOWTIME.Minutes, NOWTIME.Seconds);        
        radio_buf_send(handle, (uint8_t *)send_data2, 21);
        radio_mode_set(handle, RX_MODE);
      }
      radio_mode_set(handle, RX_MODE);	//Receive Mode
  }
}
main.c

引入头文件

/* USER CODE BEGIN Includes */
#include "Task_Main.h"
/* USER CODE END Includes */

板级初始化

 /* USER CODE BEGIN 2 */
  Task_BrdInit();
  /* USER CODE END 2 */

主控代码

  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    Task_Main();
  }
  /* USER CODE END 3 */

节点2

1.将时钟树频率设置成32MHz

4 -【第十二届】蓝桥杯物联网试题 (省赛题)

2.将GPIO引脚做如下配置:

引脚功能

4 -【第十二届】蓝桥杯物联网试题 (省赛题)

使能USART2串口功能

4 -【第十二届】蓝桥杯物联网试题 (省赛题)
4 -【第十二届】蓝桥杯物联网试题 (省赛题)

3.生成工程代码

4.移植LoRa库文件

4 -【第十二届】蓝桥杯物联网试题 (省赛题)

5.编写逻辑代码

自定义Task_Main.h Task_Main.c工程文件

Task_Main.h
#ifndef _TASK_MAIN_H_
#define _TASK_MAIN_H_

#include "main.h"
#include "stdio.h"
#include "string.h"
#include "stm32l0xx_hal.h"
#include "sx127x_lora.h"
#include "usart.h"

void Task_BrdInit(void);
void Task_Main(void);


#endif
Task_Main.c
#include "Task_main.h"

#define FREQ			433000000L
radio_handle_t handle;

uint8_t uart_buf[5] = {0};
uint8_t cmd_num = 0;
uint8_t recv_buf[256] = {0};
uint16_t recv_buf_size;

uint8_t cmd1[27] = "   VRP1?";
uint8_t cmd2[27] = "   VRP2?";

int fputc(int ch, FILE *f)
{
  while((USART2->ISR&(1<<7))==0);
  USART2->TDR = (uint8_t)ch;
  
  return ch;
}

void Task_Main(void)
{
  if(cmd_num == 1)
  {
      cmd_num = 0;  
      radio_buf_send(handle, cmd1, 5+3);
      radio_mode_set(handle, RX_MODE);    
  }
  if(cmd_num == 2)
  {
      cmd_num = 0;
      radio_buf_send(handle, cmd2, 5+3);
      radio_mode_set(handle, RX_MODE);    
  }
  if(radio_buf_recv(handle, recv_buf, &recv_buf_size) == RADIO_RET_OK)
  {
      uint8_t recv_data[18] = {0};
      uint8_t i=0;
      
      for(i=0; i<18; i++)
      {
        recv_data[i] = recv_buf[i+3];
      }
    
      printf("%s\n", recv_data);
      radio_mode_set(handle, RX_MODE);	//Receive Mode
  }
}

void Task_BrdInit(void)
{
    spi_init();
    zm4xx_pin_init();
  
    handle = radio_zm4xx_inst_init(spi_recv_byte,spi_send_byte,zm4xx_rst_pin_set,zm4xx_sel_pin_set,HAL_Delay,delay_us);
    if(handle != NULL){
      if(RADIO_RET_OK == radio_freq_set(handle, FREQ)){
      }
      radio_mode_set(handle, RX_MODE);	//Receive Mode
    }
    HAL_UART_Receive_IT(&huart2, uart_buf, 5);
}

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    uint8_t i;
    uint8_t uart_data[5] = {0};
  
    for(i=0; i<5; i++)
    {
      uart_data[i] = uart_buf[i];
    }
    if(strcmp((const char *)uart_data, "VRP1?")==0)
    {
      cmd_num = 1;

    }
    else if(strcmp((const char *)uart_data, "VRP2?")==0)
    {
      cmd_num = 2;
    }
    else
    {
      cmd_num = 0;
      printf("Error\n");        
    }
    HAL_UART_Receive_IT(&huart2, uart_buf, 5);  
}
main.c

引入头文件

/* USER CODE BEGIN Includes */
#include "Task_Main.h"
/* USER CODE END Includes */

板级初始化

  /* USER CODE BEGIN 2 */
  Task_BrdInit();
  /* USER CODE END 2 */

主控代码

 /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    Task_Main();
  }
  /* USER CODE END 3 */
stm32l0xx_it.c

引入头文件

/* USER CODE BEGIN Includes */
#include "Task_Main.h"
/* USER CODE END Includes */

轮询标志

/* USER CODE BEGIN TD */
bool get_led5_flag = 0;
bool get_lora_flag = 0;
bool get_rtc_flag = 0;
extern bool recv_flag;
/* USER CODE END TD */

轮询函数

/**
  * @brief This function handles System tick timer.
  */
void SysTick_Handler(void)
{
  /* USER CODE BEGIN SysTick_IRQn 0 */
  static uint16_t lora_num= 0;   
  static uint16_t rtc_num= 0;
  static uint16_t led_num= 0; 
  
  /* USER CODE END SysTick_IRQn 0 */
  HAL_IncTick();
  /* USER CODE BEGIN SysTick_IRQn 1 */
  lora_num++;   
  rtc_num++;
  
  if(lora_num>=200)
  {
    lora_num = 0;
    get_lora_flag = 1;
  }
  if(rtc_num>=800)
  {
    rtc_num = 0;
    get_rtc_flag = 1;
  }
  if(recv_flag==1)
  {
    if(led_num%400==0)
    {
      HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_15);
    }
    led_num++;
    if(led_num>=3600)
    {
      HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);
      recv_flag = 0;
      led_num = 0;
    }
  }
  
  /* USER CODE END SysTick_IRQn 1 */
}

实验现象

4 -【第十二届】蓝桥杯物联网试题 (省赛题)
4 -【第十二届】蓝桥杯物联网试题 (省赛题)
4 -【第十二届】蓝桥杯物联网试题 (省赛题)文章来源地址https://www.toymoban.com/news/detail-409638.html

代码优化

节点1

Task_Main.c

#include "Task_main.h"

#define FREQ			433000000L
radio_handle_t handle;
#define PERIOD 100000

RTC_DateTypeDef NOWDATE;
RTC_TimeTypeDef NOWTIME;

bool oled_mode = 0;  //0:RTC模式 1:ADC检测模式

float v_vrp1 = 0.00;
float v_vrp2 = 0.00;

uint8_t recv_buf[256] = {0};
uint16_t recv_buf_size;
uint32_t adc_value[10] = {0};
bool recv_flag = 0;
char oled_dis_rtc_1[16] = "      RTC       ";
char oled_dis_rtc_2[16] = "    23-59-55    ";
char oled_dis_adc_1[16] = "VRP1:0.00V      ";
char oled_dis_adc_2[16] = "VRP2:0.00V      ";

char send_data1[21] = "   VRP1:0.00:00-00-00";
char send_data2[21] = "   VRP2:0.00:00-00-00";

bool get_lora_flag = 0;
extern bool get_led5_flag;
extern bool get_rtc_flag;
extern bool get_adc_flag;

void Task_Main(void)
{
  get_adc(); 
  
  if(oled_mode)
  {
    get_adc_dis();  
  }
  else
  {
    if(get_rtc_flag)
    {
      get_rtc_flag = 0;
      get_rtc_dis();
    }
  }
  if(get_lora_flag)
  {
    get_lora_flag = 0;
    lora_recv();
  }
}

void Task_BrdInit(void)
{
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);
    OLED_PowerControl(ENABLE);
    HAL_Delay(200);
    OLED_Init();
    OLED_Clear();
    OLED_ShowString(0, 0, (uint8_t *)oled_dis_rtc_1, 16);
    OLED_ShowString(0, 2, (uint8_t *)oled_dis_rtc_2, 16);
    spi_init();
    zm4xx_pin_init();
    handle = radio_zm4xx_inst_init(spi_recv_byte,spi_send_byte,zm4xx_rst_pin_set,zm4xx_sel_pin_set,HAL_Delay,delay_us);
    if(handle != NULL){
      if(RADIO_RET_OK == radio_freq_set(handle, FREQ)){
      }
      radio_mode_set(handle, RX_MODE);	//Receive Mode
    }
    HAL_ADC_Start_DMA(&hadc, adc_value, 10);
}

void get_rtc_dis(void)
{
  HAL_RTC_GetTime(&hrtc, &NOWTIME, RTC_FORMAT_BIN);
  HAL_RTC_GetDate(&hrtc, &NOWDATE, RTC_FORMAT_BIN);
  
  sprintf(oled_dis_rtc_2, "    %02d-%02d-%02d    ", NOWTIME.Hours, NOWTIME.Minutes, NOWTIME.Seconds);
  OLED_ShowString(0, 0, (uint8_t *)oled_dis_rtc_1, 16);
  OLED_ShowString(0, 2, (uint8_t *)oled_dis_rtc_2, 16);
}

void get_rtc(void)
{
  HAL_RTC_GetTime(&hrtc, &NOWTIME, RTC_FORMAT_BIN);
  HAL_RTC_GetDate(&hrtc, &NOWDATE, RTC_FORMAT_BIN);
}

void get_adc_dis(void)
{ 
  OLED_ShowString(0, 0, (uint8_t *)oled_dis_adc_1, 16);
  OLED_ShowString(0, 2, (uint8_t *)oled_dis_adc_2, 16);
}

void get_adc(void)
{
  v_vrp2 = ((adc_value[0]+adc_value[2]+adc_value[4]+adc_value[6]+adc_value[8])*3.3)/(4095*5);
  v_vrp1 = ((adc_value[1]+adc_value[3]+adc_value[5]+adc_value[7]+adc_value[9])*3.3)/(4095*5);

  sprintf(oled_dis_adc_1, "VRP1:%.2fV      ", v_vrp1);
  sprintf(oled_dis_adc_2, "VRP2:%.2fV      ", v_vrp2);
  HAL_ADC_Start_DMA(&hadc, adc_value, 10);
}

void lora_recv(void)
{
  uint8_t recv_data[256] = {0};

  if(radio_buf_recv(handle, recv_buf, &recv_buf_size) == RADIO_RET_OK)
  {
      uint8_t i=0;
      for(i=0; i<recv_buf_size-3; i++)
      {
        recv_data[i] = recv_buf[i+3];      
      }
      if(strcmp((const char *)recv_data, (const char *)"VRP1?") == 0)
      {
        HAL_LPTIM_Counter_Start_IT(&hlptim1, PERIOD);
        get_rtc();
        sprintf(send_data1, "   VRP1:%.2f:%02d-%02d-%02d", v_vrp1, NOWTIME.Hours, NOWTIME.Minutes, NOWTIME.Seconds);
        radio_buf_send(handle, (uint8_t *)send_data1, 21);
        radio_mode_set(handle, RX_MODE);
      }
      else if(strcmp((const char *)recv_data, (const char *)"VRP2?") == 0)
      {
       HAL_LPTIM_Counter_Start_IT(&hlptim1, PERIOD);
        get_rtc();
        sprintf(send_data2, "   VRP2:%.2f:%02d-%02d-%02d", v_vrp2, NOWTIME.Hours, NOWTIME.Minutes, NOWTIME.Seconds);        
        radio_buf_send(handle, (uint8_t *)send_data2, 21);
        radio_mode_set(handle, RX_MODE);
      }
      radio_mode_set(handle, RX_MODE);	//Receive Mode
  }
}

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
  if(GPIO_Pin == GPIO_PIN_14)
  {
    oled_mode = !oled_mode;
  }
  if(GPIO_Pin == GPIO_PIN_10)
  {
    get_lora_flag = 1;
  }
}

uint16_t num = 1;
void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim)
{
  if(num!=10)
  {
    num++;
    HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_15);
  }
  else
  {
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);
    num = 1;
    HAL_LPTIM_Counter_Stop_IT(&hlptim1);
  }
}

Task_Main.h

#ifndef _TASK_MAIN_H_
#define _TASK_MAIN_H_

#include "main.h"
#include "stm32l0xx_hal.h"
#include "rtc.h"
#include "sx127x_lora.h"
#include "oled.h"
#include "stdio.h"
#include "string.h"
#include "stm32l0xx_it.h"
#include "adc.h"
#include "lptim.h"

void Task_BrdInit(void);
void Task_Main(void);
void lora_recv(void);
void get_oled(void);
void get_adc(void);
void get_rtc_dis(void);
void get_adc_dis(void);
void get_rtc(void);

#endif

stm32l0xx_it.c

/* USER CODE BEGIN Includes */
#include "Task_Main.h"
/* USER CODE END Includes */

/* USER CODE BEGIN TD */
bool get_rtc_flag = 0;
extern bool recv_flag;
/* USER CODE END TD */

void SysTick_Handler(void)
{
  /* USER CODE BEGIN SysTick_IRQn 0 */
  static uint16_t rtc_num= 0;
  
  /* USER CODE END SysTick_IRQn 0 */
  HAL_IncTick();
  /* USER CODE BEGIN SysTick_IRQn 1 */
  rtc_num++;
  if(rtc_num>=800)
  {
    rtc_num = 0;
    get_rtc_flag = 1;
  }
  /* USER CODE END SysTick_IRQn 1 */
}

到了这里,关于4 -【第十二届】蓝桥杯物联网试题 (省赛题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【蓝桥杯嵌入式】蓝桥杯嵌入式第十二届省赛题,考点:模拟电压,串口通信,计时器

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

    2023年04月09日
    浏览(42)
  • 试题 历届真题 砝码称重【第十二届】【省赛】【B组】

    砝码称重 问题描述 你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1,W2,⋅⋅⋅,WN。 请你计算一共可以称出多少种不同的正整数重量? 注意砝码可以放在天平两边。 输入格式 输入的第一行包含一个整数 N。 第二行包含 N 个整数:W1,W2,W3,⋅⋅⋅,WN。 输出格式 输出一个整数

    2023年04月08日
    浏览(28)
  • 第十二届蓝桥杯单片机省赛

    直接复制粘贴然后运行 然后打开stc烧录到开发板上面就能用 程序哪里不懂的话问我,我闲的蛋疼! #include STC15F2K60S2.H #include intrins.h unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff,0xc6,0x8c,0x88}; unsigned char yi,er,san,si,wu,liu,qi,ba; l

    2023年04月09日
    浏览(33)
  • 【蓝桥杯单片机】第十二届省赛(含题目和解答代码)

    main.c  iic.c iic.h onewire.c onewire.h      

    2024年02月04日
    浏览(35)
  • 第十二届蓝桥杯国赛试题及解析

    第一题 *选择题严禁使用程序验证设s =HiLanQiao\\\',运行以下哪个选项代码可以输出“LanQiao”子串( A )。 A、print(s[-7:]) B、print(s/-6:-11) C、print(s1-7:01) D、print(s[-7:-1]) 第二题 *选择题严禁使用程序验证已知a=2021.0529,运行以下哪个选项代码可以输出“2021.05” ( B )A、print( .2f1\\\'.format(a

    2024年02月08日
    浏览(30)
  • 【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题,真题分析与代码讲解

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

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

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

    2023年04月17日
    浏览(57)
  • 2021 第十二届蓝桥杯大赛软件赛省赛,C/C++ 大学B组题解

    序 比赛时长: 四个小时 比赛规则: 蓝桥杯比赛跟天梯赛、ACM还不太一样,比赛中提交的答案并没有反馈机制,也就是说你提交了答案以后,自己并不知道是对是错,就像考试一样,只有交了卷,成绩下来以后才能知道自己的奖项。 满分150 T1-T5答案提交共45分,分值分别是

    2023年04月09日
    浏览(24)
  • 【蓝桥杯嵌入式】第十二届蓝桥杯嵌入式国赛程序设计试题以及详细题解

      本套试题较为常规,试题主要需要使用的模块有:LCD、LED、按键、定时器输入捕获功能、采集光照传感器的值以及串口,其中最重要的是 串口收发数据 以及 定时器的输入捕获功能 ,其余的各个部分还算比较常规、比较简单。下面咱就一起来看看这届赛题的题解吧!🤤🤤

    2024年02月06日
    浏览(35)
  • 第十二届蓝桥杯嵌入式省赛第一场真题(基于HAL库的巨简代码+超级详解)

    相关说明: 开发板:CT117E-M4(STM32G431RBT6) 开发环境: CubeMX+Keil5 涉及题目:第十二届蓝桥杯嵌入式省赛第一场真题 技巧:字符串比较 、字符串数组转移提取、for和return搭配使用、goto语句、利用%c和%s打印 CubeMX配置、主要函数代码及说明: 1.使能外部高速时钟: 2.配置时钟树:

    2023年04月11日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包