登录社区云,与社区用户共同成长
邀请您加入社区
本文介绍了STM32嵌入式系统中LED任务调度的实现方法。主要内容包括:1)通过STM32CubeMX配置GPIO引脚;2)编写LED控制函数,包括LED显示更新和状态切换;3)实现LED点灯和闪烁功能,使用系统计时器实现精确时间控制;4)提供完整代码下载链接。文章重点讲解了LED驱动原理和任务调度实现,包含寄存器操作、状态保存和定时控制等关键技术点,适用于蓝桥杯嵌入式竞赛的LED控制任务开发。
本文介绍了基于蓝桥杯嵌入式组国信长天板子的频率捕获与PWM输出实现方法。在捕获模式中,详细说明了两种配置方式:一种是直接/间接捕获模式,通过PB4和PA15引脚捕获旋钮频率;另一种是中断捕获模式,需开启NVIC。同时提供了PWM输出配置方法,使用PA7引脚输出1kHz、50%占空比的PWM波,并给出了频率和占空比修改函数。文中包含完整的驱动代码实现,包括捕获值计算、LCD显示以及按键控制PWM参数
本文介绍了一种高效接收不定长串口数据的DMA+IDLE方案。通过DMA自动搬运数据到内存,配合IDLE空闲中断自动识别帧结束,实现零CPU干预的数据接收。文章详细讲解了原理、CubeMX配置步骤和代码实现,包括回调函数编写和错误处理优化。该方案解决了传统字节中断接收的资源浪费和丢包问题,特别适合嵌入式系统中大数据量的串口通信场景,具有自动断句、高可靠性和低CPU占用的优势。
class Solution {public:int totalMoney(int n) {auto sum = [](int a0, int n, int d) -> int {return a0*n+(n*(n-1)*d)/2; };int week = n / 7;int money = 0;money += sum(28, week, 7);int day = n % 7;...
有一系列的任务被指派到各个计算机上,第 i 个任务在 ai 时刻分配,指定计算机编号为 bi,耗时为 ci 且算力消耗为 di。对于每次任务分配,如果计算机剩余的运算能力不足则输出 −1,并取消这次分配,否则输出分配完这个任务后这台计算机的剩余运算能力。如果此任务成功分配,将立刻开始运行,期间持续占用 bi 号计算机 di 的算力,持续 ci 秒。就是动态维护a的排序,所以想到堆。然后发现我不会优
有 n 台计算机,第 i 台计算机的运算能力为 vi。有一系列的任务被指派到各个计算机上,第 i 个任务在 ai 时刻分配,指定计算机编号为 bi,耗时为 ci 且算力消耗为 di。如果此任务成功分配,将立刻开始运行,期间持续占用 bi 号计算机 di 的算力,持续 ci 秒。对于每次任务分配,如果计算机剩余的运算能力不足则输出 −1,并取消这次分配,否则输出分配完这个任务后这台计算机的剩余运算能
摘要:本文总结了STM32工程开发中的7个关键实践:1)按模块化分层组织代码;2)main函数专注初始化和调度;3)中断与主循环分工明确;4)合理使用volatile关键字;5)状态机实现逻辑控制;6)通过接口设计降低耦合;7)分层定位调试问题。这些方法体现了嵌入式开发的工程思维,包括模块化设计、实时性处理、调试技巧等核心能力,有助于构建可维护、可靠的嵌入式系统。(149字)
这周可以说是试错周了,每天的算法类型都是不重样的,但是好多题目都是AI思考,被AI带偏了,现在改变思路,先自己做一遍,把思路写下来,不会再找AI,然后再重新自己写一遍,总结题型、核心思路、易错点。我要开始定新目标,因为上学期一直在学Java、准备比赛,寒假去学习网安了,没有时间刷算法,开学一周重新拾回算法,打算挑战365天。,坚持每天吃透2~3题,我会每周做一次总结。
用于通过UART(通用异步收发器)接口向上位机发送数据,其中包括四个参数;*UART_HandleTypeDef*huart *:UART接口配置信息;*uint8_tpData:指向包含要传输数据的数据缓冲区的指针;:要传输的字节数;:以毫秒为单位的超时值,如果传输操作超过此时间函数将返回错误。用于在中断模式下接受一定量的数据,Size:要接收的数据元素(u8或u16)数量,每次中断只能接收一个
嵌入式系统开发是软硬协同的工程实践,其核心在于基于微控制器(MCU)实现外设驱动、实时控制与资源优化。STM32作为主流ARM Cortex-M系列开发平台,广泛应用于教学、竞赛与工业场景,其中STM32G4系列凭借Cortex-M4F内核、硬件浮点单元(FPU)、高精度ADC及CORDIC加速器,显著提升了复杂算法(如PID控制、传感器数据融合)的执行效率与系统可靠性。在蓝桥杯嵌入式设计与开发竞
本文介绍了基于STM32的嵌入式开发代码实现,主要包括:1) 按键长短按检测,通过定时器计数判断按键状态;2) LCD显示控制,实现文本和计数的高亮显示;3) 输入捕获测频率,使用TIM17捕获外部信号频率;4) EEPROM的I2C写入操作,需注意写入延时;5) 开发中的关键问题解析,包括回调函数、NVIC使能、ADC测量、串口通信和LCD/LED引脚冲突解决方法。代码参考B站教程并进行了个人修
本文介绍了基于STM32CubMX配置和代码实现的蓝桥杯嵌入式LCD项目ADC采集功能。主要内容包括:1)使用STM32CubMX配置双ADC通道(R37和R38);2)在main.c中添加ADC校准和DMA启动代码;3)在task.c中实现ADC数据处理和LCD显示功能;4)提供单ADC采集的简化实现方案。文章详细说明了代码修改位置,并附有完整项目代码下载链接。该方案实现了双通道ADC数据采集、
首先是考试所需要的时间,省赛与决赛的时长都是五个小时;此外,个人赛,省赛,决赛君采用封闭,限时的方式进行。竞赛试题的组成:客观题(15%)和基于同一硬件平台的程序设计与调试(85%)。(PS:客观题可以不用全得分,尽量把自己和会的写完。程序设计与调试才是重点)2.模块化编程对嵌入式开发的意义:可移植性较好,可读性较好。(如果某两个人运行结果效果大致一样,则会看程序的编辑。模块化的方式能更加让思路清
本文提供了蓝桥杯嵌入式赛道的知识点大纲截图,包含三张详细的考试内容图示。读者可直接访问官方网址https://dasai.lanqiao.cn/notices/846自行查询完整信息。这些截图系统性地展示了嵌入式开发相关的考核知识点分布,为参赛者提供了明确的备考方向。通过大纲图示,考生可以快速把握比赛重点考查内容,包括嵌入式系统基础、硬件设计、软件开发等多个维度的知识要求。
蓝桥杯嵌入式开发要点摘要:1.LCD控制可直接移植官方提供的HAL库文件;2.LED控制通过位操作实现单独控制(|和&)和闪烁(^),需注意状态保存;3.按键需配置CubeMX并实现单击/长按检测;4.PWM输出需配置CubeMX和软件函数;5.频率测量包含硬件配置和软件算法;6.电压采集通过ADC模块实现;7.I2C通信使用软件模拟,只需配置GPIO;8.串口通信需配置接收中断回调函数。
本文围绕归并排序的“合并阶段”展开,指出其真正价值不仅在于排序,更在于借助左右区间的有序性,对跨区间关系进行成批统计,从而将原本 (O(N^2)) 的暴力枚举优化为 (O(N \log N))。文章首先介绍归并排序的基本分治流程;随后以逆序对为例,说明如何在升序归并中一次性统计左区间剩余元素;再结合“右侧小于当前元素的个数”问题,讲解通过 index 数组绑定原始下标、在降序归并中为每个元素单独记
本文探讨了优化快速排序算法的关键技术:三指针划分与随机化基准选择。针对传统快排处理重复元素或有序数组时效率低下的问题,提出将数组划分为"小于"、"等于"、"大于"三块,并通过随机选择基准来避免最坏情况。文章以LeetCode题目为例,详细解析了三指针算法(荷兰国旗问题)的实现原理,并给出了万能快排模板代码。此外,还介绍了快速选择算法在O(N)时间复杂度内解决第K大元素问题的应用,通过数学归纳证明了
本文详细介绍了多项式快速插值算法。给定n个点(xi,yi),该算法通过拉格朗日插值公式在O(n log²n)时间内构造n-1次多项式f(x)。核心步骤包括:1)分治构建多项式乘积M(x)=∏(x-xi);2)求导后多点求值计算M'(xi);3)计算权重wi=yi/M'(xi);4)分治合并得到最终多项式。文中详细讲解了NTT、多项式求逆、取模等关键技术,并提供了优化后的代码实现,适用于模数9982
小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放34和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔无
本文探讨了四种高级贪心算法策略,通过降维、反向排除和错位插空等技巧解决复杂问题。首先在俄罗斯套娃信封问题中,通过巧妙排序将二维问题降为一维LIS问题;其次在可被三整除的最大和问题中,采用反向排除法根据余数选择最优解;最后在条形码和字符串重构问题中,利用错位插空法确保相邻元素不同。这些策略展示了贪心算法在复杂场景下的灵活运用,能有效提升解题效率。
本文主要讲解了定时器的原理及实现方法。作者首先介绍了定时器的工作原理,包括GATE、TR0等控制位的设置,以及12分频时钟源的配置。接着详细说明了16位自动重装载计数器的运作机制,TH0和TL0寄存器的作用。在实操部分,作者演示了如何使用STC-ISP软件生成定时器初始化代码,并搭建了基于定时器1的中断框架。最后给出了完整的main.c文件代码,实现了一个1秒LED闪烁功能。该程序通过定时器中断累
对于一个长度为 K 的整数数列:A1,A2,…,AK,我们称之为接龙数列当且仅当 Ai 的首位数字恰好等于 Ai−1 的末位数字(2≤i≤K)。例如 12,23,35,56,61,11 是接龙数列;12,23,34,56 不是接龙数列,因为 56 的首位数字不等于 34 的末位数字。所有长度为 1 的整数数列都是接龙数列。现在给定一个长度为 N 的数列 A1,A2,…,AN,请你计
当1014<=i<=2025时,均有Ai<=i,即可得每一项固定Ai=i(例:1013<A1014<=1014,所以A1014=1014,而每一项不重复,则1014<A1015<=1015,所以A1015=1015,以此类推……Ai * Aj=Ai * j<=i * j+2025 即Ai<=floor(i+2025/j),Ai<=i+1。当1<=i<=1013时,均有Ai<=1013,即前1013
上一篇我们分别对“批量规划”和“实时规划”作了详细介绍;OptaPlanner的这两种开箱即用的特性在具体的工程实践中极为实用。批量规划可方便巧妙地解决多数据集同时规划,可有效提高算力资源应用效率。此外,在规划服务设计方面,基于批量规划功能,可设计更为简洁可靠且高效的的异步服务方案。引擎在执行多个数据集并行运算时,可根据引擎配置来安排有多少个CPU核心参与规划运算过程,也可使用引擎默认的CPU调度
蓝桥杯第三级别——算法。蓝桥杯的考察重点:加黑重点 (括号内了解)算法:枚举、排序、搜索、计数、贪心、动态规划、图论、数论、博弈论、概率论、计算几何、字符串算法。(递归、二分查找、哈希算法、分治算法、回溯算法)数据结构:数组、对象/结构、字符串、队列、栈、树、图、堆、平衡树/线段树、复杂数据结构、嵌套数据结构。(链表、散列表、二叉树、跳表、Trie树)
python蓝桥杯turtle画图第二集
本题主要考察css3的布局思路,先读懂题目,就能迅速把题做出来,要注意的是nth-child()里面的公式,考试的时候如果发现不行,不妨换个顺序试试,蓝桥杯考试题目要么0分要么满分,注意细节才能决定成败,博主以后也会分享其他题目的细节问题,祝大家都在明年的比赛中取得良好的名次!
1、在gpu编写opencl代码#include <iostream>#include <stdlib.h>#include <string.h>#include <stdio.h>#if defined(__APPLE__) || defined(__MACOSX)#include <OpenCL/cl.hpp>#else#includ
示例1. WordCountpublic class WordCount {public static void main(String[] args) throws Exception {// link运行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();//调用Sour
标题蓝桥杯算法学习路线标题数据结构线性表顺序表数组字符串KMP字典树AC自动机BM后缀树组链表单向链表双向链表跳舞链跳跃表栈单调栈队列循环队列双向队列单调队列散列表哈希表计数哈希函数滚动哈希树二叉树二叉搜索树平衡二叉树AVL树线段树红黑树伸展树可持久化线段树主席树(Treap)霍夫曼树堆非二叉树
接收用户输入的身高和体重,将判断结果输出过轻:低于18.5正常:18.5 ~ 22.9偏胖:23 ~ 24.9肥胖:25 ~ 29.9重度肥胖:高于30极度肥胖:高于40import java.util.*;public class BMI指数测试 {public static void main(String[] args) {// TODO 自动生成的方法存根Scanner in=new Sc
问题:有1元,5元,10元,50元,100元,500元的硬币各C1,C5,C10,C100,C500个,用这些硬币支付A远,最少需要多少硬币?1.0<=C<=10e10;2.0<=A<=10e9;贪心算法,如其名字,对于每次的硬币选择我均要求最好,即遵循最优策略。此题的最优策略便是“优先选取面值大的硬币使用”。下面我们思考代码所需部分:1)变量:存储硬币面值(coin[6]
【蓝桥杯】神盾神与砝码称重——DFS(深度优先算法)一、递归参数:指向针,标记当前位置、累加器:存储当前重量二、递归出口:①当现在加的砝码,和物体的重量相等的时候,可以称出重量,递归结束;②如果当现在加的砝码个数已经达到上限了(没有砝码可以用了),称不出来,单次子递归调用结束三、递归规律:每一层调用递归的时候,都比上一层多使用了一个砝码,而这个砝码可以选择不加,直接扔掉,或者可以加在物品一端,或者
注意事项:1.多组测试时,一定要考虑需不需要清空数据一般是能覆盖的话(没覆盖的部分不用就行了)不清空或者还能用就不清空(权衡时间复杂度,清空是用时间换空间)2.int类型的无穷大可以搞为 int inf = 0x3f3f3f3f。
读 PCF8591 其他通道:直接改AD_Read()的参数为0x400x410x42(对应 AIN0~AIN2)。读其他 I²C 外设:先改底层的 I²C 设备地址(0x90→对应外设地址),再改AD_Read()的参数为该外设的控制字节。核心原则:不同外设的 “I²C 地址” 和 “控制字节规则” 不同,必须对照外设手册改这两个关键值。
问题描述用递归方法实现一个整数的倒置输出,如输入整数:123,输出为:321。代码实现#include<stdio.h>int Swap(int x){if (0<x&&x<10) printf("%d",x);else{printf("%d", x%10);return Swap(x / 10);}}int main(){int x;scanf("%d",
主、副节点中都各自维护着一个队列,当往分布式队列中添加元素时都是由主节点完成的(每次都会添加元素到队列尾部);可以认为主/副节点中的队列是一个长度无限的一维数组,下标为。由于副本的同步速度各异,因此为了保障数据的一致性,元素添加到主节点后,需要同步到所有的副节点后,才具有可见性。给出一个分布式队列的运行状态,所有的操作都按输入顺序执行。由于同步元素是同步主队列的下一个元素,因此我们不需要关心具体的
算法详述枚举:即对可能的解集合一一列举。枚举算法的实现往往通过使用循环(嵌套)就能够轻易实现,所以并没有什么思维难度。解题思路:1. 对解的每个参数的数据范围采用循环语句一一枚举,对每次枚举采用if语句判断是否是解以及是否是最优解。枚举小技巧:1. 有时候,我们枚举的东西如果满足一个公式,我们的循环可以少写一层,优化效率。比如如果枚举A+B+C=100,我们只需要枚举A和B,C可以直接用100-A
编程和算法能力是当代工程师的核心竞争力之一。想要快速提升自己的编程和算法能力,却苦于没有合适的方法?别担心,今天我将与你分享6个高效编程习惯,让你轻松提升编程和算法能力!大家好,我是Erik,一名211大三的计算机学生,曾经获得过一些不错的奖项(具体可以看我主页),希望带更多的同学一起学习ACM/算法/蓝桥杯,快快关注,我将持续分享更多的计算机干货知识!在学习和实践过程中,及时总结自己的经验和教训
今天我们来学习一下一个经典Dp问题----背包问题,这里将详细介绍背包问题的二维解法和一维解法。码字不易,请多多支持。
在编程的世界里,每一次竞赛都是一次挑战与成长的机遇。今天,让我们一同回顾去年蓝桥杯 Web 应用组的精彩真题,并为您揭晓详细的答案。答案链接地址:https://www.bilibili.com/read/cv24199862/题目链接地址:http://t.csdnimg.cn/gJbzN。07 ISBN 转换与⽣成(20 分)03 收集帛书碎⽚(10 分)01 电影院排座位(5 分)02 图⽚
#include "stm32f10x.h"#include "Delay.h"#include "stm32f10x_tim.h"//#include "Encoder.h"//#include "OLED.h"static u16 i=0;u8 Flag=1;void TIMCH_UserConfig(u16 Period,u16 Prescaler ){GPIO_InitTypeDef GP
方法:使用requests库发送HTTP请求,lxml库解析网页内容,正则表达式提取小说内容,pymysql库存储数据到MySQL数据库,ThreadPoolExecutor实现多线程爬取。方法:使用requests库发送HTTP请求,BeautifulSoup库解析网页内容,csv库保存数据到CSV文件。方法:使用requests库发送HTTP请求,正则表达式解析网页内容,txt文件保存数据。方
主串的第四个字符'b'与模式串的第四个字符'a'发生了不匹配,根据next[]数组的值,模式串会返回到第三个字符'a'的位置,a仍然等于a,也就是发生了我们刚才提到的。后的学习笔记,如果你只是应付考试只需观看前者的视频,如果你想详细了解代码过程不妨看看第二个链接里UP的视频和我的博客。中,由于BF算法里,当发生不匹配时主串需要返回到 i-j+2的位置,而模式串则需要返回到1的位置,所以整个算法的时
most_common(x):返回出现频率最高的 x 个元素及其出现次数,以元组列表的形式返回。使用dict时,当访问一个不存在的key,就会抛出KeyError。如果希望这个key不存在时,会使用提供的默认工厂函数创建一个默认值。在字典中获益key有两种方式,第一种是get,第二种通过[]获取。2.repeat:表示这些可迭代序列重复的次数。elements():返回一个迭代器,每个元素重复对应
c++
哈希算法(Hash),简单来说就是一个“数据粉碎机”。你给它输入任意内容(文字、文件、密码等),它会吐出一串固定长度的乱码(叫“哈希值”)。
蓝桥杯
——蓝桥杯
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net