感谢EEPW推出的“ST NUCLEO-WBA55CG无线MCU开发大作战”活动,之前分享的过程贴链接如下:
1、 【STM32WBA55CG开发板】驱动iic接口的oled屏幕-电子产品世界论坛
2、【STM32WBA55CG开发板】移植arm-2d驱动单色oled屏幕-电子产品世界论坛
3、【STM32WBA55CG开发板】使用arm-2d制作电子书界面-电子产品世界论坛
4、【STM32WBA55CG开发板】蓝牙传书(使用微信小程序传输中英文字符串)-电子产品世界论坛
本次项目充分利用了WBA55CG的卓越性能和丰富的外设接口,成功驱动了I2C接口的OLED屏幕和SPI接口的micro SD卡。我们实现了将TXT格式的电子书文件存储在SD卡中,并在OLED屏幕上进行阅读的电子书功能。此外,借助板卡的BLE功能,我们开发了一个微信小程序,能够将单词发送到板卡上。接收到的单词会被存储在SD卡中,并通过单词卡功能进行阅读。这一创新应用完美诠释了我们的口号:“无线连接你的所见,让这个冬天更加特别”。
好了,接下来看一下项目所需要的硬件,如下图
一个oled屏幕,一张32GB的sd卡和卡座就可以了。
有了硬件,那我们就看一下接线图,如下表所示
元器件 | 管脚 | 单片机管脚 |
Oled屏幕 | SCL | B5 |
SDA | B8 | |
SD卡 | CS | A12 |
SPI1_SCK | B4 | |
SPI1_MISO | B3 | |
SPI1_MOSI | A15 | |
按键 | B1 | C13 |
B2 | B6 | |
B3 | B7 |
接着在介绍一下软件流程,如下图所示:
项目的主程序如下:
int main(void) { HAL_Init(); MX_GPIO_Init(); //。。。 f_mount(&fatfs,"",1); my_arm_2d_task_init(); /* Init code for STM32_WPAN */ MX_APPE_Init(NULL); while (1) { //ble处理函数 MX_APPE_Process(); //界面处理函数 my_arm_2d_task(); } }
代码就简单贴这么多,待会把整个工程放到附件中。
【功能展示】
接下来就展示一下这个项目的整个功能。
首先,会进入电子书、单词卡的选择界面,按下开发板的3个按键进行选择,界面如下图所示
开发板上三个按键的功能如下图
【电子书】
电子书阅读功能如下图
首先,用户需要选择想要阅读的书名。选定后,按下B2键即可进入阅读界面。
在阅读界面中,我们特别设计了一个进度条,用于直观地展示当前的阅读进度。在该界面,用户可以通过按下B1键来翻到下一页,而按下B2键则可以退出阅读模式。
【单词卡】
同样的,单词卡阅读功能的操作流程如下:
单词发送界面如下:
在单词发送界面中,用户可以输入想要发送的单词,然后点击发送按钮,系统将自动跳转至保存界面。如下图所示:
在保存界面,点击保存按钮即可将输入的单词保存到SD卡中。与此同时,设备的OLED屏幕上也会实时显示接收到的单词,具体效果如下图所示.
【B站视频连接如下】 https://www.bilibili.com/video/BV1bRckeFE4H/?share_source=copy_web&vd_source=e7f449a25bd01fddaf3bff34fc7c34e4
代码附件如下: