- 博客(4)
- 收藏
- 关注
原创 STM32F429 + LVGL 9.5 异步 DMA2D 切换标签卡死问题
摘要:STM32F429IGT平台使用LVGL 9.5.0时,开启DMA2D异步绘制(LV_DRAW_DMA2D_ASYNC=1)后,切换复杂界面会触发死锁。问题根因是LVGL官方bug(v9.5.0未修复):dispatch_cb()中若绘制区域与裁剪区无交集,会直接返回而未清除任务占用标志,导致后续wait_finish_cb()无限等待未触发的DMA2D中断。官方PR#10182已修复(需手动移植到9.5.0),核心改动为无交集时立即标记任务完成并释放资源。修复后异步模式运行正常。
2026-08-17 19:25:07
380
原创 理解C语言数组传参与数组名的本质
本文深入解析C语言数组名本质及传参机制。数组名在多数情况下等价于首元素地址(arr+1跳过1个元素),但在sizeof运算时表示整个数组(特例)。数组传参本质是传递首元素地址,因此函数内修改会影响原数组。实验证明:arr_inc1(int arr[5])和arr_inc2(int *p)两种写法等效,都通过指针操作修改数组元素。而变量传参是值传递,需用指针才能修改原值。关键结论:数组名是地址常量(除sizeof外),数组传参实为地址传递,这是与变量传参的本质区别。
2025-07-07 01:06:22
785
原创 MCS-51单片机扩展并行I/O实现读与写(8255A与理解MOVX指令时序)
摘要:51单片机通过8255A扩展IO口时,需使用74LS373锁存器配合P0口复用地址/数据总线。74LS373在ALE下降沿锁存地址信号(A1A0),8255A根据地址选择寄存器(PA/PB/PC/控制口)。MOVX指令自动生成时序:先输出地址并锁存,再传输数据,通过WR/RD信号控制读写。Proteus仿真验证了该设计,程序成功实现PB口数据转发至PA口。时序分析表明,ALE周期性脉冲不影响操作,仅当WR有效时8255A才会响应。(148字)
2025-04-30 21:30:34
1623
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅