首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
杯物专题
蓝桥杯物联网竞赛 比赛总结
CUBEMX配置建议: 对于CUBEMX配置来说stm32l071kbu6的引脚不算太多,功能模块相对的也不多,所以我建议直接熟练到能将所有模块烂熟于心,不用看原理图就能熟练配置下来,因为国赛看原理图去配置太花费时间 我建议学习的时候先将原理图看懂,哪个模块干嘛的什么原理搞懂,到后面做题就用简便方式配置 物联网竞赛板CubMx全部功能简洁配置汇总 代码书写建议: 代码书写我目前认为最高效的
阅读更多...
蓝桥杯物联网竞赛_STM32L071_20_用printf将数据显示在OLED上
需求: 第十五届国赛确实有点变态,显示部分大概有6个所以需要大量将sprintf与OLED_ShowString配合使用才能显示相应格式的数据,所以我在想能不能简化一下这一部分直接用写好的printf语句将数据显示到显示屏上呢? 代码: #include <stdarg.h>void myprintf(unsigned char address, const char* format, .
阅读更多...
第十五届蓝桥杯物联网试题(国赛)
好,很好,国赛直接来个阅读理解,我猛做4个小时40分钟,cpu都干冒烟了,也算是勉强做完吧,做的很仓促,没多检查就交了,方波不会,A板有个指示灯没做,其他应该都还凑活,最后也是拿了个国三吧,拿十天时间准备看来还是太理想了,代码量挺多的估计500行+吧,真是5个小时硬写估计刚刚好,尽力而为了吧,再多查原因就是菜,明后两天再把这个重写一遍有始有终,把所有资源上传了,助力诸君绵薄之力,那么
阅读更多...
蓝桥杯物联网竞赛_STM32L071_19_输出方波信号(PWM)
国赛考了一个方波,第一次考这个,连个示波器都没有 CUBMX配置: 按上述配置刚好是32MHZ / 32 / 100 = 1KHZ 理论: 频率:就是一秒钟能产生多少个脉冲,如下图: 这算是一个脉冲,1KHZ说明一秒钟产生1000个这样的脉冲,频率越大,单位时间产生的脉冲越多,等效成的模拟信号量自然就越平稳,例如2HZ也就是一秒俩脉冲,前0.5秒憋出一个脉冲自然就不流畅 占
阅读更多...
蓝桥杯物联网竞赛_STM32L071KBU6_对于EEPROM的新理解
EEPROM写函数: void Function_GetEepromData(){Function_EepromRead(4, BUFF);OLED_ShowChar(0, 0, BUFF[0] + '0');OLED_ShowChar(0, 2, BUFF[1] + '0'); BUFF[0] ++;BUFF[1] ++;HAL_FLASHEx_DATAEEPROM_Unlock();HAL_
阅读更多...
第十二届蓝桥杯物联网试题(国赛)
不得不说国赛相比较省赛而言确实,功能变得更加复杂,更加繁琐,特别是串口+LORA通信相结合的更加频繁,且对收取的字符处理要求要更加复杂,处理判别起来会更加复杂。 对于收发数据本身来说,收发的数据本身是以字符串的形式,如果收取到字符串后仅仅用来显示,那就直接取显示部分的字符串即可但是偏偏还要判别字符串是否合法,符合某个数字区间,这就比较麻烦了 不得不说国赛确实时间要比省赛更加紧迫,真
阅读更多...
蓝桥杯物联网竞赛_STM32L071KBU6_字符串处理
前言: 个人感觉国赛相较于省赛难度上升的点在于对于接收的字符串的处理,例如串口发送的字符串一般包含字母字符串 + 数字字符串,亦或者更复杂,对于LORA也是如此,传递的字符串如#9#1亦或者#1a#90,#1#12,如何将字符串中的数字信息快速高效的处理好,并赋值给我们需要的变量是及其重要的,国赛的功能更复杂时间更紧迫,那么高效处理这些复杂字符串是及其重要的 C字符串处理函数: 我认为最好的
阅读更多...
蓝桥杯物联网竞赛_STM32L071KBU6_关于TIM的新理解
最近在复习kbu6的模块,其中关于定时器的记忆比较模糊,再来强化强化 仔细看了看相关HAL库代码果然有一些额外的收获 对定时器tim7: 这个定时器还是比较准的,其调用方法如下: HAL_TIM_Base_Start_IT(&htim7); 从上述代码中不难发现其特点即: 基本中断定时器 其回调函数: void HAL_TIM_PeriodElapsedCallback(TIM
阅读更多...
蓝桥杯物联网竞赛_STM32L071KBU6_手动配置代码分析
大概还有八天国赛,好久没练了,手动配置的代码又有些生疏了,再来回顾回顾 void OLED_Write(unsigned char type, unsigned char data){ // 主要是给显示屏写指令 unsigned char WriteData[2];WriteData[0] = type;WriteData[1] = data;HAL_I2C_Master_Transmit(
阅读更多...
蓝桥杯物联网竞赛_STM32L071KBU6_关于sizo of函数产生的BUG
首先现象是我在用LORA发送信息的时候,左边显示长度是8而右边接收到的数据长度却是4 我以为是OLED显示屏坏了,又或者是我想搞创新用了const char* 类型强制转换数据的原因,结果发现都不是 void Function_SendMsg( unsigned char* data){unsigned char len = sizeof(data);sprintf((char* )ARRAY
阅读更多...
蓝桥杯物联网竞赛_STM32L071_16_EEPROM
仍然是没有考过的知识点 朴素的讲就是板子中一块不会因为断电重启而导致数值初始化的一片地址 要注意的是有时候容易把板子什么写错导致板子什么地址写坏了导致程序无法烧录,这个时候记得一直按flash键烧录,烧录时会报错,点击确定,松开flash键立即烧录即可烧录进去 一个字是4字节,一个字节8位, 一个字32位 代码: uint32_t VALUE = 0;void Function_E
阅读更多...
第十一届蓝桥杯物联网试题(省赛)
对于通信方面,还是终端A、B都保持接收状态,当要发送的数组不为空再发送数据,发送完后立即清除,接收数据的数组不为空则处理,处理完后立即清除,分工明确 继电器不亮一般可能是电压不够 将数据加空格再加\r\n则串口接收数据会换行且不会乱码 写的话还是一个模块一个模块的构建,检查无误后再放入体系中,当模块与体系中其他模块配合不合理的时候,就只能根据经验和现象多去尝试找到问题的原因,并试
阅读更多...
蓝桥杯物联网遇见的重大BUG及其产生原因和解决方法
BUG列表 1、ADC的RP2显示一直为0:2、LORX_Tx发送数据乱码:3、strcmp比较char a[2] = {'1', '2'}与“12”字符串是否相等板子会死机:4、LORA_Tx和LORA_Rx放一起会接收不到数据:5、RTC获取到静止时间:6、ADC获取RP1和RP2模拟量同步:7、调用串口中断回调函数板子卡机:8、串口中断中断回调函数和主函数中的OLED_Show函数无法
阅读更多...
第十二届蓝桥杯物联网试题(省赛)
思路: 这个考了一个RTC的配置,RTC我只配过一次,所以有些生疏,还是不能大意,一些偏僻的考点还是要多练,在获取RTC时间的时候也遇到一些bug,这个后续会用一篇博客将最近遇到的BUG都总结一下 主要的难点还是通信协议问题因为B板在收到串口的通信的时候要立即给A板发指令,A板还要将信息传递给B板,B板子还要接收消息,然后用串口发送给用户,这个通信之间要处理适当,不要产生通信干扰
阅读更多...
蓝桥杯物联网Lora通信功能总结
1、LORA通信在函数LORA被初始化的时候就已经处于接收状态 即开机即能接收数据 2、LORA数据的接收以及发送都通过FIFO数据线 3、LORA的收发同时进行会产生FIFO数据线的通信干扰 4、LORA_Rx在FIFO中有数据的时候才会取出数据,FIFO没有数据会直接跳过 当LORA在发送数据的时候此时正往FIFO数据线中写入数据,此时另一台主机正向本主机发送信息,此时可以想到F
阅读更多...
蓝桥杯物联网竞赛_STM32L071_12_按键中断与串口中断
按键中断: 将按键配置成GPIO_EXTI中断即外部中断 模式有三种上升沿,下降沿,上升沿和下降沿都会中断 external -> 外部的 interrupt -> 打断 trigger -> 触发 detection -> 探测 NVIC中将中断线ENABLE 找接口函数 在接口函数中写入中断后的操作,如果事件发生,程序会直接进入中断函数 串口中断: 在NVI
阅读更多...
蓝桥杯物联网竞赛_STM32L071_11_知识体系的查漏与补缺
太久没学单片机了,再重新过一遍查漏补缺,对其中之前没怎么在意的,而现在又发觉的问题进行再分析与补充 1. debug serial wire是干什么用的 这个东西我勾选不勾选都对我的程序没有什么影响,我很好奇是干什么用的,网上查的是仿真调试用的,估计是keil5调试单片机程序的时候用的吧,如果勾选则将其指定的引脚指定为调试引脚,当作其他复用功能无效。当然上面是我在网上查的,我调试一般用ole
阅读更多...
2020太湖杯物联网安全大赛easy-app的wp
打开apk发现有native库,直接把so拖入ida,分析主程序如下: 首先输入的字符串判断是否是flag{xxxx}的形式,而且总长度是否为38,不是则报错退出 然后中间32字节经过check1函数处理,进行0-15位和16-31的高位互换, 然后再经过一个标准TEA加密 这里的key是假的: 调试的时候才发现实际是这样的: 原来是JNI_Onload的时候才修改掉。 然后就是ba
阅读更多...
蓝桥杯物联网竞赛_STM32L071_9_按键矩阵扩展模块
原理图: 矩阵按键原理图: 实验板接口原理图: 得到对应图: 扫描按键原理: 按键的COLUMN1、2、3分别制0,每次只允许其中一个为0其他都是1(POW1和POW2正常状况为上拉),当有一个按键按下POW1和POW2必有一个被制0,这样就是能找到按键的标号 所以很明确COLUMN1、2、3应该制为输出电平,而POW1和POW2应该制输入电平用来读取按键被按下而传入的低电平
阅读更多...
蓝桥杯物联网竞赛_STM32L071KBU6_全部工程及源码
包含stm32L071kbu6全部实验工程、源码、原理图、官方提供参考代码及原理图 链接:https://pan.baidu.com/s/1xm8mLotLBvOULQlg76ca7g?pwd=p0mx 提取码:p0mx
阅读更多...
蓝桥杯物联网竞赛_STM32L071_7_LORA发送接收
理论: LoRa(长距离低功耗无线射频)是利用无线电频谱中的电磁波进行通信的一种技术。它使用无线电频段中的射频信号来传输数据。电磁波是一种波动形式的能量,具有特定的频率和波长,可以传播在真空和大多数介质中,包括空气、水和固体物质等。LoRa技术利用电磁波在射频范围内进行通信,使得设备可以进行远距离的低功耗数据传输。 其中PA4是控制数据的传输开始与结束的引脚,低电平有效 LORA发送
阅读更多...
蓝桥杯物联网竞赛_STM32L071_5_串口接收发送数据
理论: 串口采取异步通信,即不依赖时钟节拍来接收或发送数据,而是采用互相约定的波特率传输数据。 波特率与单位时间传输的比特数有关,波特率越大传输的数据越多 传输一个比特花费的时间T = 1 / 比特率 接受和发送数据的时候需要接受端和发送端: UART传输数据是一位一位的向接收端传输,为了知道何时传输,又或者为了保证传输数据的完整正确性,规定了传输协议: 分别为开始、数据、校验、停止,
阅读更多...
蓝桥杯物联网竞赛_STM32L071_2_继电器控制
Stm32l071原理图: PA11与PA12连接着UNL2803 ULN2803是一种集成电路芯片,通常被用作高电压和高电流负载的驱动器。 ULN2803是一个达林顿阵列,当输入引脚(IN1至IN8)被连接到正电源时,相应的输出引脚(OUT1至OUT8)将会断开或保持在高阻抗状态。这意味着输出引脚不会提供任何电流或电压输出。 当输入引脚被连接到正电源时,通常用于让外部组件(如微控制器或其
阅读更多...
蓝桥杯物联网_STM32L071_2_继电器控制
CubeMX配置: Function.c及Function.h: #include "Function.h"#include "gpio.h"void Function_LD5_ON(void){HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET);}void Function_LD5_OFF(void){HAL_GPIO
阅读更多...
蓝桥杯物联网_STM32L071_1_CubMxkeil5基础配置
CubMx配置: project工程中添加.h和.c文件: keil5配置: 运行: 代码提示与解决中文乱码:
阅读更多...
STM32CubeMx学习之——基于蓝桥杯物联网开发板实现AD转换和串口通信小例程
STM32CubeMx学习之——基于蓝桥杯物联网开发板实现AD转换和串口通信小例程 本文介绍利用开发板上的AD采集扩展板,采集电压,然后上位机向开发板发送字符“S”,则开发板开启AD转换,并且向上位机发送AD采集的数据,上位机发送字符“E”,则结束AD转换。其中当开始AD采集时,开发板向上位机发送数据的格式为“ADC_Value: XXXX, ADC_Volt: X.XX”。 “ADC_Valu
阅读更多...