当前位置: 首页 > news >正文

江门网站建设推荐wordpress设置可写

江门网站建设推荐,wordpress设置可写,网站开发有什么网站,宁波方正建设监理网站一、需求描述#xff1a; rk3568开发板运行OpenHarmony4.0#xff0c;通过开发板上的uart串口与电脑进行通讯#xff0c;相互收发字符串。 二、案例展示 1、开发环境#xff1a; #xff08;1#xff09;rk3568开发板 #xff08;2#xff09;系统#xff1a;OpenHar…一、需求描述 rk3568开发板运行OpenHarmony4.0通过开发板上的uart串口与电脑进行通讯相互收发字符串。 二、案例展示 1、开发环境 1rk3568开发板 2系统OpenHarmony 3电脑Windows11笔记本串口调试助手 4Deveco StudioevEco Studio 4.0 Release 4.0.0.600 2、下载并运行开发案例 下载开发案例使用Deveco Studio打开运行编译、下载应用到rk3568开发板。开发板运行demo界面如下图所示。(.hap应用文件见附件) 1点击波特率选择按钮选择相应的波特率点击地址输入框输入使用的串口的设备地址这里以uart5设备地址/dev/ttyS5为例选择波特率9600。    2将开发板通过串口转USB的转接线将开发板与笔记本连接起来电脑打开一个串口调试助手如下图所示。 3开发板点击“开启按钮”打开串口然后点击“发送”按钮想电脑通过串口发送输入框的字符串电脑运行的串口调试助手接信息并回显接收到的字符串同理电脑通过串口调试助手想开发板发送字符串开发板接收信息并在回显框中回显接收到的字符串如下图所示。 4测试效果 OpenHarmony串口通讯展示 注意运行demo应确保开发板的串口节点已被引出可用且读写权限已被允许 三、应用开发流程 该应用的开发使用NAPI方式来编写使用串口的NAPI函数通过这些函数来对串口进行设置打开发送和接收数据NAPI使用详见NAPI篇。在应用界面编写中引用NAPI函数进行逻辑构建完成应用开发。 1、应用界面编写Index.ets import BQNapi from libentry.so;//引入NAPI import promptAction from ohos.promptAction;const TAG uartToComputerEntry Component struct Index {State isStart: boolean false;private dateTime: Date new Date();private scroller: Scroller new Scroller()State receiveMessage: string ;State sendMessage: string https://www.bearkey.net/;State currentUart: string ;private UartPort: string /dev/ttyS5private UartBand: string[] [9600, 19200, 38400, 57600, 115200]private UartBand_N: number[] [9600, 19200, 38400, 57600, 115200]State currentUartBandIndex: number 0State bandRate: number 0;private fd: number -1;private setIntervalID: number -1;aboutToAppear() {// this.fd BQNapi.open_port(this.currentUart, 115200);// console.log(TAG, 打开串口${this.currentUart},ret${this.fd})this.setIntervalID setInterval(() {//判断是否有串口开启if (this.fd 0) {//获取开启状态this.isStart true//获取波特率this.bandRate BQNapi.getBandRate(this.fd)let temp: string BQNapi.series_receive_data(this.fd);if (temp -1) {console.log(TAG, 未接收到数据或接收失败);} else {this.dateTime new Date();let year: number this.dateTime.getFullYear(); //当前年let month this.dateTime.getMonth() 1;let date this.dateTime.getDate();let hours this.dateTime.getHours();let minutes this.dateTime.getMinutes();let seconds this.dateTime.getSeconds();let curryDateTime: string year - month - date hours : minutes : seconds;temp curryDateTime \n temp;this.receiveMessage temp this.receiveMessagethis.scroller.scrollTo({ xOffset: 0, yOffset: 0 })}} else {this.isStart falsethis.bandRate 0;this.currentUart -}}, 300)}aboutToDisappear() {console.log(TAG, 退出应用)clearInterval(this.setIntervalID);if (this.fd 0) {let e: number BQNapi.close_port(this.fd);console.log(TAG, 关闭串口${this.currentUart},ret${e})if (e 0) {console.log(TAG, 关闭成功)} else {console.log(TAG, 关闭失败)}}}build() {Column() {Row() {Text(回显框).fontSize(25).size({ width: 50%, height: 30 })Button(清空窗口).fontSize(30).size({ width: 160, height: 40 }).onClick(() {this.receiveMessage ;});}.justifyContent(FlexAlign.SpaceAround).margin({ top: 10, }).size({ width: 100%, height: 50 })Scroll(this.scroller) {Column() {Text(this.receiveMessage).fontSize(20).size({ width: 100% }).constraintSize({ minHeight: 30 }).margin({ top: 10, bottom: 10 }).padding(10).textAlign(TextAlign.Start)}.size({ width: 100% }).constraintSize({ minHeight: 300 }).justifyContent(FlexAlign.Start)}.size({ width: 100%, height: 150 }).border({ width: 1, style: BorderStyle.Solid, radius: 10 })Row() {Text(输入框).fontSize(25).size({ width: 100%, height: 40 })}.justifyContent(FlexAlign.SpaceAround).margin({ top: 10, }).size({ width: 100%, height: 50 })TextInput({ placeholder: 请输入需要发送的内容..., text: this.sendMessage }).fontSize(25).size({ width: 100%, height: 50 }).border({ width: 1, style: BorderStyle.Solid, radius: 10 }).margin({ bottom: 10 }).onChange((value) {this.sendMessage value;})Row() {Button(发送).fontSize(30).enabled(this.isStart).size({ width: 120, height: 40 }).onClick(() {let a: number BQNapi.series_send_data(this.sendMessage, this.fd)if (a 0) {console.log(TAG, 发送成功);} else {console.log(TAG, 发送失败);}})Button(清空).fontSize(30).enabled(this.isStart).size({ width: 120, height: 40 }).onClick(() {this.sendMessage ;})}.justifyContent(FlexAlign.SpaceAround).margin({ top: 10, }).size({ width: 100%, height: 50 })Row() {Text(当前串口信息).fontSize(25).size({ width: 100%, height: 30 })}.justifyContent(FlexAlign.SpaceAround).margin({ top: 10, }).size({ width: 100%, height: 50 })Column() {Row() {Text(波特率).fontSize(25).size({ width: 40%, height: 30 }).textAlign(TextAlign.Center)Text(this.bandRate.toString()).fontSize(28).size({ width: 60%, height: 30 }).textAlign(TextAlign.Center)}.justifyContent(FlexAlign.SpaceAround).size({ width: 100%, height: 40 })Row() {Text(当前串口).fontSize(25).size({ width: 40%, height: 30 }).textAlign(TextAlign.Center)Text(this.currentUart).fontSize(28).size({ width: 60%, height: 30 }).textAlign(TextAlign.Center)}.justifyContent(FlexAlign.SpaceAround).size({ width: 100%, height: 40 })}.size({ width: 100%, height: 100 }).justifyContent(FlexAlign.SpaceAround).border({ width: 1, style: BorderStyle.Solid, radius: 10 })Row() {Button(this.UartBand[this.currentUartBandIndex]).fontSize(25).size({ width: 30%, height: 45 }).onClick(() {this.showPickerDialogForUartBand()})TextInput({ placeholder: 请输入串口地址, text: this.UartPort }).fontSize(25).border({ width: 1, style: BorderStyle.Solid, radius: 10 }).size({ width: 60%, height: 45 }).onChange((value) {this.UartPort value;})}.justifyContent(FlexAlign.SpaceAround).margin({ top: 10, }).size({ width: 100%, height: 50 })Row() {Button(开启).fontSize(35).size({ width: 30%, height: 45 }).backgroundColor(this.isStart ? Color.Green : Color.Blue).onClick(() {if (this.isStart) {promptAction.showToast({message: 请先停止当前串口,duration: 500})} else {this.fd BQNapi.open_port(this.UartPort, this.UartBand_N[this.currentUartBandIndex]);if (this.fd 0) {console.log(TAG, 打开串口${this.currentUart},ret${this.fd})this.currentUart this.UartPort;promptAction.showToast({message: 开启成功,duration: 500})} else {promptAction.showToast({message: 开启失败,duration: 500})}}})Button(停止).fontSize(35).size({ width: 30%, height: 45 }).backgroundColor(this.isStart ? Color.Red : Color.Blue).onClick(() {if (this.isStart) {let e: number BQNapi.close_port(this.fd);console.log(TAG, 关闭串口${this.currentUart},ret${e})if (e 0) {promptAction.showToast({message: 关闭成功,duration: 500})this.fd -1;this.currentUart ...console.log(TAG, 关闭成功)} else {console.log(TAG, 关闭失败)promptAction.showToast({message: 关闭失败,duration: 500})}} else {promptAction.showToast({message: 未启用串口,duration: 500})}})}.justifyContent(FlexAlign.SpaceAround).margin({ top: 20, }).size({ width: 100%, height: 50 })}.size({ width: 100%, height: 100% }).padding(10).justifyContent(FlexAlign.Start).alignItems(HorizontalAlign.Center)}showPickerDialogForUartBand() {TextPickerDialog.show({range: this.UartBand,selected: this.currentUartBandIndex,disappearTextStyle: { color: Color.Red, font: { size: 15, weight: FontWeight.Lighter } },textStyle: { color: Color.Black, font: { size: 20, weight: FontWeight.Normal } },selectedTextStyle: { color: Color.Blue, font: { size: 30, weight: FontWeight.Bolder } },onAccept: (value: TextPickerResult) {let temp value.value as stringthis.currentUartBandIndex value.index as number},onCancel: () {console.info(TAG, TextPickerDialog:onCancel())},onChange: (value: TextPickerResult) {console.info(TAG, TextPickerDialog:onChange() JSON.stringify(value))}})} }2、NAPI函数引出声明(index.d.ts) export const open_port: (port_address: string, band_rate: number) number; //打开串口打开成功返回描述符int失败-1export const close_port: (serial_port: number) number; //关闭串口关闭成功返回0,失败则返回-1.export const series_send_data: (tx_data: string, serial_port: number) number; //发送数据export const series_receive_data: (serial_port: number) string; //接收数据成功返回接收字符串失败返回-1export const getBandRate: (serial_port: number) number; //查询波特率成功返回波特率失败返回-13、完整应用工程源码私信 声明非本人允许严禁转载演示开发板为厦门贝启科技的BQ3568HM产品 1首页-贝启科技官方企业店-淘宝网 2厦门贝启科技有限公司-Bearkey-官网
http://www.w-s-a.com/news/434904/

相关文章:

  • 建设大型购物网站运城哪里做网站
  • php企业网站通讯录管理系统做网站在线支付系统多少钱?
  • 怎么区分用vs和dw做的网站贝贝网网站开发背景
  • 无锡网站建设制作建设信息网查询
  • 彩票系统网站开发建设人力资源网官网
  • 有专门下载地图做方案的网站吗网站建设平台计划书
  • 网站闭站保护10个著名摄影网站
  • 安徽省建设工程信息网官网首页网站关键词排名优化工具
  • 深圳网站建设 百业网站专题教程
  • 公司seo是指什么意思如何来做网站优化
  • 化妆品网站建设平台的分析湖南网站搜索排名优化电话
  • 织梦网站修改教程视频教程管理类网站开发价格
  • 如何让新网站快速收录企业建站的作用是什么
  • 在线制作简历的网站做的最好的微电影网站
  • h5制作的网站网络游戏投诉平台
  • 做外贸网站好还是内贸网站好珠海新盈科技有限公 网站建设
  • php和网站开发网络软营销
  • 大型做网站的公司有哪些wordpress注册链接无效
  • 推荐门户网站建设公司网站开发移动端
  • 公司网站的栏目设置成都十大监理公司排名
  • 安溪住房和城乡建设网站关岭县建设局网站
  • 网站域名注销备案徐州房产网
  • 筑聘网windows优化大师自动安装
  • 龙华高端网站设计门户网站建设方案公司
  • 网站开发作用网站建设哪家专业
  • 网站设计报告总结南宁商城网站推广公司
  • 淘宝做店招的网站免费网站建设自助建站
  • 重庆工信部网站绵阳公司网站建设
  • 购物网站开发流程制作企业网页
  • 定州哪里可以做网站建设项目环境影响登记表备案系统网站