自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 正点原子串口例程解读

前面我们在初始化esp8266已经开启了 HAL_UART_Receive_IT(&huart_wifi, (uint8_t *)uart_recv_it_buf, WIFI_IRQ_RECV_LEN);意思是每次中断接收 1个字节的数据。如果接收完成,调用接收中断函数HAL_UART_Receive_IT(&huart_wifi, (uint8_t *)uart_recv_it_buf, WIFI_IRQ_RECV_LEN);g_wifi_rx_sta,表示接受状态标识符,uint16_t类型。

2024-12-26 22:52:49 837

原创 vscode的keil assistant 中搜索不到全局变量

盲猜是keil assistant 当前文件夹打开的时候是进入到了MDK-ARM文件夹层次,所以只会搜索到当前打开的文件夹。我的文件结构是:\Desktop\LVGL文件系统移植(lvgl8.3)\Projects\MDK-ARM。但是在包含的文件中输入 ../../../,就是全局搜索的结果。

2024-12-21 22:56:07 541

原创 keil5搜索框还有左侧文件状态栏不见的问题

点击上面的window,弹出 reset view to default ,然后点击,再点击reset,就ok了。

2024-12-12 23:24:34 688

原创 lvgl定时操作

在 LVGL 中,通常有几种方式可以实现延时操作,具体方法取决于你的应用需求和上下文。

2024-12-11 15:02:48 457

原创 记录一下图片和图片按钮部件的异同

使用lv_img组件来展示静态图像。使用lv_btn和lv_img组合来创建可以点击的图片按钮,提供用户交互体验。希望这些信息对你理解它们之间的区别有所帮助!

2024-12-08 15:17:38 332

原创 设置对象长宽后立马获取长宽值为0

没有更新布局,更新布局后显示正常。

2024-12-05 12:44:34 130

原创 LVGL问题,使用外部sram定义报错error: #59 error: #167

这是因为 buf_1 在lv_port_disp_init(void)内定义导致。

2024-12-03 12:35:55 271

原创 volatile

变量时都直接从内存中读取最新的值,而不是从寄存器或编译器优化后的缓存值中访问。是 C 和 C++ 语言中的一个关键字,主要用于告知编译器某个变量的值可能会被程序之外的因素修改,因此编译器不能对其进行优化。在 ISR 修改的变量被主程序访问时,由于编译器可能认为该变量的值不会改变(因为没有显式修改),因此可能出现优化错误。嵌入式系统中,很多 MCU(如 STM32)操作外设时需要访问硬件寄存器,这些寄存器的值可能随硬件状态更新而改变。,编译器可能优化掉一些控制寄存器的操作,导致硬件无法正常运行。

2024-12-01 17:04:40 971

原创 LVGL加载器,led和列表学习(基于正点原子)

* 设置主体圆弧宽度 */ lv_obj_set_style_arc_width( spinner, 30, LV_PART_INDICATOR );

2024-11-25 22:45:15 680

原创 lvgl学习复选框部件和进度条部件(基于正点原子)

* 设置文本内容 */ lv_obj_set_style_pad_column( checkbox, 20, LV_STATE_DEFAULT );

2024-11-25 15:15:36 853

原创 LVGL学习之按钮,开关部件(基于正点原子)

lv_obj_has_state(switch1, LV_STATE_CHECKED) /* 返回值:bool类型,开 :1;/* 清除开关的状态 */注意,开关的主体部分是当开关 关闭的 的时候才能看到。

2024-11-25 00:12:46 468

原创 lvgl标签2(基于正点原子)

获取当前活动屏幕宽高*

2024-11-23 00:11:08 288

原创 LVGL标签学习,正点原子

/设置字体,要把字体宏打开不然会报错。

2024-11-22 11:12:56 762

原创 LVGL事件代码

【代码】LVGL事件代码。

2024-11-21 21:59:23 164

原创 LVGL学习之样式和时间,基于正点原子

示例:lv_obj_set_style_border_color(obj1, lv_color_hex(0x56c94c), LV_STATE_DEFAULT);其中 LV_PART_KNOB = 0x030000, /* 手柄或旋钮,用于调整参数值 */,一次 只能或同中类型一个,多的话会被覆盖。样式 设置在lvgl官网,选择v8.2的版本,overview,选择Style properties,我们可以看到有这样一些特性,点border进去(边界),导致你的设置不起作用。

2024-11-20 00:06:00 612

原创 lvgl移植问题报错:严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2001 无法解析的外部符号 “void __cdecl my_gui_demo(void)“

原因是原子提供的lvgl模拟器代码没有在混合使用 C 和 C++ 的项目中,的主要作用是解决 C 和 C++ 编译器在函数名处理上的差异(),确保 C++ 可以调用 C 的函数或代码。在自己创建的.h文件中加入。

2024-11-19 00:38:19 241

原创 LVGL移植带触摸、FreeRTOS、DMA2D、内部SRAM、LVGL自带内存管理。(基于正点原子)

在Define中添加STM32F4(我的是stm32f407zgt6,f1的写f1,h7的写h7),每个宏定义都是用英文逗号间隔的。有dma2d的配置,采用超时检测,如果要配置中断方式,需要在lv_port_disp_template.c对中断进行调用。在lv_port_disp_template.c显示缓冲刷新函数中第一个函数有用到dma2d,而且必须是rgb屏幕。在魔术棒的C/C++选项中,选择代码优化等级3和时间优化,对屏幕的帧数优化也很有帮助,但是对代码要求很高。MDK设置添加对应芯片定义。

2024-11-18 11:26:26 449

原创 lvgl移植 外部sram+自研内存管理算法(基于正点原子开发板)

0x68000000是外部sram的起始地址,1280*800是ltdc.c中定义帧缓存数组的大小,10K是malloc.h中最大管理内存10K,160是内存表大小,还有一个屏幕分辨率*2字节的宏定义。1,lv_port_disp_template.c中注释掉 //并且置1,在malloc.c中重写lvgl的内存分配函数。4.在lv_conf.h,把重写的函数和其头文件包含。3,在lv_conf.h中找到。

2024-11-18 01:38:45 526

原创 LVGL编译内存报错处理

2024-11-17 18:02:44 149

原创 FreeRTOS问题

在FreeRTOSconfig.h中包含FreeRTOS自己创建的.h文件报错,报了三百多个,都是官方源码,然后把在自己创建.h文件包含的例如下图所示的文件都放到自己创建的FreeRTOS.c文件中,编译就解决了。

2024-11-12 21:50:40 233

原创 freertos任务只运行一次(时钟频率错误)

/RTOS 系统节拍中断的频率。即一秒中断的次数,每次中断 RTOS 都会进行任务调度。改成了20,也就是50hz的频率,改回1000就正常了。在原子的时间片调度中将。

2024-11-05 00:07:51 401

原创 FreeRTOS报错

prvTaskExitError` 是一个 FreeRTOS 中的错误处理函数,用于处理任务异常退出的情况。当一个 FreeRTOS 任务意外地返回而不是调用 `vTaskDelete(NULL)` 来正确地删除自己时,这个函数就会被调用。以下是对该函数的详细解释及其工作原理的描述。看了下任务没有正确退出,加了 while循环后面就不报错了。打开port.c 271行,然后找到代码。

2024-11-04 22:38:53 615

原创 FreeRTOS的列表和列表项(Day06)

列表是 FreeRTOS 中的一个数据结构,概念上和链表有点类似,列表被用来跟踪 FreeRTOS中的任务。列表项就是存放在列表中的项目。列表相当于链表,列表项相当于节点,FreeRTOS 中的列表是一个双向环形链表。列表的特点:列表项间的地址非连续的,是人为的连接到一起的。列表项的数目是由后期添加的个数决定的,随时可以改变。数组的特点:数组成员地址是连续的,数组在最初确定了成员数量后期无法改变。在OS中任务的数量是不确定的,并且任务状态是会发生改变的,所以非常适用列表(链表)这种数据结构。

2024-10-29 21:07:07 704

原创 FreeRTOS临界区保护以及调度气的挂起与恢复(Day05)

什么是临界段:临界段代码也叫做临界区,是指那些必须完整运行,不能被打断的代码段。适用场合如:问题:什么可以打断当前程序的运行?中断,任务调度FreeRTOS 在进入临界段代码的时候需要关闭中断,当处理完临界段代码以后再打开中断。

2024-10-28 20:46:19 318

原创 FreeRTOSDay04(FreeRTOS中断管理)

简介:让CPU打断正常运行的程序,转而去处理紧急的事件(程序),就叫中断。

2024-10-24 23:52:07 753

原创 FreeRTOS的任务挂起与恢复(Day03)

此函数用于挂起任务,使用时需将宏 INCLUDE_vTaskSuspend 配置为 1。无论优先级如何,被挂起的任务都将不再被执行,直到任务被恢复。注意:当传入的参数为NULL,则代表挂起任务自身(当前正在运行的任务)任务恢复函数介绍(任务中恢复)任务中恢复被挂起函数:void vTaskResume(TaskHandle_t xTaskToResume)使用该函数注意宏:INCLUDE_vTaskSuspend必须定义为 1。

2024-10-23 19:52:59 244

原创 FreeRTOS学习中遇到的一些问题

应该是cong.h配置文件中的。

2024-10-23 19:23:42 131

原创 FreeRTOSDay2(任务创建与删除)

* 任务栈栈顶,必须为TCB的第一个成员 *//* 任务状态列表项 *//* 任务事件列表项 *//* 任务优先级,数值越大,优先级越大 *//* 任务栈起始地址 *//* 任务名字 */省略很多条件编译的成员} tskTCB;任务栈栈顶,在任务切换时的任务上下文保存、任务恢复息息相关注意:每个任务都有属于自己的任务控制块,类似身份证。

2024-10-21 23:27:57 147

原创 Day2FreeRtos移植(基于正点原子官方教程)

文件夹主要用于存放与特定微控制器或处理器架构相关的代码。这些代码实现了 FreeRTOS 内核所需的底层硬件接口功能,例如中断禁用和启用、任务上下文切换等关键操作。通过将这些依赖于硬件的部分集中在一个位置(即。文件夹),可以使得 FreeRTOS 更容易移植到不同的硬件平台上,并且保持了内核本身的独立性和通用性。Demo文件夹是FreeRtos的例程,第一个就是我们的F407ZG开发板FreeRtos例程。

2024-10-14 16:12:22 249

原创 FreeRtos2(基础知识)

1,任务调度简介(熟悉)调度器就是使用相关的调度算法来决定当前需要执行的哪个任务。

2024-10-14 10:44:06 317

原创 FreeRtos——1(优点以及使用场景)

裸机又称为前后台系统,前台系统指的中断服务函数,后台系统指的大循环,即应用程序。打游戏和回复信息,需要打完游戏才可回复信息,或者回复完信息才可打游戏。

2024-10-13 15:52:50 231

原创 LVGL学习Day1(硬件要求以及优化)

点击release选择8.2,点击code下载,lvgl的git地址:

2024-10-13 13:16:41 244

原创 ThinkBook14+打开应用缓慢

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy]将"VerifiedAndReputablePolicyState"的值设置为0,就正常了。之后软件启动特别慢。

2024-10-12 00:34:55 561

原创 低功耗实验

通过查找数据手册,发现stm32在低功耗模式有以下三种:睡眠模式,停止模式,待机模式。通过观察表格又可以发现,这三种模式都可以通过WakeUp按键上升沿触发,能耗方面:睡眠>停机>待机。下面贴上相关代码。

2024-09-12 17:00:34 248

原创 52.BKP实验

自学用1. 什么是BKP?备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。他们处在备份域里,当VDD电 源被切断,他们仍然由VBAT维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会 被复位。此外, BKP控制寄存器用来管理侵入检测和RTC校准功能。复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。

2024-09-10 19:40:46 239

原创 51.矩阵键盘实验

本次实验使用的是淘宝上常见的矩阵键盘,如下图,最左边和最右边的引脚为空,所以这里说的1引脚对应单片机从左往右数的第二个,第八个引脚对应倒数第二个引脚。原理图如下(从淘宝找的,有点模糊):从原理图看:引脚1关联的键位有:1 ,4,7,*。引脚2关联的键位有:2,5,8,0。引脚3关联的引脚:3,6,9,#。引脚4关联的引脚:A,B,C,D。引脚5关联引脚:1,2,3,A。引脚6关联引脚:4,5,6,B。引脚7关联引脚:7,8,9,C。引脚8关联引脚:*,0,#,D。

2024-09-09 17:48:04 220

原创 50.读写W25Q128

/定义片选信号,1为选中,0为未选中}while(0)//下面是W25Q128的指令表,在W25Q128官方手册第八章可以找到#define FLASH_ManufactDeviceID 0x90 //查询厂商设备号:16位#define FLASH_WriteEnable 0x06 //开启写使能#define FLASH_ReadStatusReg1 0x05 //读取SPI状态寄存器1#define FLASH_ReadData 0x03 //读取数据。

2024-09-06 03:02:53 700

原创 Linux实例在修改文件时遇到“Read-only file system ***”错误怎么处理?

未配置挂载模式,根文件系统/会被默认为只读挂载。使用VNC方式远程登录ECS实例。,需要将挂载模式修改为可读写。,需要将挂载模式修改为可读写。如下图所示,表示根文件系统。如下图所示,表示根文件系统。修改挂载模式为可读写。重启实例使修改生效。

2024-06-13 23:51:53 661

原创 Linux设置完共享文件夹后在cd/mnt/hgfs下找不到

/如果之前没有命令包则先执行sudo apt-get install open-vm-tools。ShareFile 就是我设置的共享文件夹。输入这行命令重启终端就 ok。如果成功设置了虚拟文件夹。

2024-05-30 17:20:49 734

原创 Make 编译报错gcc -Wall f1.c -o f1.o/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: In

由于粗心忘记在gcc 后加上 -c选项只编译,不连接成可执行文件,所以报错,加上 -c正确make。Makefile文件截图。4,6,8行加上 -c。

2024-05-30 01:26:30 149

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除