- 博客(15)
- 收藏
- 关注
原创 Oracle VirtualBox 中Ubuntu 24.04虚拟机窗口显示空白、闪烁问题
问题描述:Oracle VirtualBox 中Ubuntu 24.04虚拟机窗口显示空白,关闭窗口一直闪烁,问题界面如下,2、Oracle VirtualBox中修改配置,1、关闭虚拟机,点击右上角的 ×。<启动3D加速>,如下。
2025-04-15 11:06:01
137
原创 RTT Viewer
RTT Viewer主要用于通过等调试器与嵌入式系统进行交互,实现实时的数据交换和调试信息输出。它允许开发者在不占用硬件资源的情况下,高效地从目标(微控制器)向主机发送调试信息或接收控制命令。
2025-04-09 10:06:33
426
原创 函数:assert_param()
判断参数expr是否为真,为真执行语句(void)0,为假就执行后面的函数assert_failed((uint8_t *)__FILE__,__LINE__),函数的作用在库函数中有解释,用来指示出错的行数和文件。2、#define为预处理指令,在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”,因此可以指出出错的行数与文件。在程序的运行上牺牲了效率(但只是在调试阶段),但在项目的开发上却帮助你提高了效率。
2025-03-19 09:30:13
163
原创 嵌入式操作系统体系结构
微内核结构,又被称为客户机/服务器结构,其基本思想是:把操作系统的大部分功能剥离出去,只保留最核心的功能单元,微内核只提供几种基本服务,如任务调度、任务间通信、底层的网络通信和中断处理接口及实时时钟等。整个内核非常小,内核任务在独立的地址空间运行,速度极快。按照软件体系结构,可以把嵌入式操作系统分为三大类:宏内核结构、分层结构和微内核结构。这种结构实质是“无体系结构”:整个嵌入式软件是一组程序(函数)的集合,不区分应用软件、系统软件和驱动程序等,每个函数均可以按照需求调用其他任意的函数。
2025-03-19 09:11:10
237
原创 C语言命令规范
for与小括号用空格隔开,分号之后加一个空格,大括号新起一行。大驼峰+“_E”,全大写,多个单词用下划线分隔。if 与条件之间用空格隔开,大括号新起一行。大驼峰命名,功能单一,不超过80行。小驼峰命名 & “形容词+名词”注释符与注释内容之间使用空格隔开。操作符与被操作数之间用空格隔开。全大写,多个单词用下划线分隔。全局变量在前面加“g_”静态变量在前面加“s_”指针变量在前面加“p”
2024-11-28 15:17:11
124
原创 PWM输入与PWM输入捕获的区别
1、一个PWM占据了TIM的两个通道,引脚上电平发生变化,可以同时被CH1和CH2检测到2、第一个上升沿到来,CH1、CH2都会检测到,TIM发生复位,计数值为0,不产生中断或者不处理3、接着,第一个下降沿到来,CH1发生捕获事件,将当前TIM计数值保存到CH1捕获寄存器中,记为ch1Val,不产生中断或者不处理4、接着,第二个上升沿到来,CH2发生捕获事件,将当前TIM计数值保存到CH2捕获寄存器中,记为ch2Val,产生中断并处理。
2024-11-11 13:25:29
403
原创 AD采样-滑窗滤波
如上图,实现ADC1(P6)作为输入信号来控制PWM(P7)输出的功能,在采集ADC1值时,读取的ADC1一直在微小的变化,导致PWM变化,进而导致输出抖动,影响模块正常功能。这时,我们便需要对输入信号ADC1进行滤波,滤波算法有很多,如:限幅录波算法、中位值滤波法等,下面介绍一种滑窗录波算法。1、原理:设置窗口,每次进一个新的AD值,出一个旧的AD值,效果如下图。窗口滑动内数据的处理方式多样可选,如:取平均值、排序后取中位数等。2、代码实现(滑窗内数据的处理方式为取平均值)
2024-10-31 15:49:00
305
原创 Keil “No Cortex-M Device found in JTAG chain.” &&“Target DLL has been cancelled.“
3、修改后,TDO ->SWD,并出现了相关信息,此时,就可以进行Debug了。
2024-09-12 09:22:07
810
原创 RT-thread 内核框架
静态内存池管理:当静态内存池具有可用内存时,系统对内存块分配的时间将是恒定的;实时内核:对象管理、线程管理,实时调度器、线程间通信管理、时钟管理及内存管理等,内核最小的资源占用情况是 3KB ROM,1.2KB RAM。线程调度算法:基于优先级的全抢占式多线程调度算法,0 优先级代表最高优先级,相同优先级的线程间采用时间片的轮转调度算法进行调度。动态内存堆管理:小内存管理算法(整内存分割)、slab 管理算法(每类对象有一个内存池)、memheap 管理算法(粘合)线程间同步:信号量、互斥量与事件集。
2024-08-15 16:59:40
135
原创 data idata xdata code (C51)
字节,访问速度最快,可直接通过寄存器实现读写操作,通常存放小的全局变量。外部数据存储区(扩展。
2024-06-24 09:16:33
264
原创 【bat】批处理获取文件信息
在Version.h文件中,获取第一个VERSION所在行,赋值给output_variable,再截取出1.1赋值给VERSION。
2024-05-21 14:45:52
728
原创 【bat】批处理修改文件名添加时间后缀
3、将下面的代码复制进bat文件中,双击运行(改代码中需要修改的文件在Obj目录下名为LKS_MC_Project.hex)bat批处理,获取系统时间,生成一个在原文件名后面有时间后缀的新文件。1、新建一个txt文件,修改文件后缀为bat。2、见bat文件放到要修改的文件同级目录下。文件名后添加加一个时间后缀。
2024-05-21 13:47:45
1410
原创 GPIO梳理
引脚不连接到特定的电源或地,并且没有外部电阻将其固定在特定电平上(接收外部信号,当没有外部信号输入时,引脚处于高阻抗状态)引脚输出配置模式,引脚可以连接到外部负载或电路,但只能拉低(连接到地)而不能主动拉高(连接到电源),拉低状态。)通过一个上拉电阻,以确保引脚在没有外部信号输入时保持在高电平(通常是逻辑高))通过一个下拉电阻,以确保引脚在没有外部信号输入时保持在低电平(通常是逻辑低。引脚可以主动拉高(连接到电源)和拉低(连接到地),以提供全面的输出控制能力。外部设备发送的信号,转成数字信号。
2024-05-06 16:14:05
187
原创 User name and email must be set before commit
找到.gitconfig文件(通常在C/User/xxx目录下),按如下格式填写。点击 “是”,然后填入“用户名”与“邮箱”,再点击“确认”
2024-04-07 09:12:54
1195
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人