【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

相关文章

Qt实现对Word网页的读取功能

《Qt实现对Word网页的读取功能》文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论... 目录1. 核心实现方式2. 基于QAxObject的COM接口调用(Windows专用)2.1 环境

Agent开发核心技术解析以及现代Agent架构设计

《Agent开发核心技术解析以及现代Agent架构设计》在人工智能领域,Agent并非一个全新的概念,但在大模型时代,它被赋予了全新的生命力,简单来说,Agent是一个能够自主感知环境、理解任务、制定... 目录一、回归本源:到底什么是Agent?二、核心链路拆解:Agent的"大脑"与"四肢"1. 规划模

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

Python实现繁体转简体功能的三种方案

《Python实现繁体转简体功能的三种方案》在中文信息处理中,繁体字与简体字的转换是一个常见需求,无论是处理港澳台地区的文本数据,还是开发面向不同中文用户群体的应用,繁简转换都是不可或缺的功能,本文将... 目录前言为什么需要繁简转换?python实现方案方案一:使用opencc库方案二:使用zhconv库

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D