- 博客(118)
- 收藏
- 关注

原创 FreeRTOS(速记版)
中断是微控制器一个很常见的特性,中断由硬件产生,当中断产生以后 CPU 就会中断当前的流程转而去处理中断服务,Cortex-M 内核的 MCU 提供了一个用于中断管理的嵌套向量中断控制器(NVIC)。Cotex-M3 的 NVIC 最多支持 240 个 IRQ(中断请求)、1 个不可屏蔽中断(NMI)、1 个Systick(滴答定时器)定时器中断和 11个系统异常。Cortex-M 处理器有多个用于管理中断和异常的可编程寄存器,这些寄存器大多数都在NVIC和系统控制块(SCB)中,
2024-09-11 12:11:33
834

原创 嵌入式Linux C应用编程指南-高级I/O(速记版)
阻塞其实就是进入了休眠状态,交出了 CPU 控制权。比如 wait()、pause()、sleep()等函数都会进入阻塞。阻塞式 I/O 顾名思义就是对文件的 I/O 操作(读写操作)是阻塞式的,非阻塞式 I/O 同理就是对文件的 I/O 操作是非阻塞的。普通文件的读写操作是不会阻塞的,不管读写多少个字节数据,read()或 write()一定会在有限的时间内返回,所以普通文件一定是以非阻塞的方式进行 I/O 操作,这是普通文件本质上决定的。
2024-09-01 23:04:15
1195

原创 嵌入式八股文-网络(速记版)
三次握手可以防止已失效的SYN连接请求报文段被送到服务端导致错误连接。一个例子就是客户端发送了一次连接请求,延迟传送到服务端,期间又发送了一次请求并成功连接,如果只两次握手服务端会认为客户端又传来了一个新的连接请求,并重新连接,导致服务器资源浪费。还有就是客户端发送连接请求后就挂掉了,服务端这时建立连接也会浪费资源TCP协议是全双工通信,这意味着客户端和服务器都可以向彼此发送和接收数据,因此关闭连接是双方都需要确认的行为。
2024-08-13 17:50:38
307
原创 QT自运行程序
Linux Framebuffer 是 Linux 内核提供的一种图形设备接口,它将显示设备抽象为一个帧缓冲区,应用程序可以直接访问这个帧缓冲区来绘制图形,而无需依赖于 X Window System。
2025-03-26 21:21:34
160
原创 QT多线程实战经验
比如有一个blueToothWorker,继承了QThread,实现了run方法。那么该线程变量就是在函数栈上分配,一旦函数结束,线程没执行完,线程变量就被回收了。正确用法是堆上分配。并通过connect函数自动回收。
2025-03-22 17:32:38
178
原创 字符设备文件、普通文件,的偏文件偏移量的区别
(蓝牙设备)的文件偏移量可能始终为 0,因为蓝牙设备是流式设备,没有固定的文件大小。读写后更新,范围从 0 到文件大小。偏移量可能无意义,不支持随机访问。偏移量可能始终为 0,不支持。线性偏移,支持随机访问。
2025-03-22 12:01:56
182
原创 firefly经典蓝牙和QProcess、QFileSystemWatcher记录
FIREFLY-RK3568 和 lubancat4一些测试记录
2025-03-21 10:35:37
310
原创 QT日志级别设置
以下是一个完整的示例,展示如何通过设置日志过滤规则来禁用。开发版本代码包含了大量的qDebug,输出的消息都将被忽略,而不会显示在控制台中。发布版本可能导致未知异常。用于设置日志过滤规则,从而控制日志的输出。设置了日志过滤规则,将所有调试级别的日志(输出一条信息级别的消息,这条信息会显示。输出一条调试信息,这条信息不会显示。
2025-03-19 14:18:36
476
原创 linux+QT结合Git进行代码管理
先在gitee或者github等代码管理平台创建一个仓库。.gitignore文件用于填写需要忽略的文件。开源协议,linux系统用GPL开源协议。
2025-03-17 18:52:27
632
原创 explicit关键字的作用
默认情况下,如果一个类的构造函数只有一个参数,编译器会使用它来进行隐式类型转换。关键字用于修饰构造函数或转换运算符,其主要作用是防止。也可以防止通过拷贝初始化的方式创建对象。禁止了隐式类型转换。将无法通过编译,因为。
2025-03-16 20:11:53
157
原创 Show、Hide和Setvisible的区别
hide方法会将组件移出布局,setvisible不会。垂直布局中有A和B两个按钮,原本A在B上方,隐藏A后再显示A,A到了B下方。用setvisible方法就行。请问如何让A保持在B上方?
2025-03-16 13:09:06
104
原创 Qt运行xxx.so can not open shared object file
找不到 .so文件,确认.pro的 LIB项填写正确后,为环境变量设置 LD_LIBRARY_PATH=xxx。LD_LIBARY_PATH是一个LINUX环境变量,用于程序运行时查找共享库.so文件的路径。
2025-03-15 18:19:00
136
原创 AD学习-最小系统板,双层
速记版.推荐书籍 <Cadence Allegro 500问>.这是双层板。高速4层板参考智能车视频。PCB特训班最高教到10层板。
2025-03-05 21:59:06
821
原创 ubuntu24基于虚拟机无法从主机拖拽文件夹
如果不想修改配置文件,也可以在登录界面选择“Ubuntu on Xorg”模式登录。重启虚拟机,即可实现文件和文件夹的复制粘贴。重启虚拟机后,文字复制粘贴功能可正常工作。
2025-02-17 10:50:54
554
原创 STM32标准库-待机模式
STM32待机模式是最低功耗模式,关闭电压调节器,1.8V供电区断电,PLL、HSI、HSE振荡器停止,SRAM和寄存器内容不保,仅备份寄存器和待机电路保持供电。待机时,仅复位、TAMPER(特定配置下)及使能的WK_UP引脚有效,其余IO引脚高阻。可通过设置电源控制寄存器PWR_CR的PDDS位,使CPU进入深度睡眠时进待机模式。唤醒后,除PWR_CSR外所有寄存器复位,执行流程与复位后相同。再次长按则进入待机模式,DS0 关闭。低功耗模式下,电源控制寄存器PWR_CR可设置开/关。
2024-11-05 13:09:54
1339
原创 STM32标准库-DMA实验
DMA控制器支持绕过CPU直接传输数据。STM32一般有DMA1、DMA2两个控制器。DMA支持各种外设、闪存、SRAM作为数据源和数据目标,具体可查表。同时仅一个有效。DMA(直接存储器访问)允许数据在地址空间间高效复制,由DMA控制器执行,无需CPU干预。STM32可配备2个DMA控制器(DMA1有7通道,DMA2有5通道,DMA2仅在大容量产品中存在),各通道管理外设对存储器的访问请求,并通过仲裁器协调优先级,提高CPU效率。字节、半字、全字对齐源和目标地址。
2024-11-05 11:44:01
930
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人