- 2024-09-30
-
回复了主题帖:
【匠芯创D133CBS】LVGL 切水果游戏
wangerxian 发表于 2024-9-29 17:46
不带NPU确实玩不了复杂的,图像识别的应该就玩玩人脸识别了。
是的,不过可惜官方的这款板卡没有预留CAM接口,不过另外一款有,主控都是一样的
- 2024-09-29
-
回复了主题帖:
【匠芯创D133CBS】LVGL 切水果游戏
wangerxian 发表于 2024-9-29 13:59
这个主控能玩AI吗
简单的可以,太复杂的可能性能不够,因为本身不带NPU
-
回复了主题帖:
【匠芯创D133CBS】LVGL 切水果游戏
wangerxian 发表于 2024-9-27 16:08
流畅程度很不错呀,看到切水果游戏,感觉回到十年前了。
这个主控性能很高,所以非常流程
- 2024-09-27
-
发表了主题帖:
【匠芯创D133CBS】LVGL 切水果游戏
本帖最后由 没有口袋的哆啦 于 2024-9-27 11:28 编辑
大家好,时隔几天我又来更新了,我们的测评也已经接近尾声了,在最后我再给大家带来一个有意思的实验,那就基于LVGL的切水果的游戏,这个游戏是大佬开源的,在此处我只是对其进行了移植。关于LVGL我在上一篇已有非常详细的讲解,不明白的小伙伴可以翻看我上一篇文章。
首先我们在menuconfig中选择切水果的选项,当然在此之前需要做一些前期工作,官方的教程已经非常详细所以我就不再赘述,不明白的小伙伴可以自行浏览官方的教程
然后就是保存并退出,再进行编译烧录即可,我们直接看成品效果
[localvideo]50eabbd0fbabf73fc51105bb48c16c61[/localvideo]
这里需要注意的是不要创建其他的大型任务,否则可能会导致内存不够用
这里我就遇到花屏的问题,目前我并没有去查原因,因为并不影响玩游戏,欢迎各位在评论区留言评论、讨论
- 2024-09-19
-
回复了主题帖:
【匠芯创D133CBS】LVGL 之植物大战僵尸
秦天qintian0303 发表于 2024-9-19 08:51
这种游戏直接有现成的工程吗?真不错
你私信我给你发群号,你去添加大佬的群,群文件里面有
- 2024-09-18
-
发表了主题帖:
【匠芯创D133CBS】LVGL 之植物大战僵尸
本帖最后由 没有口袋的哆啦 于 2024-9-18 17:32 编辑
大家好,昨天是中秋,在这里祝各位小伙伴中秋快乐,今天我们来学习一个有意思的项目,他就是LVGL(Light and Variables Graphics Library,以下简称LVGL),然后来移植一个基于LVGL的植物大战僵尸。
介绍:(以下介绍均来自LVGL中文在线文档)
LVGL(Light and Variables Graphics Library)是一个免费的开源图形库,提供了创建具有易于使用的图形元素、优美的视觉效果和低内存占用的嵌入式GUI所需的一切。
特性:
-功能强大的构建块,如按钮、图表、列表、滑块、图像等。 -具有动画、抗锯齿、不透明度和平滑滚动的高级图形 -各种输入设备,如触摸板、鼠标、键盘、编码器等。 -多语言支持UTF-8编码 -多显示器支持,即同时使用多个TFT单色显示器 -具有类似CSS样式的完全可自定义图形元素 -硬件独立:与任何微控制器或显示器一起使用 -可扩展性:能够使用少量内存(64KB闪存、16KB RAM)运行 -支持操作系统、外部内存和GPU,但不是必需的 -单帧缓冲操作,即使具有高级图形效果 -用C编写以实现最大兼容性(与C++兼容) -在没有嵌入式硬件的PC上启动嵌入式GUI设计的模拟器 -绑定到MicroPython -快速GUI设计的教程、示例和主题 -文档可在线或以PDF格式获取 -麻省理工学院许可下的免费开源
软硬件需求:
基本上,每个能够驱动显示器的现代控制器都适合运行LVGL。最低要求是:
16, 32 or 64 bit 微控制器或处理器
> 推荐 16 MHz 时钟速度
Flash/ROM: > 基本要求:64 kB (> 推荐: 180 kB )
RAM:
静态RAM使用率:~2 kB,具体取决于使用的功能和对象类型
Stack: > 2kB (> 8 kB is recommended)
Dynamic data (heap): > 4 KB (> 32 kB is recommended if using several objects). Set by LV_MEM_SIZE in lv_conf.h.
Display buffer: > "Horizontal resolution" pixels (> 10 × "Horizontal resolution" is recommended)
One frame buffer in the MCU or in an external display controller
C99 或更新的编译器
Basic C (or C++) knowledge: pointers, structs, callbacks.
按正常的流程是需要我们自己移植LVGL的,但是匠芯创的SDK中官方已经为我们移植好了,所以我们就不需要自己去移植了直接使用就行了。
我们首先下载LVGL_PVZ(植物大战僵尸)的源码,然后按照官方的教程添加到SDK中。
注:LVGL_PVZ是一位叫“老虎爱3D”的大佬编写的,源码需要添加QQ交流群获取,想要源码的小伙伴私信我获取群号
我们进入menuconfig中选择好PVZ并保存
然后我们直接烧录并编译,然后就能看到游戏界面了,由于“老虎爱3D”大佬是按照480X320分辨率来制作的这款游戏,而素材也是按480X320分辨率来制作的所以游戏并不能全屏。而修改适配我们这个板卡的屏幕的话工作量较大所以我就不去修改了,我们直接使用,另外需要注意的是我们的其他任务(建议关掉其他任务)不能占用太高的RAM,否则会导致游戏卡住或出现花屏等现象
我们来看看视频效果看看
[localvideo]889d5573893f75acc67106cec335804e[/localvideo]
LVGL可以说是一个非常好用的图形系统,我们使用它可以制作各种优美的界面,还支持图形化编辑,这里我推荐使用GUI-Guider,感兴趣的小伙伴可以自行了解一下,后面我还会出一些和多媒体相关的教程,欢迎大家在评论区留言,你们的支持就是我最大的动力
- 2024-09-09
-
发表了主题帖:
【匠芯创D133CBS】MP3解码与播放
本帖最后由 没有口袋的哆啦 于 2024-9-12 14:10 编辑
大家好,前两章我们学习了WAV音频的播放,今天我们就来学习一下MP3播放,与WAV不同,WAV属于无损格式,它里面的数据流都是未经过压缩的,它的音质比MP3要好且无需解码,但是它有一个缺点,那就是它的体积。他的体积通常是MP3的数倍,这会占用我们大量的存储空间,尤其是对于我们嵌入式设备来说,这非常不友好,于是这个时候就需要采用MP3格式了。
MP3简介:
MP3全称为MPEG Audio Layer 3,它是一种高效的计算机音频编码方案,它以较大的压缩比将音频文件转换成较小的扩展名为.mp3的文件,基本保持源文件的音质,MP3是ISO/MPEG标准的一部分,
ISO/MPEG标准描述了使用高性能感知编码方案的音频压缩,此标准一直在不断更新以满足“质高量小”的追求,现已形成MPEG Layer1、Layer2、Layer3三种音频编解码方案,分别对应MP1、MP2、MP3 这三种声音文件
MPEG(Moving Picture Expert Group)是ISO下的一个动态图像专家组,它指定的MPEG标准广泛的应用于各种多媒体中,MPEG标准包括视频和音频标准,其中音频标准已制定出MPEG-1、MPEG-2、MPEG-2 ACC、MPEG-4。MPEG-1和MPEG-2标准使用同一个音频编解码族Layer1、2、3,MP3绝大多数使用的是MPEG1标准
MP3音频压缩包含编码和解码两部分,编码是将原始信号转换成电平信号的过程,解码即是逆过程,MP3 采用了感知音频编码(PerceptualAudio Coding)这一失真算法。人耳感受声音的频率范围是20Hz-20kHz,MP3截掉了大量的冗余信号和无关的信号,编码器通过混合滤波器组将原始声音变换到频率域,利用心理声学模型,估算刚好能被察觉到的噪声水平,再经过量化,转换成Huffman编码,形成MP3位流。解码器要简单得多,它的任务是从编码后的谱线成分中,经过反量化和逆变换,提取出声音信号。
MP3文件数据由多个帧组成,帧是MP3文件最小组成单位。每个帧又由帧头、附加信息和声音数据组成。每个帧播放时间是0.026秒,其长度随位率的不同而不等。有些MP3文件末尾有些额外字节存放非声音数据的说明信息(如歌手、专辑、发行年月等)。
由于MP3是经过编码、压缩的所以我们想要播放的话就得对其进行解码,解码有很多种方法,比如外置解码芯片(例如vs1003)或者使用内置的硬件解码器(大多数嵌入式芯片是没有的),再或者使用软件解码,今天我们使用的就是软件解码。这里匠芯创官方已经帮我们移植并封装好了MAD库,我们就不需要自己动手了,十分方便。
MAD简介:
MAD(libmad)是一个开源的高精度MPEG音频解码库,支持MPEG-1标准。libmad提供24-bit的PCM输出,完全定点计算,非常适合在没有浮点支持的嵌入式硬件平台上使用。使用libmad提供的一系列API可以实现MP3文件的解码。
源码下载链接:https://sourceforge.net/projects/mad/
我根据匠芯创官方提供的demo进行修改简化了一下得到了user_aduio,首先在menuconfig中打开user_aduio并选择PWM输出方式(TM8211还未移植好)
然后来看我修改的user_audio,就这么一些函数
再来看具体使用,由于封装过了,所以使用也是比较简单,第一步创建解码器,第二部设置好音量,第三步传入要解码播放的MP3文件即可
然后在mian.c创建一个播放任务并传入需要播放的MP3路径,再编译烧录
插上串口,可以看到代码已经成功运行了
接下来就可以慢慢欣赏音乐了
[localvideo]a1c86524378cbc944f175fbc85e568f4[/localvideo]
解码部分的代码我就不细讲了,因为网上太多讲解的了,感兴趣的小伙伴可以自行查阅,需要本章全部代码的小伙伴请私信获取,下一章我们来玩LVGL
- 2024-09-04
-
发表了主题帖:
【匠芯创D133CBS】音频播放之I2S(IIS)驱动外置CODEC
本帖最后由 没有口袋的哆啦 于 2024-9-6 18:35 编辑
大家好,我又来了
这一章我们要学习的内容是I2S也可以叫IIS,学名叫做数字音频传输标准,IIS协议是一种串行协议,他和SPI有一点点像,通常用来传输音频数据流,由飞利浦发明。支持单工、半双工、全双工传输模式,支持主从机模式,支持多声道。
不过随着技术的发展,在统一的I2S硬件接口下,出现了多种不同的I2S数据格式,可分为左对齐(MSB)标准、右对齐(LSB)标准、I2S Philips 标准、PCM协议(PCM严格来说不属于IIS协议)。
对于所有数据格式和通信标准而言,始终会先发送最高有效位(MSB 优先)。
发送端和接收端必须使用相同的数据格式,确保发送和接收的数据一致。
(1).I2S Philips 标准
使用LRCLK信号来指示当前正在发送的数据所属的声道,为0时表示左声道数据。LRCLK信号从当前声道数据的第一个位(MSB)之前的一个时钟开始有效。LRCLK信号在BCLK的下降沿变化。发送方在时钟信号BCLK的下降沿改变数据,接收方在时钟信号BCLK的上升沿读取数据。正如上文所说,LRCLK频率等于采样频率Fs,一个LRCLK周期(1/Fs)包括发送左声道和右声道数据。
对于这种标准I2S格式的信号,无论有多少位有效数据,数据的最高位总是出现在LRCLK变化(也就是一帧开始)后的第2个BCLK脉冲处。这就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。
(2).左对齐(MSB)标准
在LRCLK发生翻转的同时开始传输数据。该标准较少使用。注意此时LRCLK为1时,传输的是左声道数据,这刚好与I2S Philips标准相反。
(3).右对齐(LSB)标准
声音数据LSB传输完成的同时,LRCLK完成第二次翻转(刚好是LSB和LRCLK是右对齐的,所以称为右对齐标准)。注意此时LRCLK为1时,传输的是左声道数据,这刚好与I2S Philips标准相反。
(4).PCM协议
PCM接口和I2S接口引脚一致 - 帧同步时钟、位时钟,主要有两种模式:短帧、长帧。
I2S信号线:
I2S总线主要有3个信号线:
(1).串行时钟BCK
串行时钟BCK,对应数字音频的每一位数据,BCK都有1个脉冲。BCK的频率 = 声道数 * 采样频率 * 采样位数。
(2).字段选择信号LRCK
字段选择信号LRCK,也叫WS,用于切换左右声道的数据。WS的频率 = 采样频率。
字段选择信号LRCK表明了正在被传输的声道。I2S Philips标准WS信号的电平含义如下:
LRCK为0,表示正在传输的是左声道的数据;
LRCK为1,表示正在传输的是右声道的数据。
(3).数据线DOU、DIN
串行数据DOU、DIN,就是用二进制补码表示的音频数据。I2S串行数据在传输的时候,由高位(MSB)到低位(LSB)依次进行传输
除以上这些信号线外还有一个MCLK,这是用于给codec提供主时钟的,部分codec不需要使用它
IIS我们了解了后再来看codec,codec其实就是一个DAC芯片,我采用的codec型号是TM8211,因为它性价比非常高,板子是我自己制作的。它支持16bit的双声道音频输出,我还在输出端添加了两个音频功放,这样就能直接驱动扬声器了。
它的接线端子排列从左到右分别是:EN、5V、GND、DIN、LRCK、BCK
我们只需要将GND、DIN、LRCK、BCK这些信号线连接到板卡即可,EN默认是可用状态,供电我们使用另外的电源就行
然后再来看软件部分,由于匠芯创官方在SDK中并没有适配我所使用的codec所以我们得自己动手了,因为codec类型太多官方不可能都适配完,不过官方支持了大部分热门的型号,然后经过楼主1天得折腾, 终于实现了。(匠芯创官方可以看看我适合当FAE不,正好最近在找工作,哈哈哈)
代码主要就两部分,IIS配置和数据读取搬运
这一部分就是IIS配置代码,首先将IIS配置为主机模式,然后将协议标准配置为右对齐标准,时钟相位为低,通道数、数据宽度这些动态获取即可,然后启动DMA传输,这样更省CPU资源
配置好后我们只需要循环的给IIS”喂“数据即可
然后再来看看效果,比PWM音频的音质略好一点,不过各有优缺点,PWM成本低,对于一般的应用可以满足要求,IIS成本略微高一点但是可以满足较高的应用要求。
[localvideo]66141f36a7a78273fbd2e29859781e07[/localvideo]
欢迎大家评论留言,你们的支持就是我的动力,下一章我们来学习MP3解码,
需要本章节示例代码的请私信获取哦
- 2024-09-03
-
发表了主题帖:
【匠芯创D133CBS】音频播放之PWM数字音频
大家好这一章我们来学习一下音频的播放,声音是由不同频率组成的,录音时会将声音编码成数字存储成文件,而播放声音相反,在将文件转换为声音时需要用到一个重要的东西,它叫做CODEC,它能将数据转换成电压,其实它就是DAC,匠芯创D133CBS的板卡上提供了2种音频播放的方法,一种是PWM音频,另一种是IIS音频,我们这一章要讲的是PWM音频。
我们首先看电路图,这里官方用了RC滤波,这是必不可少的,pwm音频都需要这样滤波否则会有杂音,U14是一个音频功放,也叫做PA
然后我们再来讲WAV音频,WAV属于无损音频文件格式,因为他的数据是不压缩直接存储的,所以他的音质比MP3等格式要好很多。而且它由于没有压缩数据在播放时也不需要复杂的解码,但他有个缺点,就是文件会非常大,通常是MP3大小的10倍以上,但是这里我们使用到了sd卡所以不需要担心文件过大。
我们再来看看代码,这里我们直接使用官方的DEMO
圈出来的这一部分就是PWM音频的初始化,主要是设置通道和频率以及比特率,这里需要根据音乐文件的不同进行动态调整
这一部分就是从文件中读取音乐数据流然后不断的送入PWM进行输出,直至文件结束
然后我们编译烧录并接上扬声器来看看效果,实际音质还是非常好的,但是我上传前进行了视频压缩,所以画质和音质都没有现场那么好了,小伙伴们可以自己动手试试
[localvideo]c74211ee36075c1a7c21741088bd07e9[/localvideo]
下一章我们讲解一下IIS来播放,IIS的音质会比PWM要好一点,这一章到这里就结束了有疑问的小伙伴欢迎提问
- 2024-08-26
-
发表了主题帖:
【匠芯创D133CBS】挂载SD卡文件系统读写测试
大家好,今天我们来玩一点不一样,我看论坛里面其他的小伙伴都在评测一些基础外设,那么我就不出基础外设的教程了,我们来玩一些高级外设,今天我们就来玩一下sd卡。
电脑上的有磁盘的概念,这样会使得我们存储文件非常方便快捷,而我们嵌入式单片机上一般要存储时会使用到eeprom或spi flash,这样相比于电脑上那样存文件来说非常的不便,那么有没有办法让他和电脑上一样方便呢?当然是有的,这里就要接触到一个新的概念了,它就是文件系统
简介:
负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。即在磁盘上组织文件的方法。
常用的文件系统有以下:
FAT / FATFS
NTFS: 基于安全性的文件系统,是Windows NT所采用的独特的文件系统结构
CDFS:CDFS是大部分的光盘的文件系统
exFAT
那么看到这里的小伙伴会不会觉得头大呢,这个文件系统我该怎么用代码去实现呢?起始啊我们写代码就像我们人走路一样,你走过的大多数路别人已经走过了,那么代码也是一样的,文件系统的代码已经有大佬写过了,并且开源了出来,这里我们只选一个常用的来介绍一下:
FATFS文件系统:
FATFS是一个完全免费开源的FAT 文件系统模块,专门为小型的嵌入式系统而设计。完全用标准C 语言编写,所以具有良好的硬件平台独立性。可以移植到8051、PIC、AVR、SH、Z80、H8、ARM 等系列单片机上而只需做简单的修改。它支持FATl2、FATl6 和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对8 位单片机和16 位单片机做了优化。
FATFS文件系统特点:
Windows兼容的FAT文件系统(支持FAT12/FAT16/FAT32)
与平台无关,移植简单。全C语言编写。
代码量少、效率高。
多种配置选项
支持多卷(物理驱动器或分区,最多10个卷)
多个ANSI/OEM代码页包括DBCS
支持长文件名、ANSI/OEM或Unicode
支持RTOS
支持多种扇区大小
只读、最小化的API和I/O缓冲区等
那么看到这里相信大家已经了解一些概念了,通俗的来说文件系统就是文件在硬盘或sd中的排列结构,我们需要遵循这个结构去读、写。
值得一提的是我们今天不需要自己去移植fatfs代码到D133CBS上了,匠芯创和RT Thread官方已经做好了适配,我们只需要直接使用即可(这一点必须好评,因为这在项目开发中会大大节省时间),下面我将手把手教大家使用。
先看我的代码:
首先创建一个叫D133.txt的文件,并打开它,待打开成功后写入一些内容测试下
我们编译并烧录测试看看,接上串口看一下日志,可以看到已经显示成功了。
把sd卡拔下来并通过读卡器连接到电脑可以看到已经写入成功了
接下来我们测试一下读文件,我们把sd卡中创建一个read_test.txt文件,然后在里面写上一些内容
然后在代码里面打开这个文件,并读取里面的内容然后在日志中打印出来:
然后编译并烧录,接上串口看日志,可以看到日志中已经打印出了我们的文件内容了:
总结: 我们在使用了文件系统后可以实现很多之前单片机做不了的事情,比如保存log到sd卡,从sd卡中读取配置文件等,这也为我们后面的音频录制和音频播放实验打下了基础。
大家不懂的欢迎留言评论
- 2024-08-24
-
发表了主题帖:
【匠芯创D133CBS】cmremark跑分、性能测试
大家好,拿到匠芯创D133CBS板卡也有一段时间了一直没做性能测试,我看论坛里面其他小伙伴也没有做性能测试,今天我们就来跑个分。手机跑分有安兔兔等工具,电脑有鲁大师,那么嵌入式用什么跑分呢,当然是coremark了(还有许多别的,这里我们用coremark),感兴趣的小伙伴可以去了解一下别的。
话不多说我们直接开始,首先在pack包管理中打开coremark,这里匠芯创官方已经移植好了所以我们不需要再去移植了。然后再main.c中添加以下代码
然后创建一个任务来运行coremark跑分
编译烧录运行,等一小会就能看到结果了,分数是1565分,这个分数直接对标友商的H7系列,可以说是非常优秀了当之无愧的国产强芯
好了这一章主要是记录和分享匠芯创D133CBS的cmremark跑分,下一章我会出fatfs的移植与挂载sd使用测试,欢迎各位小伙伴留言评论
- 2024-08-19
-
发表了主题帖:
【匠芯创D133CBS】GPIO输入输出教程
上一篇文章我们讲了环境搭建和编译烧录等,这一篇我们简单的讲一下GPIO的输入输出操作,由于比较简单,所以文章也不会太长,后面我会带大家逐渐学一些难度较高的内容
话不多说,直接开始。
我们打开电路图找到按键的GPIO,可以看到是GPIO15
然后找一个空闲的引出的引脚来驱动LED,这我选择I2S_DIN,也就是PD11
这里直接看我写好的代码,我们使用rt_pin_mode这个函数来设置好GPIO的模式然后就能使用rt_pin_read函数和rt_pin_write函数来操作GPIO了,我写了一个简单的按键程序,当按键按下时串口会打印KEY_down并在PD11输出高电平
编译烧录测试,然后可以看到按下按键时已经有打印了
然后找一个LED接上,正极接I2S_DIN,负极接GND(记得串联电阻)然后按下按键就可以看到灯亮了
怎么样,是不是非常简单,大家去动手试试吧
- 2024-08-12
-
发表了主题帖:
【匠芯创D133CBS】开箱及环境搭建(串口输出Hello World)
这里首先对EEWORLD和匠芯创官方标识感谢,感谢能给我这一次评测、体验的机会,接下来咱们开始激动人心的拆快递
外包装:
里面还有一层
撕开后还有一层泡泡
最后就是一层防静电袋保证(这一点好评)
然后让我们来看看板子的庐山真面目
正面:
背面:
再来一张国产强芯的特写:
然后上电看看:
做工评价:
1:正面显示屏加了金属框进行固定和保护,同时还起到了类似屏蔽罩的抗干扰作用。
2:PCB走线布局非常规整,flash,tf卡,USB等速度较高的信号线都做了差分、等长,这一点非常重要。值得夸奖,另外布局方面也采用模块化布局,使板子更适合拿来做项目评估和学习,其次板卡上电源部分还使用了昂贵的固态电容。
3:板卡接口方面非常丰富,有USB-device、USB-host、SD卡、UART、RS485、以太网、JTAG、I2C、I2S等
看到这里可能会有朋友说了,楼主是不是收了原厂的好处了,讲了半天讲的全是优点,这板子有那么好吗?当然不是了,这板子还有缺点的,我发现的缺点就是板子正面的助焊剂居然没洗掉
请看图
可以看到有很多阻焊剂附着在板子上,不过我认为这是可以在接受范围内的,毕竟不可能十全十美,只要不影响咱们使用就行
接下来咱们开始环境搭建:
首先拉取SDK:
然后双击打开win_cmd.bat
在命令行中输入scons --apply-def=11设置为我们的板卡
接着使用编辑器打开图中目录下的main.c文件 并在最后加入我们的打印,这里我使用的是VS code
编辑好后保存,并在命令行中输入scons进行编译,等待编译完成
编译好后在如下目录可以找到镜像
我们使用AiBurn进行烧录
烧录好后接上串口来看看,可以看到已经有Hello World输出了
怎么样,环境搭建和Hello World教程到这就结束了,各位小伙伴学会了没有,是不是非常简单
遇到问题的小伙伴可以在评论区留言哦
- 2024-08-06
-
回复了主题帖:
测评入围名单: 工业级智能控制MCU 匠芯创D133CBS,追加了3块
个人信息无误,确认可以完成测评分享计划
- 2024-02-03
-
回复了主题帖:
测评颁奖: 国产高性能运动控制MCU 先楫HPM5361
感谢eeworld官方和先辑官方,我的奖品请于春节后发放(2月18日后),因为老家不方便收快递,谢谢:victory:
- 2024-01-22
-
回复了主题帖:
【国产高性能运动控制MCU 先楫HPM5361】LVGL_GUI移植
lugl4313820 发表于 2024-1-16 21:27
我也准备学习这个板子,以后得麻烦你了,向你请教一下。
可以的,大家一起学习
- 2024-01-16
-
回复了主题帖:
【国产高性能运动控制MCU 先楫HPM5361】LVGL_GUI移植
haocede 发表于 2024-1-15 08:42
你这个涉及到软件集成吗,兄弟,有相关于软件集成的资料学习吗,入门级别的那种,半路出家,基础知识很薄弱 ...
不太懂哦,我这个属于嵌入式软件方向
-
回复了主题帖:
【国产高性能运动控制MCU 先楫HPM5361】LVGL_GUI移植
lugl4313820 发表于 2024-1-13 23:08
接下来移植结束了,如果大家感兴趣我下次再出一个tf卡加fatfs文件系统的移植,由于时间少,所以教程也是写 ...
没有使用到扩展内存哦,不过我lvgl缓冲区设置的比较小,只设置了不到32k
- 2024-01-13
-
发表了主题帖:
【国产高性能运动控制MCU 先楫HPM5361】LVGL_GUI移植
大家好,好久不见哈,由于年底了工作太忙(客户都希望自己的项目能在年前结案)所以导致拖更了一段时间,不好意思哈。因为我发现论坛中对于这块板卡没有太多的干货教程,大多数都是串口,GPIO等教程,所以这一期我们来使用先辑的板卡移植一下LVGL试试看。这一章教程基于我前面发布两章TFT液晶教程和电阻触摸屏教程,所以没有基础的小伙伴麻烦往前翻翻。
首先我们需要了解一下什么是LVGL,LVGL是来自国外的一款轻量级开源嵌入式GUI系统,它可以轻易的运行在各种嵌入式设备上,比如我们的先辑板卡。废话不多说,我们自己直接上干货,
首先准备好lvgl源码(从github上获取或从文章附件获取):
然后打开我们上一篇文件的工程,将lvgl源码添加进来:
然后我们将lv_port_disp_template.c的disp_flush函数改为下图所示:(这一步很重要如果不对的话会导致屏幕无显示或花屏)
然后把lv_port_indev_template.c中的touchpad_read改成下面这样(如果不对的话会没触摸)
然后就是在main.c中添加对应的头文件
为LVGL创建一个心跳任务:
再创建一个事务处理函数
然后就好了,效果非常的不错,哈哈是不是很快很简单,大家动手试试吧
接下来移植结束了,如果大家感兴趣我下次再出一个tf卡加fatfs文件系统的移植,由于时间少,所以教程也是写的短,不过内容绝对都是干货,有问题可以在评论区留言,我看到了会回复的
老规矩,没有积分的小伙伴评论区留下邮箱
- 2023-12-27
-
发表了主题帖:
【国产高性能运动控制MCU 先楫HPM5361】电阻触摸屏驱动
大家好,有一段时间没更新了,原因就是工作太忙了,这期我们是驱动电阻触摸屏,是属于上一篇帖子的后续,这两期的教程都是为了后面的教程做铺垫的。预计后面会出LVGL的教程以及FFT音乐频谱,如果浏览量高的话会考虑出一篇移植NES模拟器的教程,让大家也能在单片机上玩游戏。
话不多说,直接开始图文教程,直接打开上一篇的文章的代码 ,并在代码中添加触摸驱动(我会上传到附件)
这个触摸驱动是某宝卖家提供的,我们修改一下IO就能用,将IO修改成如下
然后我们一定记得要初始化IO口
然后我写了一个简单的测试代码
我们来编译烧录看看效果
可以看到我们的触摸就已经成功的实现效果了,下一期我们来移植LVGL试试看,这篇帖子很短但内容也都是精华哦!!!!
老规矩,没有积分的小伙伴评论区留下邮箱,设置积分只是不需要被人白嫖而已,望大家理解