首页 > 其他分享 >蓝桥杯嵌入式 第六届国赛 更新中……

蓝桥杯嵌入式 第六届国赛 更新中……

时间:2024-05-29 17:32:06浏览次数:22  
标签:I2CWaitAck struct void uint8 国赛 嵌入式 蓝桥 address I2CSendByte

题目

配置

注意事项

复制LCD的工程,先配置资源 --- 勾选完选项一定要再看一眼,可能选择错误

ADC:配置ADC2_IN15,对应PB15引脚

EEROM,配置PB6和PB7

按键 输入模式PB0、PB1、PB2、PA0

LED 一定要使能PD2

PWM互补输出,用TIM15

TIM6 - 10ms基准定时器


代码 - 默写大师

先默写几个函数

EEPROM读写函数

随机地址读函数 - 参考手册的时序

uint8_t EEPROM_ReadByte(uint8_t address)
{
	uint8_t data;
	I2CStart();
	I2CSendByte(0xA0);		// address + write
	I2CWaitAck();
	I2CSendByte(address);
	I2CWaitAck();
	I2CStop();
	
	I2CStart();
	I2CSendByte(0xA1);		// address + read
	I2CWaitAck();
	data = I2CReceiveByte();
	I2CSendNotAck();
	I2CStop();
	return data;
}

void EEPROM_WriteByte(uint8_t address, uint8_t data)
{
    I2CStart();
    I2CSendByte(0xA0);
    I2CWaitAck();
    I2CSendByte(address);
    I2CWaitAck();
    
    I2CSendByte(data);
    I2CWaitAck();
    I2CStop();
}

定义几个结构体

//-----------------------
void power_init(void);
void LCD_Disp(void);
void Key_Proc(void);
void ADC_Proc(void);
void PWM_Proc(void);

//-----------------------
struct Tick{
    uint32_t lcd;
    uint32_t key;
    uint32_t adc;
    uint32_t pwm;
};
extern struct Tick tick;

struct Flag{
    bool PWM_Mode;
    uint8_t LCD_View;
};
extern struct Flag flag;

struct Param{
    double ADC;
    
    uint16_t PWM_Frq;       //频率
    uint8_t  PWM_Duty_PA9;
    uint8_t  PWM_Duty_PA14;
};
extern struct Param param;
//定义变量
struct Tick tick;
struct Flag flag;
struct Param param;
struct Keys key;

LED驱动函数

void LED_Disp(uint8_t state)
{
    HAL_GPIO_WritePin(GPIOC, 0xFF00, GPIO_PIN_SET); //0ff
    HAL_GPIO_WritePin(GPIOC, state << 8, GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);
}

标签:I2CWaitAck,struct,void,uint8,国赛,嵌入式,蓝桥,address,I2CSendByte
From: https://blog.csdn.net/weixin_63135906/article/details/139300135

相关文章

  • 嵌入式硬件、软件最小设计系统都包含哪些部分
    嵌入式硬件最小设计系统的组成部分嵌入式硬件最小设计系统通常包括以下几个基本部分:嵌入式微处理器:作为系统的核心,负责执行指令和控制其他硬件部件。存储器:包括SDRAM、ROM、Flash等,用于存储操作系统、应用程序和数据。电源电路:为系统提供稳定的电力供应。时钟电路:提供系统运......
  • 嵌入式软件监控系统最小功能都包含哪些?
    嵌入式软件监控系统的最小功能嵌入式软件监控系统是一种专门为监控任务设计的计算机系统,它通常包含以下基本功能:数据采集:系统能够通过各种传感器或接口采集监控对象的数据,如温度、湿度、压力等。数据处理:采集到的数据需要经过处理才能用于分析和决策,这包括数据的过滤、转......
  • libc glossy 嵌入式底层移植
    Newlib的构成Newlib由三部分构成:libgloss、libc、libm,三者在Newlib原代码中的存储位置如下。newlib-x.y.zlibglossnewliblibclibmlibc是标准C库,libm是标准数学库,那libgloss是干啥的?C库的部分函数需要引用系统调用,裸机系统没有这些系统调用,那么就由C库中的......
  • CISCN 2024 reverse 国赛复盘
    asm_re手撕汇编,配合GPT分析,加上一点点的猜测。在汇编推出可以看到加密逻辑:value=ord(f[1])value*=0x50;value+=0x14;value^=0x4D;value+=0x1E;print(value)已经知道第一个为f,f经过加密得到0x1FD7,l可以得到0x21B7。同理,根据数据段可以还原出flag,......
  • 免费,Python蓝桥杯等级考试真题--第13级(含答案解析和代码)
    Python蓝桥杯等级考试真题–第13级一、选择题答案:C解析:正向下标由0开始,下标3代表第四个元素,故答案为C。答案:A解析:range(0,4)的取前不取后,元组的符号是小括号,故答案为A。答案:C解析:Cherry所在的位置为下标2,故答案为C。二、编程题【参考程序】a=input()b=a.split......
  • 痞子衡嵌入式:不同J-Link版本对于i.MXRT1170连接复位后处理行为有所不同
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是不同J-Link版本对于i.MXRT1170连接复位后处理行为。痞子衡之前写过一篇旧文《i.MXRT1170上用J-Link连接复位后PC总是停在0x223104的原因》,这篇文章详细解释了RT1170BootROM代码里软件实现的DebugMai......
  • 2024 蓝桥杯省赛游记
    Day-inf看了眼去年的题,一个插头dp一个杜教筛,恐怖如斯群里问了句发现hkhmtr也参加Day1完全没压力所以随便玩了。开场扫了一眼只有8道题,有个树上莫队?T1赛后看知乎好像能直接拿excel生成字符串形式的日期T2一开始没注意白棋一定有13个子,跑完了再看题才想到,提答的......
  • 嵌入式进阶——I2C总线
    ......
  • 分享几个嵌入式中常用的GUI~
    一、什么是GUI?GUI是图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。通过GUI框架,用户可直接地与设备进行交互,完成各种操作,可提高工作效率以及用户体验。接下来看一下我们开发中常用的GUI框架有哪些吧~二、开源轻......
  • 嵌入式实时操作系统笔记3:FreeRTOS移植(STM32F407)_编写简单的FreeRTOS任务例程
    上文讲到UC/OSIII系统的移植,那篇文章是失败了的,网络上的资料真是层次不清,多有遗漏步骤,导致单片机连操作系统的初始化都卡在那,这次换个赛道,学FreeRTOS吧......今日任务如标题所示:FreeRTOS移植(STM32F407)_编写简单的FreeRTOS任务例程文章提供测试代码讲解、完整工程下载、测......