- 博客(26)
- 收藏
- 关注
原创 关于lvgl “lv_img_dsc_t”结构体使用的疑问、并行刷新图片思路
但是发现只有前面两张数据是正常的,后面显示的图片大致也可以看出整体样貌,但是会有一点一点的白色,后面我尝试把current_idx_bg改成9,跟需要显示的图片张数一致,就正常了;我创建了lv_img_dsc_t类型的一个数组变量lv_img_dsc_t bg_layer_image_descs[current_idx_bg];current_idx_bg大小为2,然后遍历显示9张数据,通过不断的切换current_idx_bg(0,1,0,1)去显示遍历好的新数据(0,1,2,3,4,5,6,7,8)
2025-03-17 12:26:18
234
原创 关于 Linking CXX xxx.elf FAILED: xxx.elf 编译问题;espidf gitignore文件参考
我出现这个问题的过程是先配置了以下这个.gitignore文件(见下方),提交后clone下来测试能否成功编译,发现Linking CXX xxx.elf FAILED: xxx.elf错误。后面我把sdkconfig提交上去编译就通过了,这个文件内的某些信息也许不能通过编译全部正确生成,所以上传git时记得加上sdkconfig文件。
2024-12-17 11:44:47
927
2
原创 e2studio Launching xxx.elf has encountered a problem.
将freertos_ek_ra2e1_ep119改为freertos_ek_ra2e1_ep与.jlink和launch一致再烧录就不会报错了。我遇到的这个问题原因应该是文件夹名字与Flat文件命名不一致导致的。
2024-12-02 13:57:26
239
原创 pvPortMalloc返回NULL的原因
是用于从 FreeRTOS 的堆中分配内存的函数。如果堆中没有足够的可用内存来满足请求的大小,实时检测freertos的剩余堆栈以及各个任务剩余大小,做到心里有数,提前预防此类错误。我在使用pvPortMalloc的时候发现返回了NULL。这通常是最常见的原因。
2024-11-07 10:31:20
338
原创 e2studio恢复修改默认主题和字体
最近下载了新版本的e2studio(2024),下载后发现主题是黑色的,字体看着也没有原来的舒服,然后记录一下调整过程。
2024-10-23 12:42:42
355
原创 bootloader跳转到app失败的解决方法
其中有一个跳转函数一般都叫在项目中我发现不跑RTOS时,使用do_boot();可以正确跳转到正确位置,但是在freertos中调用do_boot();不会正确跳转,反而bootloader会不断的reset;为什么会这样呢?
2024-09-27 16:24:13
755
原创 e2studio、SmartSnippets Studio、Eclipse编译显示RAM和ROM使用情况
1、右击左侧项目,点击properties,然后见下图,将原来的--specs=rdimon.specs(有可能是其它值)替换为。,然后点击apply and close,就大功告成啦。
2024-09-26 16:46:28
302
原创 Variable references empty selection: ${project_loc}解决方法
经过测试可以解决问题;本人用的编译器是SmartSnippets Studio v2.0.16,在这里吐槽一下这个编译器用着非常不顺手。
2024-07-16 14:33:17
235
原创 独立看门狗(iWDT)超时时间计算
最终计算出设置的超时时间 = 17.067 ms x 2048 cycles = 34.95 秒。那么,可以得到独立看门狗的时钟频率 15000Hz / 256 = 58.59hz。周期时间等于 1/58.59hz = 17.067 ms。首先,独立看门狗的输入时钟频率为 15000hz。将循环周期设为 2048 cycles。时钟分频比等于 256。
2024-06-14 15:59:06
744
原创 使用SecureCRT发送hex、字符串
使用SecureCRT发送hex或者字符串的方法见以下链接:用secureCRT串口工具发送hex字符串的方法_securecrt 发送hex-优快云博客
2024-05-31 10:55:20
1316
原创 用clion ide开发stm32
大部分我是按照第一篇博客来的,直到需要往系统环境里面的path添加环境时我参考了第二篇(找了半天不知道系统环境在那里,但是第二篇里面有写)我一共参考了两篇博客,过程很顺利。
2024-01-30 15:47:57
293
1
原创 uart与uart之间的通信(队列缓存)
if(count >= length+3)//为什么加3?//防止队列满了后一帧数据分散开来,一部分在尾部,一部分在头部。我做了一些修改:防止队列满了后一帧数据分散开来,一部分在尾部,一部分在头部。//不足一帧是继续等待,实际中可以做个超时处理。//防止队列满了后一帧数据分散开来,一部分在尾部,一部分在头部。#define LEN 4 //最小的一帧数据具有的长度。
2023-06-09 13:57:25
201
原创 使用stm32进行ota升级
3、bootloader和app存放方案:将mcu内部flash分为两块内存,分别存放bootloader和app。2、下载官方bootloader和编写测试demo;2、数据传输协议:ymodem,如果不了解ymodem值得去了解下。1、硬件方案:只使用mcu内部flash,没有外置flash。4、ota流程:使用uart进行数据更新,并运行新的程序。1、下载“SecureCRT 8.3”软件。然后按下键盘3,执行新程序就完成了。
2023-05-29 14:45:57
2921
1
原创 C语言二级指针的用法
我们来分析一下“图1”中的程序,首先定义了一个一级指针p1,然后用p1指向a变量的地址,定义一个二级指针p2,用p2指向p1的地址,然后将p2。二级指针一般用于指向一个一级指针的地址,见下面程序。解引用后的值就是a的值。
2023-05-18 10:43:45
271
1
原创 c语言中指针数组的用法
图1和图2实现的效果是一样的,唯一不同的是图2中使用了传说中的指针数组,图二中的第一行int* array1[3];定义了一个int类型的数组指针array1,让array1[0]、array1[1]、array1[2]类型都变成了int类型指针,对比图1可以发现其实数组指针就是将数组变成了指针类型,和图1实现的功能是一模一样的;当然如果想深入学习数组指针还可以去了解一下“int* array1[3];看完图1中的代码你会发现没有传说中的指针数组,不要急,接着看图2代码。
2023-05-16 14:46:18
180
1
原创 C语言中指针直接指向数组名(array) 和 指向数组地址(&array)的区别
从图2中可以看到我把array1和&array1都加了1然后再把它们打印出来,我们会发现值不一样了;下面来解释下这是为什么。array1 + 1相当于地址偏移一个元素的长度,而&array1 + 1地址偏移一整个数组的长度,所以最后的值肯定是不一样的。从图1中可以看出array1和&array1输出的值一样的,都是数组array1的首个元素值。它们指向的地方是有区别的,a指向的是array1。,b指向的是array1这。,所以将它们全部加1后,
2023-05-12 18:02:32
182
原创 蓝牙服务LLS(LINK LOSS SERVICE)(UUID:1803)
以我的理解这个LLS服务是用来蓝牙丢失连接后发出一个命令告知蓝牙芯片的一个服务。链路丢失服务 |蓝牙®技术网站 (bluetooth.com)以上为官方参考连接。
2023-04-06 14:24:13
511
1
原创 iic地址为什么要左移一位
下面来看下图二,这是芯片INA226的地址,A1和A0都接地的时候地址是1000000,换算成16进制也就是0x40,但是在实际使用中应该写成,写:(0x40
2023-03-20 16:52:35
2239
原创 STM32 OTA USART升级,协议ymodem笔记
https://blog.youkuaiyun.com/lzj_linux188/article/details/107890964 对iap(bootloader)底层原理和stm32官方iap(bootloader)代码分析。https://blog.youkuaiyun.com/qq_36958104/article/details/108842629 中断向量表修改,包括寄存器和库函数方式。
2023-03-16 13:44:23
302
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人