版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
©NXROBO2023星火派套件使用课程说明编写第一个程序线程的使用IO与串口SPI控制灯板©NXROBO20232编写第一个程序©NXROBO20233连接OpenHarmony开发板©NXROBO20234采用VisualStudioCode添加远程计算机,远程连接访问编写业务源码文件helloworld.c©NXROBO202351)打开开发目录spark_hm_pi/example该文件夹用于存放业务源代码,路径位于/home/spark/openharmony/openharmony3.1.6/device/board/nxrobo/spark_hm_pi/example编写业务源码文件helloworld.c©NXROBO202362)新建源码文件夹右键点击example,新建文件夹(用于存源码和gn文件)如创建新文件夹名01_helloworld(文件名自定义),新增helloworld.c(文件名可自定义)和BUILD.gn(文件名不可变)文件,其中helloworld.c为业务代码,BUILD.gn为编译脚本。编写业务源码文件helloworld.c©NXROBO20237代码段如下所示:编写业务编译构建文件BUILD.gn©NXROBO20238代码段如下所示:编写业务编译构建文件BUILD.gn©NXROBO20239该代码用于构建一个名为"helloworld"的静态库,其中包含了"helloworld.c"源文件,并且指定了需要包含的头文件目录"//utils/native/lite/include"。静态库的具体构建过程可能需要根据具体的构建系统和工具进行配置和操作。编写模块编译构建文件BUILD.gn©NXROBO202310刚刚编写的业务编译构建文件BUILD.gn位于/spark_hm_pi/example/01_helloworld/BUILD.gn路径中。现在编写的模块编译构建文件BUILD.gn位于/spark_hm_pi/example/BUILD.gn路径中。编写模块编译构建文件BUILD.gn©NXROBO202311业务编译构建文件BUILD.gn与模块编译构建文件BUILD.gn的区别如下:编写模块编译构建文件BUILD.gn©NXROBO202312代码段如下所示:编译©NXROBO202313若是在VisualStudioCode环境下,可以使用以下方式进行编译。点击界面右下角的“+”新增终端确保在路径~/openharmony/openharmony3.1.6下,输入以下命令进行编译即可:hbbuild-f编译©NXROBO202314烧录所需的具体文件位于/home/spark/openharmony/openharmony3.1.6/out/spark_hm_pi/spark_hm_pi文件夹中。Hi3861_wifiiot_app_allinone.bin文件即为烧录所需文件。烧录&调试©NXROBO202315烧录过程详细查看《星火派SPARK-HM-PI程序烧录说明》文档;关于如何在window上打开工程文件详看《将SPARK-HM-PI映射到window网络驱动盘》。烧录成功后,使用USB-typeC线将电脑与开发板的调试/烧录口连接,借助串口助手工具进行信息打印。连接方式如下图:烧录&调试©NXROBO202316打开串口助手sscom5.13.1,如下图所示:点击左下角“打开串口”:烧录&调试©NXROBO202317然后点击开发板上的“RESET”按键,即可看到发送到串口的信息,如下图所示:线程的使用©NXROBO202318线程的使用©NXROBO202319线程介绍©NXROBO202320线程是操作系统中能够独立运行的最小单位,它可以在同一个进程内同时执行多个程序段,从而提高程序的并发性和效率。线程在多任务处理中有广泛的应用,可以用于处理复杂的计算、网络通信、图形界面等任务。线程线程是进程中的执行单元,一个进程可以包含多个线程。线程共享进程的内存空间和资源,每个线程有自己的程序计数器、寄存器和栈。多个线程可以同时执行不同的任务,共享进程的上下文信息,因此线程之间的切换开销相对较小。进程进程是正在运行的程序的实例。它是操作系统资源分配和调度的基本单位,拥有独立的内存空间、文件描述符、句柄等系统资源。进程之间相互隔离,每个进程有自己的地址空间和独立的执行环境,它们通过进程间通信(IPC)的方式进行数据交互。线程初始化©NXROBO202321线程相关接口可以在路径:openharmony/openharmony3.1.6/kernel/liteos_m/kal/cmsis/cmsis_os2.h下查看,路径有可能不固定,请同学检查自己的cmsis_os2.h文件位置。该文件中最重要的一个是创建线程接口线程初始化©NXROBO202322osThreadAttr_t结构体成员介绍成员变量
Name描述name线程名称。attr_bits线程属性位。cb_mem用户指定的控制块指针。cb_size用户指定的控制块大小,单位:字节。stack_mem用户指定的线程栈指针。stack_size线程栈大小,单位:字节。priority线程优先级。tz_module线程安全配置。reserved线程保留参数。编写线程业务代码hello_task.c©NXROBO202323在example目录下,新建01hello_task(名字自定义)目录在01hello_task目录下,新建hello_task.c(业务代码文件,文件名自定义),BUILD.gn(业务编译构建文件,将业务代码构建成静态库,文件名固定)编写线程业务代码hello_task.c©NXROBO202324修改hello_task.c,在上个HelloWorld的基础上,尝试修改源码,加入线程,实现每秒打印一次Helloworld,每两秒打印一次HelloOpenHarmony。编写线程业务代码hello_task.c©NXROBO202325编写业务编译构建文件BUILD.gn©NXROBO202326关于创建01hello_task目录下的业务编译构建文件BUILD.gn,直接复制之前01_helloworld中的BUILD.gn即可,并且在include_dir(头文件路径)下面添加一行"//kernel/liteos_m/kal/cmsis",因为使用了cmsis_os2.h,所以要在BUILD.gn中添加对应的头文件所在路径(此处注意需要与自身系统中的cmsis_os2.h文件位置相同)。编写模块编译构建文件©NXROBO202327在example目录下的BUILD.gn文件内容中填入“01hello_task:hello_task”,编译&烧录&调试©NXROBO202328具体过程参照《鸿蒙开发板开发环境操作手册》与《星火派SPARK-HM-PI程序烧录说明》打开串口调试助手,即可出现以下信息:IO与串口©NXROBO202329IO使用介绍©NXROBO202330IO(输入输出)是指嵌入式设备与外部环境进行数据交互的接口。它包括数字io和模拟io两种类型。数字io数字io使用二进制编码表示状态,例如0代表低电平(off),1代表高电平(on)。常见的数字io设备包括led灯、按键开关、继电器等。数字io接口通常使用gpio(通用输入/输出)接口控制。模拟io模拟io通过模拟信号来传输数据,例如音频信号、温度传感器测量值等。模拟信号可以是连续的,因此使用模拟信号需要进行采样和量化。常见的模拟io设备包括摄像头、麦克风、温度传感器等。模拟io接口通常使用adc(模数转换器)或dac(数字模拟转换器)接口进行读取或输出。相关API©NXROBO202331IO复用©NXROBO202332星火派开发板的引脚资源有限,有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。可以根据数据手册查看IO引脚可复用的功能。串口介绍©NXROBO202333通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter,通常称作UART)是一种串行异步收发协议,应用十分广泛。UART工作原理是将数据的二进制位一位一位的进行传输。。当然两个设备使用UART串口通讯时,必须先约定好传输速率和一些数据位。串口相关API©NXROBO202334串口相关API©NXROBO202335示例©NXROBO202336查阅原理图可知,拓展灯板上有一个USB转串口的芯片(连接到UART1),可以通过type—c数据线连接,该接口与电脑进行串口通信,通过串口工具进行调试。下面将实现串口接收数据与发送数据实验。编写串口业务代码uart_ex_demo.c©NXROBO202337接着在05_uart_ex目录下新建uart_ex_demo.c文件,并且写入以下内容,更多详细代码查看实训指南编写业务编译构建文件BUILD.gn©NXROBO202338在05_uart_ex新建BUILD.gn(文件名不要自定义)文件,写入以下内容:编写模块编译构建文件BUILD.gn©NXROBO202339接着在example目录下,在BUILD.gn文件写入以下代码:编译&烧录&调试©NXROBO202340具体过程参照《鸿蒙开发板开发环境操作手册》与《星火派SPARK-HM-PI程序烧录说明》打开串口调试助手,按下开发板reset,可以看到串口打印出"goodmorning"。接下来就可以通过串口往开发板发送任意数据,开发板会将数据通过串口回传,在即可出现以下信息:SPI控制灯板©NXROBO202341SPI介绍©NXROBO202342SPI(serialperipheralinterface,串行外设接口)是一种用于连接微控制器和外设的串行通信协议。SPI通信总线由四根线组成,分别是时钟线(SCK)、数据输入线(SDI)、数据输出线(SDO)和从设备选择线(CS)。SPI特点©NXROBO202343高速传输:spi是一种高速传输协议,可以实现高达几百mhz的传输速率。全双工通信:spi可以同时进行发送和接收,因此通信效率更高。硬件实现:spi通信使用硬件逻辑实现,不需要大量的软件处理,因此更加高效。简单灵活:spi接口简单,易于实现和使用,并且支持多个从设备的并联。相关API©NXROBO202344相关头文件位置:device/soc/hisilicon/hi3861v100/sdk_liteos/include/hi_spi.hWS2812LED介绍©NXROBO202345WS2812的8x8灯板是一种由64个WS2812LED灯珠组成的点阵屏幕。每个WS2812LED灯珠都可以独立控制颜色和亮度,因此可以在这种灯板上显示彩色图像和动画。WS2812LED介绍©NXROBO202346WS2812LED灯珠使用一种特殊的通信协议,可以通过单个数据线连接多个灯珠。这意味着您只需要使用一个引脚来控制整个8x8灯板。要控制WS2812的8x8灯板,您需要使用单片机或微控制器来发送控制数据,并使用相应的库函数来设置每个LED灯珠的颜色和亮度。相关API©NXROBO202347图片取模介绍©NXROBO202348
图片取模是指将一幅图片转换为点阵数据的过程。这通常用于将图片显示在点阵屏幕(如LED点阵屏幕或LCD字符显示屏)上。
在图片取模过程中,首先需要将图片缩放到与目标点阵屏幕大小相匹配。然后,根据屏幕的颜色深度和显示能力,将图片的颜色数据转换为点阵数据。例如,对于单色点阵屏幕,图片的颜色数据需要转换为黑白二值数据。
最后,根据屏幕控制器的要求,将点阵数据进行适当的编码和排列。例如,对于横向取模的控制器,需要将点阵数据按行排列;对于纵向取模的控制器,则需要将点阵数据按列排列。
图片取模通常使用专门的取模软件来完成,也可以通过编程实现,具体可以网上搜索取模软件。“SPARK“图片取模©NXROBO202349
横向取模和字节倒序是点阵字库中常用的术语。
横向取模是指在点阵字库中,一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿园河流日
- 2026年幼儿园毕业季活动
- 2026年幼儿园帮扶活动汇报
- 第13课 让幻灯片产生动态效果教学设计-2025-2026学年小学信息技术(信息科技)第二册下粤教版
- 2026年蜜蜂蛰人幼儿园
- 2026年幼儿园合理配餐
- 2026年幼儿园毕业留档
- 2026年幼儿园大班红山果
- 第三节 测量:用电流表和电压表测量电阻教学设计初中物理沪科版2024九年级全一册-沪科版2024
- 人教版地理七上第四章第3节《世界的语言和宗教》教学设计与反思
- 文本信纸(A4横条直接打印版)模板
- 连云港市花果山风景区管理处2023年招聘工作人员笔试参考题库(共500题)答案详解版
- 润英联(中国)有限公司年产10万吨润滑油复合添加剂项目环评报告
- 反三违培训课件
- 国家义务教育质量监测科学四年级创新作业测试卷附答案
- 米糠的综合利用教学
- 造船企业管理 造船成本组成
- 应用光学(吉林联盟)知到章节答案智慧树2023年长春理工大学
- 疼痛的基础理论与知识图片
- 《产业基础创新发展目录(2021年版)》(8.5发布)
- 华北电力大学电力系统分析14年真题及答案
评论
0/150
提交评论