- 博客(416)
- 收藏
- 关注
原创 有无符号数在微机、计算机等真正执行的逻辑,如何区分,如何计算,如何输出
编译器是 “视角的决策者”:根据你写的unsigned/ 无unsigned,确定运算的视角;指令是 “视角的载体”:无符号运算用 “读 CF 的指令(如 JC)”,有符号运算用 “读 OF 的指令(如 JO)”—— 指令本身就绑定了视角;CPU 是 “视角的执行者”:执行指令时,只按指令的要求读取对应的标志位,完全忽略另一个视角的标志位,自然就 “遵循了正确的视角”。当代码是时,指令让 CPU 只看 CF,所以 CPU 只关心 “是否超出 255”;当代码是char。
2025-08-23 11:43:33
284
原创 总线之间的关系,64位32位与DB数据总线CB控制总线与AB地址总线的关系
控制总线不负责传输数据(数据总线负责)或地址(地址线负责),而是传递 CPU/MCU 对外部设备的 “控制命令”(如 “读 / 写指令”“设备就绪信号”)和外部设备对核心的 “状态反馈”(如 “数据已准备好”)。其信号种类、根数,完全由芯片需要控制的 “外部设备类型” 和 “交互逻辑” 决定。这是 MCU“32 位 / 64 位” 架构的核心定义 —— 通用寄存器位数直接决定了 MCU 单次数据处理的基础能力,比如处理大数值运算时,64 位寄存器无需像 32 位寄存器那样拆分数据,能减少运算步骤。
2025-08-22 22:32:12
404
原创 电脑芯片大的32位与64位指的是什么
32 位 CPU 的通用寄存器一次可处理 32 位(4 字节)数据,64 位 CPU 则可一次处理 64 位(8 字节)数据,直接决定了 CPU 单次数据处理能力。简单说:通用寄存器位数决定了 CPU “单次能扛多少数据”,而非直接决定 “跑得多快”,只有在处理大位数数据时,位数优势才会转化为实际的运算效率提升。综上,“32 位 / 64 位” 的本质是 CPU 通用寄存器的处理位数,地址线、数据线位数是其在硬件层面的常见配套体现。32 位与 64 位既不单纯指数据线根数,也不单纯指地址线根数,而是对。
2025-08-22 21:52:17
240
原创 学习Linux嵌入式(正点原子imx课程)开发到底是在学什么
在学习过程中,不能简单地将 Linux 系统开发方法直接应用于 Android,还需掌握 Android 特有的框架和组件等知识,如从官方获取 Android 镜像后,还需根据 IMX6ULL 的硬件特性进行驱动适配、系统分区配置等工作,且 Android 的驱动开发涉及 HAL 层等特殊部分,与 Linux 内核驱动开发也有所不同。虽然 Android 基于 Linux 内核,但 Android 系统开发在应用框架、系统组件、开发语言等方面与嵌入式 Linux 开发有很大不同。
2025-08-21 22:21:51
385
原创 为啥电脑与手机的芯片不一样,手机也能运行电脑系统Windows、Liunx等,不同电脑芯片能运行一个Windows安装包的原因
编译时绑定硬件,一个固件只对应一种芯片,抽象层(库函数)是开发者编写代码的工具。运行时适配硬件,通过预装多版本 HAL 和驱动,安装时自动匹配,抽象层(HAL)是系统自带的 “硬件翻译器”,让内核无需关心具体硬件细节。这就是为什么 Windows 能在不同 CPU 上运行 —— 它不是 “一个机器码文件”,而是一套能根据硬件自动 “组装适配版本” 的复杂系统,HAL 就是这套系统实现硬件无关性的核心组件之一。不同电脑芯片能运行一个Windows安装包的原因。
2025-08-21 22:16:37
960
原创 电脑芯片其实更偏向MPU不是CPU,GPU CPU NPU MPU MCU的区别
现代电脑的处理器(如 Intel i5)本质上是 MPU,因为它集成了 CPU 核心、缓存、定时器等,但我们日常仍习惯称其为 “CPU”电脑里的芯片(如 Intel i5、AMD Ryzen)通常被通俗地称为 “CPU”,但严格来说更接近,它确实也有少量 “片上外设”,但与 MCU 的片上外设定位完全不同。
2025-08-21 22:07:36
1501
原创 树莓派安装OpenCV环境
然后要下载一个同版本的opencv-contrib-python。安装 miniconda 配置你自己的python环境。注意要直接换conda源和pip源。然后看看安装的cv版本。
2025-08-07 21:32:16
138
原创 树莓派安装中文输入法
接下来,安装中文输入法fcitx及Google拼音输入法(大约需要五分钟)表示使用apt-get包管理器来下载,,确定下载安装,需要90MB存储空间。安装成功之后,会在下一次重启时生效。打开树莓派命令行,输入以下命令。表示使用管理员root权限,在跳出的对话框中输入。
2025-08-07 12:35:24
372
原创 树莓派没鼠标没键盘没屏幕怎么办?树莓派没屏幕时用终端也能打开配置设置从而配置远程VNU屏幕 或SSH等访问
用putty访问其远程终端就能完成配置,也可以提前用屏幕配置好。可以打开设置 在里面打开VNU就能打开虚拟屏幕。这样就完成了键盘屏幕鼠标WiFi共享。该软件可以完成WiFi屏幕的功能。
2025-08-05 15:16:44
415
原创 couldn‘t agree a host key algorithm (available:rsa-sha2-512,rsa-5ha2-256,ecdsa-sha2-nistp256,ssh-ed2
就是你的putty太低版本了更新一下就行。
2025-08-05 14:08:58
165
原创 The installed operating system (0$) does not indicate support for Raspberry Pt 5Update the Os or set
有可能是你的烧录镜像出现了问题,最好应用这个软件。因为它自带有一个检查功能更加保险。也有你的镜像太低版本了。
2025-08-05 14:06:56
116
原创 Could not resolve host: downloads.raspberrypi.com 已下载:schannel: next InitializeSecurityContext fai
方法:删除 C:\Users\<用户名>\AppData\Roaming\Microsoft\SystemCertificates 和 C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys (注意:删除后者可能影响其他应用,需管理员权限,操作前务必备份或创建系统还原点!重启后 Windows 会重建。检查 C:\Windows\System32\drivers\etc\hosts 文件(用记事本以管理员身份打开),看是否有异常的条目指向你尝试连接的域名,将其删除。
2025-08-05 14:00:03
949
原创 异常: please increase Display.config(osd_num=) or becareful the layer
想要用多层要调用Display.init(Display.ST7701, to_ide=True, width=800, height=480,osd_num=3)填写osd_num=3代表你想要的层。
2025-07-30 19:15:39
94
原创 电赛视觉K230总结 多层layer用法
ARGB8888根本不能二值化使用多层layer会导致最高层eg:LAYER_OSD3遮挡住LAYER_OSD2而且没有找到删除层的办法,就会一直遮挡,但是只要你设置成ARGB8888为LAYER_OSD3就会在未写入区域透明出第二层等底层,可以很好的当作按键来使用Alpha这就是为什么 ARGB8888 适合做「悬浮按键层」—— 未绘制的区域会透出底层内容。
2025-07-30 19:11:54
309
原创 你的连接不是专用连接攻击者可能试图从 github.com 窃取你的信息(例如,密码、消息或信用卡)。 --解决办法
按照以上步骤,尤其是前三点,应该能解决绝大部分。
2025-07-28 10:29:26
1293
原创 串口数据包指令集解包应用最实用技巧
具体思想:创建一个结构体作为状态指示,然后利用中断无比迅速的反应,直接对每一个接受的字节进行判断,接收到前数据就判断然后置标志位再switch对后数据头判断最后在while里对接收到的解析数据操作。
2025-07-28 09:56:07
200
原创 K230摄像头配置与显示配置误解:而这根本没关系
我镜头设置为640x480 hdmi设置成1920x1080的时候他自动放大镜头拍摄好的640x480放大到 1920x1080。会报错是你的函数需要一定照片大小才会报错。而显示设置根本和镜头设置没关系,
2025-07-11 23:07:43
279
原创 FREERTOS根本不能使用连续接收串口思想
示例代码:这种连续接受思想在单线程芯片是可以用的,但在多线程或具有系统的单线程芯片中不行在多线程环境中,这段代码存在严重的竞态条件(Race Condition)和线程安全问题。我来分析一下具体风险并提供改进方案。
2025-07-11 22:56:28
184
原创 Failed to add entry for user xxx.解决办法
这是因为没有加相应的系统账号,所以会提示Failed to add entry for user的错误,
2025-07-03 18:55:06
309
原创 与 vmx86 驱动程序的版本不匹配: 预期为 385.0,实际为 360.0。 驱动程序“vmx86.sys”的版本不正确。请尝试重新安装 VMware Workstation。 未能初始化监视器设
我们知道了原因,解决起来就容易多了,既然说了是驱动程序“vmx86.sys”的版本不正确。而且这个 vmx86.sys 文件是需要成功安装好VMware Workstaion后才会重新生成,那解决起来就容易多了。我们成功安装好了VMware Workstaion后,会生成一个“C:\windows\system32\drivers\vmx86.sys”文件。最主要的原因就是:驱动程序“vmx86.sys”的版本不正确。2、找到 VMware Workstaion 软件,然后,依次进行“
2025-07-03 18:11:38
253
原创 关于庐山派多视频层(layer)和bind_layer的应用
嘉立创分了适配层和OSD(我称它为图片层)顾名思义,一个是能显示视频流到LCD屏幕,一个是只能显示照片,也就是你可以对不同层进行操作而不影响其他层,解决的场景就是用于你画了一个正方形在照片上,你现在不想要了,你删去那个正方形会导致你的拍摄图片缺了一块成为白色,这是因为你山区的就是那个像素点,你没有记录之前的像素点那就恢复不回去了,所以图像多层可以解决因为他两层之间毫不相关,你删去一层里的东西 不会影响其他层,其实若果你的图像实时更新的也可以覆盖的层删正方形的缺口,但是不是很保险,所以有了多层显示。
2025-06-28 12:40:59
983
原创 嘉立创庐山派K230程序加速,解决卡顿思想总结
你开两个显示画质的时候就会导致卡顿,比如有些人使用LCD HDMI从不关闭到电脑的虚拟屏幕VIRT就会导致内存不够,表现就是突然一下子屏幕不动了等一下又好了。CPU 占用率降低:传统方案中 CPU 需处理每帧图像的读取和写入,而 DMA 模式下 CPU 可专注于其他任务(如算法处理、通信控制)。首先大部分卡顿与缓慢是因为内存不够了,K230的算力很高,所以我们只要调整内存的使用就能解决并优化。使用DMA进行图像流的显示避免频繁调用show_image 还能解决图像受死循环延时影响的问题。
2025-06-28 12:35:04
1063
原创 关于庐山派卡顿的解决方法表现就是突然一下子屏幕不动了等一下又好了
很有肯恩是内存不够了,你开两个显示画质的时候就会导致卡顿,比如有些人使用LCD HDMI从不关闭到电脑的虚拟屏幕VIRT就会导致内存不够,表现就是突然一下子屏幕不动了等一下又好了。将to_ide改为false。这样就能节约内存解决卡顿。
2025-06-28 10:35:11
179
原创 串口数据延迟更新是为什么且延迟的时间是随机的
/ 包含delay_ms()// MOTOR_Direction_Angle_Y(...);// 存入环形缓冲区。if(Serial_GetRxFlag() == 1) { // 检查标志。// 保留所有串口处理。串口数据是实时到达的(以115200波特率,约11.5KB/s)所以看到一串13,然后一串18,然后一串01。// 状态机解析数据包。CPU完全被占用,无法处理串口数据。
2025-06-25 09:10:02
639
原创 keil mounriver vscode编辑器每次把工程改名都要添加一次路径怎么简化
使用这样的系统语法不管你怎么变名字都可以把工程内的文件提取到不用老改。mounriver还要再加一步编辑设置他为工作空间。找到添加路径的指代语法。
2025-06-23 12:52:58
207
原创 关于CH32开发板烧录说明
本身CH32也拥有自己独属于自己RISC-V架构的仿真器在·WCH称他为WCH-Link。本质上没啥区别,CH305会更快一点,只是配置上你要配置不同的下载。对应的下载接口在左边的排针处你可以直接当下载器来使用。分为两个版本 CH549 和 CH305。这在CH官方给的板子中自带就有。CH305是这个正方形的。
2025-06-22 23:41:11
206
原创 CH32V307开发板不小心被错误的 ISP 模式或下载器模式导致蓝灯(CON+)闪烁表示开发板处于一种异常状态解决办法
MounRiver Studio 错误地将你的 CH32V307 开发板识别成了 WCH-Link 下载器(比如 RISC-V 版 WCH-LinkE),并试图给它刷写下载器固件导致的。蓝灯(CON+)闪烁表示开发板处于一种异常状态(比如错误的 ISP 模式或下载器模式)。然后随便准备一个hex文件,也就是你工程编译好输出出来的结果文件,导入到里面去。去官网下载一个·WCH-Link-Utility。然后点击下载就能自动修复好下载固件。打开软件准备好这个配置并导入。
2025-06-22 20:05:39
229
原创 ad24智能pdf输出的装配图没有四个边角那里的圆孔
ad24中我的pcb明明放置了四个边角的圆孔作为固定孔,为啥我的智能pdf输出的装配图没有四个边角那里的圆孔。我最后检查出的问题在于一档得要是pcb库里的创建的孔才能输出装配图为圆孔,否则正常的过孔焊盘只能为空白。即使PCB编辑器里装配视图能看到孔,生成PDF时也需要确保输出设置包含了孔所在的层。对象(通常是圆形焊盘,内径等于钻孔尺寸,外径略大),或者是一个专门定义为安装孔的。视图),固定孔应该可见了。你的固定孔所在的机械层(你在步骤1中记下的那个层)。你固定孔所在的那个机械层(确保眼睛图标是睁开的)。
2025-06-21 15:25:32
782
原创 在使用一些不用驱动大电流的设备就可以用stm32的自己的上下拉但是本身上下拉不就是给iicspi这些他通信给信号的吗中怎么还跟驱动能力扯上了有什么场景嘛
如果需要驱动一个CMOS输入,应该将STM32 GPIO配置为推挽输出,并选择合适的驱动强度等级(通常是默认或中等即可),或者确保内部上拉电阻足够强(但STM32内部上拉对输出模式无效或作用不明)。一个非常轻负载(如CMOS输入门,输入阻抗极高,通常MΩ级)连接到配置为输出高电平(推挽模式)但驱动能力设置得很弱的GPIO。如果负载本身只需要极小的电流(如nA级)就能维持其输入为高电平,那么即使STM32的驱动能力很弱,或者仅靠内部上拉电阻(几十kΩ),提供的微弱电流(uA级)也。STM32的引脚到GND。
2025-06-05 19:29:53
1131
原创 STM32手册上标称的18MHz GPIO翻转速度和你实际测量到的速度之间的差异是预期之内且合理的
这种方法可以产生非常接近GPIO物理极限频率的方波(例如,在APB2=72MHz时,理论上DMA可以每2个时钟周期搬运一次,达到36MHz的写操作率,再考虑物理切换时间Tr/Tf,最终输出十几MHz到20MHz+的方波是可能的,具体取决于芯片型号和配置)。当写操作最终到达GPIO的输出数据寄存器(ODR)或位设置/清除寄存器(BSRR/BRR)并稳定后,GPIO端口的输出驱动器才开始进行电平切换,这个切换本身需要手册标称的Tr/Tf时间(约28ns)。(或使用BSRR/BRR)这些指令本身需要时钟周期。
2025-06-05 19:28:36
947
原创 地址对齐永远是4字节只不过你定义uint16只是提醒用户只有低十六位有效,实际就算uint16的地址他底层都是32位操作由编译器完成转换
这正是STM32寄存器访问的核心机制。
2025-06-05 19:27:30
669
原创 STM32的内存访问核心机制导致:32压根不认识非4字节对齐的寄存器根本赋值不了,也就是说只有对齐的地址内核才能操作,其他非对齐的地址是寄存器内的一个字节一个值不对外开放赋值
STM32(以及所有ARM Cortex-M内核)内存访问的核心机制。
2025-06-05 19:25:58
721
原创 STM32寄存器访问位宽确实存在16位和32位的混合情况但地址上一定要4字节对齐
查阅数据手册在Reference Manual的寄存器描述中查找"Access type"(如rw表示可读写)-w:必须字访问(32位)-h:可半字访问(16位)默认使用32位访问c复制下载// 安全写法 (编译器自动处理对齐)需要16位访问时确保地址对齐到2字节边界使用标准外设库/HAL库函数(底层已处理位宽)c复制下载// 库函数保障安全📌终极口诀手册定宽,对齐优先;控制寄存器用32位,数据寄存器看位宽;位操作用BSRR/BDRR,读改写需防断裂!
2025-06-05 19:21:48
1069
原创 我认为STM32输入只分为模拟输入 与 数字输入
要求信号经过数字整形(施密特触发器)。:USART无法接收到数据(信号未进入数字域):ADC输入、DAC输出监控、模拟比较器输入。✅ 信号直通模拟外设(如ADC、运放)// 错误配置示例(STM32 HAL库)(无法触发中断、无法被CPU读取IDR)(修改GPIOx_MODER寄存器),但。→ 选数字输入模式(浮空/上拉/下拉)→ 选模拟输入 (ADC场景)
2025-06-05 19:17:31
676
stm32f103zet6部署lvgl到4.3寸spi屏幕 芯片为ILI9488 SKU:MSP3520
2025-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人