VSCode中CMake Tools提示:可执行文件错误:“/snap/bin/cmake“... 由于我在Ubuntu 24.04中安装CMake时,直接使用了snap包安装(Ubuntu自带的应用中心)打开VSCode就遇到CMake Tools的错误提示,但是我在终端中使用cmake指令完全没有问题。此后即可用VSCode中插件CMake Tools提供的功能使用CMake了。错误提示原因是没有正确配置cmake可执行程序的目录。
Ubuntu中VSCode以sudo开始GDB调试C程序方法 新建终端输入命令:/home/user_name/gdbasroot/gdb没有提示输入密码即可运行。此后就可以在VSCode使用GDB调试需要sudo运行的程序了。
STM32标准库学习笔记-11.I2C通信 STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能,减轻CPU的负担支持多主机模型支持7位/10位地址模式支持不同的通讯速度,标准速度(高达100 kHz),快速(高达400 kHz)支持DMA兼容SMBus协议STM32F103C8T6 硬件I2C资源:I2C1、I2C2。
STM32标准库学习笔记-10.USART串口 通信接口是不同设备或系统之间进行通信时使用的物理连接和电气特性的规范。它定义了数据的传输方式、信号的传输速率、传输距离和电气标准等。通信接口允许设备之间交换信息和进行数据传输。
STM32标准库学习笔记-9.DMA 直接存储器存取 这4GiB的空间指的是地址空间,每个地址对应一个具体的设备。CPU通过地址,然后对应到地址存储单元或者寄存器,进行读取或者写入数据即可。4GiB是它最大支持的地址数目,但是实际可能没有使用那么多。整块4G存储器开始地址标为0x00000000,结束地址为0xFFFFFFFF,地址的位数是32位,那么2^32=4,294,967,296。通俗的讲映射就是一种特殊的对应关系。存储一些独立于程序代码的配置参数。存储内核各个外设的配置参数。存储运行过程中的临时变量。存储各个外设的配置参数。程序存储器Flash。
STM32标准库学习笔记-4.定时器中断 STM32F103RCT6上总共有8个定时器,其中TIM1和TIM8是高级定时器,它们挂载在APB2高速总线上。而TIM2、TIM3、TIM4、TIM5是通用定时器,TIM6、TIM7是基本定时器,它们都挂载在APB1上,基本定时器的功能最少,高级定时器功能最多。PSC为预分频系数,(PSC+1)为分频值。PSC = 1时,信号为2分频。
STM32标准库学习笔记-3.外部中断 参考教程:【STM32入门教程-2023版 细致讲解 中文字幕】中断含义:在计算机执行主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。STM32的中断:68个可屏蔽中断通道,包含EXTI、TIM、ADC、USART、SPI、I2C、RTC等多个外设。使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,可对优先级进行分组,进一步设置抢占优先级和响应优先级。NVIC(嵌套向量中断控制器):STM
STM32标准库学习笔记-2.GPIO 驱动器能够增加IO口的驱动能力。GPIO挂载在APB2上(APB (Advanced Peripheral Bus) 低速总线,用来接低速外设的。1.使能RCC(Reset and Clock Control)复位与时钟控制器2.定义GPIO_InitTypeDef 结构体,赋值初始化参数//推挽输出//0引脚//50MHz速度3.将结构体取地址传入GPIO_Init函数,指明初始化GPIO为GPIOA组(每一组有16个引脚)4.使用GPIO相关的库函数对GPIO进行操作。
STM32标准库学习笔记-1.基础知识 RISC(Reduced Instruction Set Computer)即精简指令集计算机,是一种CPU设计思想和架构。它的基本思想是将CPU的指令集简化为一些基本操作,这些基本操作的执行时间都大致相等,并采用流水线和高速缓存等技术来提高CPU的效率。CISC(Complex Instruction Set Computer)即复杂指令集计算机,它的设计思想是尽可能包含更多的指令,让CPU能够完成更复杂的任务,但这也会使得CPU的复杂度、功耗和成本等因素增加。
[SCOI2009][数位DP]windy数 思路详解 题目链接题面windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数?思路1.由于是计算[A,B]间windy数字,那么可以用前缀和思想,统计前A-1个数字中的windy数 数量,再统计前B个windy数 数量,答案就是两者之差。2.数位DP,用表示数字位数为i且...
[01分数规划]POJ2976 Dropping tests]经典二分题-01分数规划 题目链接题目描述给定N个元素,每个元素含有A[i],B[i],取其中N-K个元素得到:,最大化这个值.分析使用二分答案:二分一个值V,使得,化简:那么可以在二分的check函数中选择前N-K个最大的(),检查是否大于等于0.注意精度的处理。#include <iostream>#include <cstdio>#include <al...
P3387 【模板】缩点 强连通分量缩点拓扑排序DAG dp#include <iostream>#include <cstdio>#include <vector>#include <cstring>#include <queue>#include <stack>using namespace std;const ...
CF786B Legacy 线段树优化建图 洛谷题目链接题意首先想到单源最短路,但是如果暴力模拟就会导致从区间里每一个点连向另一个点时最坏情况时间复杂度达到O(N*N),显然会TLE。那么看到区间操作,自然会想到处理区间操作的数据结构,这一题就是一道线段树题。想法【线段树优化建图】1.由于直接暴力模拟连边导致TLE,我们可以按照题意建两颗线段树TreeIn(外部一点连向一个区间)和TreeOut(一个区间连向一个点),线...
P3045 [USACO12FEB]牛券Cow Coupons 贪心+优先队列 题目链接贪心思路:0.贪心撤回1.首先如果所有的奶牛都使用了优惠券,那么优惠价格最少的前K个奶牛是必定包含在最终答案中的。如果情况不是这样,就意味着有一张优惠券用在了K+1到N区间的奶牛上,但是前K个奶牛中的那一个不选,显然这是不划算的,情况不是最优。2.考虑全部对排序后的前K个奶牛使用优惠券,再建立一个由小到大保存(P[i]-C[i])的堆维护,再对[K+1,N]个奶牛进行选择...
ST表学习 ST表原理和实现ST表是一种用于解决RMQ(Range Minimum/Maximum Query,即区间最值查询)问题的离线算法与线段树相比,预处理复杂度同为O(nlogn),查询时间上,ST表为O(1),线段树为O(nlogn)。ST表数据储存放在一个二维数组ST[i][j],表示下标i开始,2^j长度的区间内的最大值或最小值。初始化过程:inline void Init(v...