这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【DigiKeyLet'sdo第二期墨水屏DIY活动】+过程贴-电子书/LED闪

共6条 1/1 1 跳转至

【DigiKeyLet'sdo第二期墨水屏DIY活动】+过程贴-电子书/LED闪烁

工程师
2024-09-13 00:40:23     打赏

使用Keil 5.38A环境设置到Raspberry Pi Pico板载LED灯闪烁及PWM控制的整个过程。

一、Keil 5软件增加编译环境

安装Pack支持包:

确保安装了适用于Raspberry Pi Pico的SDK(软件开发包)和CMSIS-Pack。

在Keil的Pack Installer中搜索并安装RP2040相关的包。

https://github.com/raspberrypi/cmsis-rp2xxx-dfp/releases/download/v0.9.5/RaspberryPi.RP2xxx_DFP.0.9.5.pack


安装好后的头文件:

image.png

创建新项目:

在Keil中创建一个新项目,选择RP2040作为目标设备。

配置项目设置,包括编译器选项、链接器选项等。

编写和编译代码:编写初始化GPIO;编译代码并检查是否有错误或警告。

新建好的工程:

image.png

二、硬件部分

确保Raspberry Pi Pico板上的LED灯连接到GPIO25。

使用MicroUSB线连接Pico板到电脑,以便下载和调试程序。

原理图:

image.png

三、软件部分

3.1 LED闪烁

初始化GPIO:设置GPIO25为输出模式。

LED控制函数:编写LED_ON()和LED_OFF()函数来控制LED的亮灭。

主循环:在main()函数中,使用while(true)循环来不断切换LED的状态,并使用延时函数控制闪烁频率。

PIN定义:

#define PICO_LED_PIN 25

点亮灯代码:

LED_ON();
Delay_ms(500);		
LED_OFF();
Delay_ms(500);	


四、程序下载指导

编译生成UF2文件:

在Keil中编译项目,生成UF2格式的固件文件。

image.png

下载固件:

按住Pico板上的BOOT按钮,同时插入MicroUSB线到电脑。

当电脑识别到一个名为“RPI-RP2”的U盘时,松开BOOT按钮。

将UF2文件复制到U盘中,文件复制完成后,Pico板将自动重启并运行新程序。

image.png


五、电子书

详细阅读LCD屏幕的驱动文档,了解屏幕的特性、通信协议和显示原理,再通过SPI驱动墨水屏。

选择合适的汉字字体,考虑字体的大小、清晰度和存储需求。将汉字预先转换为理解的格式,并存储在单片机的Flash或外部存储器中。如果屏幕较大,考虑将汉字或整个屏幕内容分块处理,逐块显示,以减少一次性处理的数据量。


电子书显示文字:

image.png

/*unsigned */ char *zs =
    "黄昏的路上,微风不燥,倦鸟归廊,希望的阳光落在这片树影斑驳之间,在那寂静的林木里隐隐现现,它沉淀了第一个努力的时光,也照亮了通往未来的前方。每一处角落都有挥洒汗水的身影。";


输出结果:

image.png

展示效果:


9月13日.gif


总结:

通过使用Keil 5.38A环境,成功地为Raspberry Pi Pico设置了编译环境,并实现了板载LED灯的闪烁控制。通过安装必要的SDK和CMSIS-Pack,为Pico板创建了开发环境。编写代码初始化了GPIO,并实现了LED灯的亮灭控制,利用循环和延时函数实现了LED的闪烁效果。在程序下载阶段,通过BOOT模式将编译生成的UF2文件下载到Pico板,实现了程序的快速部署。虽然本文主要关注LED控制,通过SPI驱动LCD屏幕显示电子书的流程,包括字体选择、数据预处理和屏幕分块显示等关键技术点,展示了Pico板在复杂应用中的潜力。









关键词: 墨水     电子书    

高工
2024-09-13 07:12:18     打赏
2楼

原来你是如此的优秀


专家
2024-09-13 08:47:12     打赏
3楼

不错啊


专家
2024-09-13 09:18:11     打赏
4楼

感谢楼主分享


助工
2024-09-13 09:58:25     打赏
5楼

做得很棒


院士
2024-09-14 10:23:12     打赏
6楼

这也太详细了吧!

图文并茂,有代码还有实验结果。妥妥地原创啊


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]