欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 【蓝桥杯嵌入式——学习笔记一】2016年第七届省赛真题重难点解析记录,闭坑指南(文末附完整代码)

【蓝桥杯嵌入式——学习笔记一】2016年第七届省赛真题重难点解析记录,闭坑指南(文末附完整代码)

2025/4/5 6:19:31 来源:https://blog.csdn.net/2201_75797484/article/details/146988848  浏览:    关键词:【蓝桥杯嵌入式——学习笔记一】2016年第七届省赛真题重难点解析记录,闭坑指南(文末附完整代码)

在读题过程中发现本次使用的是串口2,需要配置串口2。

 但在查看产品手册时发现PA14同时也是SWCLK。

所以在使用串口2时需要拔下跳线帽去连接CH340。

可能是用到串口2的缘故,在烧录时发现报了一个错误。这时我们要想烧录得按着复位键去点击烧录,点完后就松开复位键就可以烧录成功。

使用串口时记得打开串口中断,否则无法接收到字符。

LED部分运行代码:

 

void ledProc(void)
{if((uwTick - uwTick_led_set_point) < 200) return;uwTick_led_set_point = uwTick;if((uwTick - uwTick_led_time_point) >= 1000){uwTick_led_time_point = uwTick;uc_led ^= 0x01;}if(change_state == 1){if(resersal_count--){uc_led ^= 0x02;}if(resersal_count == 0){change_state = 0;resersal_count = 10;uc_led = 0;}}if(change_rx_state == 1){if(resersal_rx_count--){uc_led ^= 0x04;}if(resersal_rx_count == 0){change_rx_state = 0;resersal_rx_count = 10;uc_led = 0;}}ledDisp(uc_led);
}

 LED2与LED3的状态变量,在等级发生改变和串口接收到字符时发生改变。

EEPROM部分代码:

    iic24c02Read(hold_eeprom_string, 0, 3);lecel_grade_hold_one = hold_eeprom_string[0];lecel_grade_hold_two = hold_eeprom_string[1];lecel_grade_hold_three = hold_eeprom_string[2];
            if(key_down == 1){i2c24c02Write(&lecel_grade_hold_one, 0, 1);HAL_Delay(1);i2c24c02Write(&lecel_grade_hold_two, 1, 1);HAL_Delay(1);i2c24c02Write(&lecel_grade_hold_three, 2, 1);HAL_Delay(1);LCD_Clear(Black);interface = 0;}

LCD的高亮显示部分代码:

case 1:sprintf((char *)lcd_disp_string, "   ParameterSetup   ");LCD_DisplayStringLine(Line1, lcd_disp_string);sprintf((char *)lcd_disp_string, "   Threshold1:%dcm   ", lecel_grade_hold_one);if(select_bright_hold == 1)LCD_SetTextColor(Green);LCD_DisplayStringLine(Line3, lcd_disp_string);LCD_SetTextColor(White);sprintf((char *)lcd_disp_string, "   Threshold2:%dcm   ", lecel_grade_hold_two);if(select_bright_hold == 2)LCD_SetTextColor(Green);LCD_DisplayStringLine(Line4, lcd_disp_string);LCD_SetTextColor(White);sprintf((char *)lcd_disp_string, "   Threshold3:%dcm   ", lecel_grade_hold_three);if(select_bright_hold == 3)LCD_SetTextColor(Green);LCD_DisplayStringLine(Line5, lcd_disp_string);LCD_SetTextColor(White);break;

背景高亮与文字相同。

串口发送数据到PC部分代码:

 在下一次等级变化发生前,将现在的等级存入变量中,以便下次比较。

    lecel_grade_old = lecel_grade;if(h_int <= lecel_grade_hold_one)lecel_grade = 0;else if((h_int > lecel_grade_hold_one) && (h_int <= lecel_grade_hold_two))lecel_grade = 1;else if((h_int > lecel_grade_hold_two) && (h_int <= lecel_grade_hold_three))lecel_grade = 2;elselecel_grade = 3;
    if(lecel_grade > lecel_grade_old){sprintf(str, "A:H%d+L%d+U\r\n", h_int, lecel_grade);HAL_UART_Transmit(&huart2,(unsigned char *)str, strlen(str), 50);change_state = 1;}else if(lecel_grade < lecel_grade_old){sprintf(str, "A:H%d+L%d+D\r\n", h_int, lecel_grade);HAL_UART_Transmit(&huart2,(unsigned char *)str, strlen(str), 50);change_state = 1;}

完整代码:

嵌入式系统开发-STM32液位检测报警系统设计-蓝桥杯第七届省赛真题解析与参考代码资源-CSDN文库

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词