2024年(第15届)蓝桥杯物联网省赛

                                   #记录第四次蓝桥杯#

一、题目介绍

二、题目分析

2.1外设分析

        通过对题目解读,一共会用到如下外设和资源:GPIO、OLED、LED、Lora模块、矩阵按键、电位器、继电器等。

        软件层面需要使用到:定时器、中断、ADC

        通信协议:IIC(OLED控制)、SPI(Lora通信)

2.2思路

        我个人看到题目之后,是先从NODE.B开始编写的,除了Lora通信控制的部分,我是先写完NODE.B,再去写NODE.A的。先完成两个模块的一些基本功能(比如OLED显示、继电器控制、AD采集、按键等),最后再实现两边的通信。

三、CUBEMX配置

3.1控制器(NODE.A)

3.1.1引脚图

3.1.2时钟树

3.1.3定时器配置

3.1.4IIC配置

3.1.5 SPI配置

3.1.6 中断配置

定时器和外部中断设置好后,一定要记得使能(enable)

3.1.7GPIO配置

3.2采集器(NODE.B)

3.1.1引脚图

3.1.2ADC设置

ADC使用的是通道8和通道9

其余的配置同NODE.A一致,除了GPIO由于多了几个引脚可能配置不一样。

CUBEMX可能有些地方配置有些多余,这里仅供参考。

四、部分代码

这里只展示主函数部分,详细请看压缩包

4.1NODE.A

/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "i2c.h"
#include "spi.h"
#include "tim.h"
#include "gpio.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "stdio.h"
#include "lora.h"
#include "oled.h"
/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
void key_check(void);
void lora_proc(void);
void oled_proc(void);
uint16_t Scan_Col1(void);
uint16_t Scan_Col2(void);
/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */

/* USER CODE END PD */

/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */
struct key{
	uint8_t B1;
	uint8_t B2;
	uint8_t B4;
	uint8_t B5;
}key1;
struct show{
	float CV;
	float PV;
	uint8_t K1;
	uint8_t K2;
	u
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值