【XR806开发板试用】留言板功能开发

2024-01-17 10:52

本文主要是介绍【XR806开发板试用】留言板功能开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开发板简介

XR806开源鸿蒙开发板是一款基于XR806芯片设计,高度集成WiFi/BLE/常用外设,可供开发者进行方案评估、DIY或小规模产品研发,可广泛应用于智能家居、智能楼宇、智能城市和工业互联等领域。

  • 搭载OpenHarmony系统(已通过OpenHarmony兼容性认证),支持OTA升级,littlefs、spifs文件系统
  • 兼容802.11b/g/n,集成TCP/IP协议栈及WLAN协议栈、支持完整网络服务协议、快速接入hilink生态
  • 支持BLE 5.0,支持完整低功耗蓝牙服务GATT,SIG mesh完整协议栈
  • 内置低功耗PMU,支持智能低功耗管理系统,多级唤醒源设置;支持WiFi超低功耗保活,广泛应用各类低功耗应用场景
  • 丰富的io接口,板载15个可编程GPIO,支持常用外接接口,如SPI/UART/I2C/PWM/ADC/IrDA TX/RX
  • 全安全架构,TrustZone/安全总线/安全Memory/安全eFuse/安全启动/安全Debug接口/Flash实时加解密

感谢全志和极术社区提供这次试用机会。

开发板开箱

开发板非常小巧,如图所示

在这里插入图片描述

项目环境准备

开发文档还是比较全的,可以根据开发文档教程,一步一步搭建起来。

编写思路

  1. WiFi连接和数据接收
    • 在一个FreeRTOS任务中循环接收UDP数据报文
    • 从UDP数据中解析出留言内容
  2. 墨水屏显示
    • 使用E-Ink屏幕,在另一个FreeRTOS任务中循环显示留言
    • 使用墨水屏库函数清屏,设置显示坐标,写文字显示留言内容
    • 考虑显示内容排版、截断过长留言等
  3. 任务与队列
    • WiFi接收任务将解析后的留言内容提交到队列
    • 墨水屏显示任务从队列中获取留言内容
    • 使用二值信号量或者消息队列进行任务间同步

核心代码

配置FreeRTOS,在main函数中初始化FreeRTOS,创建任务和队列:

#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"#define WIFI_TASK_PRI 1
#define EINK_TASK_PRI 2QueueHandle_t msgQueue;int main() {msgQueue = xQueueCreate(10, sizeof(Message));xTaskCreate(wifiRecvTask, "WiFiRecv", 128, NULL, WIFI_TASK_PRI, NULL);xTaskCreate(einkDisplayTask, "EinkDisplay", 256, NULL, EINK_TASK_PRI, NULL);vTaskStartScheduler(); 
}

wifi接收留言信息

void wifiRecvTask(void *pvParameters) {WIFI_Init(); //初始化WiFiSocket socket = createUDPSocket();while(1) {ParseMessage(socket.receive()); //解析留言xQueueSend(msgQueue, &message, 0); //发送到队列}}

墨水屏展示

void einkDisplayTask(void *pvParameters) {EPD_Init(); //初始化墨水屏while(1) {Message msg;xQueueReceive(msgQueue, &msg, portMAX_DELAY); EPD_ClearScreen();EPD_ShowText(msg.text); //显示留言文本}}

尾声

节后把墨水屏焊接一下,驱动搞一下,到时候更新一下效果

这篇关于【XR806开发板试用】留言板功能开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/615788

相关文章

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.