国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用小凌派HarmonyOS開發板輕松控制迪文智能屏

福州市凌睿智捷電子有限公司 ? 2022-06-14 11:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言:因2個原因導致遲遲沒有出來想要的效果。原因1:迪文屏的中文字庫問題,對CFG文件及FLASH的分配不熟,導致icl文件覆蓋了字庫文件,在迪文論壇發帖解決。原因2:串口線不能2節連接,我測試一直2節杜邦線連接,導致rk2206發不出數據,用串口demo測試,只有一節杜邦線電腦才能接到數據,弄了一節將兩個板子連接終于可以了。

1

迪文屏方面

1、用dgus軟件設計的歡迎使用界面中生成0號字庫和GBK字庫,如圖1所示,點擊DGUS字庫,出現如圖2所示,生成0號ASCII字庫。

72a0ca12-e735-11ec-a2f4-dac502259ad0.png

圖1 dgus字庫生成

72dfa9da-e735-11ec-a2f4-dac502259ad0.png

圖2 生成0號字庫

2、下面就來生成GBK漢字庫,如圖3和圖4所示,生成的24宋體24.bin字庫。

7347841a-e735-11ec-a2f4-dac502259ad0.png

圖3 GBK字庫

7386461e-e735-11ec-a2f4-dac502259ad0.png

圖4 生成漢字庫gbk

3、接下來,新建GUI工程,選一張480*854的背景圖,如圖5所示,保存位置確定。

73df471e-e735-11ec-a2f4-dac502259ad0.png

圖5 新建GUI工程

4、網上找了9張圖標,其中自己用位圖編輯了一遍,想多大自己設置即可,用DWIN ICL生成工具生成圖標icl,如圖6所示

74139d5c-e735-11ec-a2f4-dac502259ad0.png

圖6 生成圖標icl

7451f3fe-e735-11ec-a2f4-dac502259ad0.png

圖7 導入生成

5、生成背景icl一樣。注意:軟件默認背景圖為32.icl,生成CFG文件時需要修改。這個根據屏的flash大小設置,我的屏只有8M,因此最大為30,32超出了出現了問題。

6、在背景圖上放置一個圖標控件和2個text控件,如圖8所示,text地址設置2000,另一個設置2064。設置TEXT的屬性,ASCII選擇0號字庫,漢字庫選24號字庫,編碼選擇GBK編碼,后面的X和Y點陣設置為24點陣。這個點陣數根據自己字庫生成的點陣設置。使用出廠的字庫,則分別為0號字庫和12漢字庫。配置為0和12即可。

748a01ea-e735-11ec-a2f4-dac502259ad0.png

圖8 放置顯示控件

74f73ac6-e735-11ec-a2f4-dac502259ad0.png

圖9 text設置屬性

7、設置變量圖標顯示屬性,如圖10所示,從0開始到8共9個變量圖標。

754883f4-e735-11ec-a2f4-dac502259ad0.png

圖10 變量圖標顯示設置

最后生成即可。

2

T5L51方面

1、因我刷過T5L51,所以串口2調試協議不通,只能重刷出廠程序或者自己寫程序。我自己寫的程序,在熊家余老師的串口程序基礎上寫自己的接收代碼,main函數如下代碼:

#include "sys.h"#include "uart2.h"#include "string.h"
#define FIRST_TXT "手勢結果:\0\0" //必須以兩個字節的0x00或者兩個字節的0xFF為文本結束標記
void main(void){ u16 len; s16 ges; u8 text_buf[32]={0}; u16 ic_sta;//存儲ICON值 sys_init();//系統初始化 sys_write_vp(0x2000,FIRST_TXT,sizeof(FIRST_TXT)/2+1);//給第一個文本顯示控件設置文本內容 uart2_init(115200);//初始化串口2 while(1) { IF(uart2_rx_sta&UART2_PACKET_OK)//接受到了串口數據包 { len = uart2_rx_sta&UART2_PACKET_LEN;//得到串口數據包的長度,不包含"\r\n"或者'\n'結束符的長度 ges = uart2_buf[0]+uart2_buf[1]*256; switch(ges) { case 1: ic_sta = 0; sys_write_vp(0x1000,(u8*)&ic_sta,1); sprintf(text_buf,"GES_UP:0x%x",ges); break; case 2: ic_sta = 1; sys_write_vp(0x1000,(u8*)&ic_sta,1); sprintf(text_buf,"GES_DOWN:0x%x",ges); break; case 4: ic_sta = 2; sys_write_vp(0x1000,(u8*)&ic_sta,1); sprintf(text_buf,"GES_LEFT:0x%x",ges); break; case 8: ic_sta = 3; sys_write_vp(0x1000,(u8*)&ic_sta,1); sprintf(text_buf,"GES_RIGHT:0x%x",ges); break; case 16: ic_sta = 4; sys_write_vp(0x1000,(u8*)&ic_sta,1); sprintf(text_buf,"GES_FORWARD:0x%x",ges); break; case 32: ic_sta = 5; sys_write_vp(0x1000,(u8*)&ic_sta,1); sprintf(text_buf,"GES_BACKWARD:0x%x",ges); break; case 64: ic_sta = 6; sys_write_vp(0x1000,(u8*)&ic_sta,1); sprintf(text_buf,"GES_clockWISE:0x%x",ges); break; case 128: ic_sta = 7; sys_write_vp(0x1000,(u8*)&ic_sta,1); sprintf(text_buf,"GES_COUNT_CLOCKWISE:0x%x",ges); break; case 256: ic_sta = 8; sys_write_vp(0x1000,(u8*)&ic_sta,1); sprintf(text_buf,"GES_WAVE:0x%x",ges); break; default: break; } len = strlen(text_buf); text_buf[len++] = 0; text_buf[len++] = 0; sys_write_vp(0x2064,text_buf,len/2+1);//同時把數據包顯示到界面上 uart2_rx_sta = 0;//清0代表處理掉了此串口包 } }}

(左右移動查看全部內容)

3

小凌派方面

根據手勢demo將uart的demo加入到手勢demo.rar中,如下所示

/** Copyright (c) 2022 FuZhou Lockzhiner Electronic Co., Ltd. All rights reserved.* Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/#include #include "los_task.h"#include "ohos_init.h"#include "lz_hardware.h"#include "e53_gesture_sensor.h"
/* E53模塊中* UART0_RX_M0 -> GPIO0_B6* UART0_TX_M0 -> GPIO0_B7*/#define UART_ID 0
unsigned short getCRC16(unsigned char *ptr,unsigned char len){ unsigned char i; unsigned short crc = 0xFFFF; if(ptr==0) { return 0; } if(len==0) { len = 1; } //if(len<=255) ? ? ? ? ? ? ? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?while(len--) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?crc ^= *ptr; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?for(i=0; i<8; i++) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if(crc&1) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?crc >>= 1; crc ^= 0xA001; } else crc >>= 1; } ptr++; } } return(crc);}void uart0_init(void){ unsigned int ret; UartAttribute attr; LzUartDeinit(UART_ID); attr.baudRate = 115200; attr.dataBits = UART_DATA_BIT_8; attr.pad = FLOW_CTRL_NONE; attr.parity = UART_PARITY_NONE; attr.rxBlock = UART_BLOCK_STATE_NONE_BLOCK; attr.stopBits = UART_STOP_BIT_1; attr.txBlock = UART_BLOCK_STATE_NONE_BLOCK; PinctrlSet(GPIO0_PB6, MUX_FUNC2, PULL_KEEP, DRIVE_LEVEL2); PinctrlSet(GPIO0_PB7, MUX_FUNC2, PULL_KEEP, DRIVE_LEVEL2); ret = LzUartInit(UART_ID, &attr); if (ret != LZ_HARDWARE_SUCCESS) { printf("%s, %d: LzUartInit(%d) faiLED!\n", __FILE__, __LINE__, ret); return; } return;}void e53_gs_process(void *arg){ unsigned int ret = 0; unsigned int i=0; unsigned short flag = 0; unsigned short rc = 0; unsigned char tubiao[16] = {0}; unsigned char tubiao_str[48] = {0}; e53_gs_init(); uart0_init(); ret = LzUartWrite(UART_ID, tubiao, 4); if (ret != LZ_HARDWARE_SUCCESS) { printf("%s, %d: LzUartInit(%d) failed!\n", __FILE__, __LINE__, ret); return; } while (1) { ret = e53_gs_get_gesture_state(&flag); if (ret != 0) { printf("Get Gesture Statu: 0x%x\n", flag); if (flag & GES_UP) { printf("\tUp\n"); } if (flag & GES_DOWM) { printf("\tDown\n"); } if (flag & GES_LEFT) { printf("\tLeft\n"); } if (flag & GES_RIGHT) { printf("\tRight\n"); } if (flag & GES_FORWARD) { printf("\tForward\n"); } if (flag & GES_BACKWARD) { printf("\tBackward\n"); } if (flag & GES_CLOCKWISE) { printf("\tClockwise\n"); } if (flag & GES_COUNT_CLOCKWISE) { printf("\tCount Clockwise\n"); } if (flag & GES_WAVE) { printf("\tWave\n"); } e53_gs_led_up_set((flag & GES_UP) ? (1) : (0)); e53_gs_led_down_set((flag & GES_DOWM) ? (1) : (0)); e53_gs_led_left_set((flag & GES_LEFT) ? (1) : (0)); e53_gs_led_right_set((flag & GES_RIGHT) ? (1) : (0)); e53_gs_led_forward_set((flag & GES_FORWARD) ? (1) : (0)); e53_gs_led_backward_set((flag & GES_BACKWARD) ? (1) : (0)); e53_gs_led_cw_set((flag & GES_CLOCKWISE) ? (1) : (0)); e53_gs_led_ccw_set((flag & GES_COUNT_CLOCKWISE) ? (1) : (0)); e53_gs_led_wave_set((flag & GES_WAVE) ? (1) : (0)); tubiao[0] = flag; tubiao[1] = (flag&0xff00)>>8; tubiao[2] = '\r'; tubiao[3] = '\n'; printf("tubiao:\n"); for(i=0;i<4;i++) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sprintf(tubiao_str+i*3, "%02X ", tubiao[i] & 0xFF); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?printf("DOWN HEX: %s", tubiao_str); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?printf("\n"); ? ? ? ? ? ?ret = LzUartWrite(UART_ID, tubiao, 4); ? ? ? ? ? ?if (ret != LZ_HARDWARE_SUCCESS) ? ? ? ? ? ?{ ? ? ? ? ? ? ? ?printf("%s, %d: LzUartInit(%d) failed!\n", __FILE__, __LINE__, ret); ? ? ? ? ? ? ? ?return; ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?else ? ? ? ?{ ? ? ? ? ? ?/* 如果沒有數據,則多等待 */ ? ? ? ? ? ?LOS_Msleep(100); ? ? ? ?} ? ?}}
void e53_gs_example(){ unsigned int thread_id; TSK_INIT_PARAM_S task = {0}; unsigned int ret = LOS_OK;
task.pfnTaskEntry = (TSK_ENTRY_FUNC)e53_gs_process; task.uwStackSize = 2048; task.pcName = "e53 getsture sensor process"; task.usTaskPrio = 24; ret = LOS_TaskCreate(&thread_id, &task); if (ret != LOS_OK) { printf("Falied to create Task_One ret:0x%x\n", ret); return; }}
APP_FEATURE_INIT(e53_gs_example);

(左右移動查看全部內容)

測試:測試的時候總是控制不了,用小凌派的串口發給電腦串口,也沒有。不應該,人家廠家肯定沒問題。本來2節杜邦線,改成了1節杜邦線,可以了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 小凌派
    +關注

    關注

    0

    文章

    28

    瀏覽量

    1623
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    香橙全志系列開發板適配OpenClaw教程

    普惠新篇章:香橙全志系列開發板全面擁抱OpenClaw時代 AI智能體正加速從概念走向普及,但高性能硬件的門檻是否讓許多創新者望而卻步?香橙全志系列
    發表于 02-25 18:29

    OpenHarmony開發開源資料!-RK3568開發板:從入門到實戰的全棧硬件平臺

    點的利器: - RK3568 開發板,以及它的核心開源資源站——Gitee 倉庫(https://gitee.com/xie-shancai/lockzhiner-rk3568-openharmony)。
    的頭像 發表于 02-05 13:56 ?329次閱讀
    OpenHarmony<b class='flag-5'>開發</b>開源資料!<b class='flag-5'>凌</b>蒙<b class='flag-5'>派</b>-RK3568<b class='flag-5'>開發板</b>:從入門到實戰的全棧硬件平臺

    星鴻——開源星閃開發板上線!首批試用申請中~

    “本項目是一款基于海思WS63V100系列平臺的星閃開發板,支持Wi-Fi、BLE和SLE通信。可以應用于開發智能家電、物聯網智能終端等方面。配置了一塊0.96寸oled顯示
    的頭像 發表于 01-27 08:04 ?510次閱讀
    星鴻<b class='flag-5'>派</b>——開源星閃<b class='flag-5'>開發板</b>上線!首批試用申請中~

    性能躍遷,鴻蒙開發新紀元!RK3566鴻蒙開發板,開啟全場景開發之旅

    【導語】還在為鴻蒙開發尋找強勁、穩定、高效的硬件平臺?RK3566鴻蒙開發板震撼登場!集高性能、全接口、強生態于一身,專為鴻蒙開發者、
    的頭像 發表于 12-11 17:58 ?2428次閱讀
    性能躍遷,鴻蒙<b class='flag-5'>開發</b>新紀元!<b class='flag-5'>凌</b>羽<b class='flag-5'>派</b>RK3566鴻蒙<b class='flag-5'>開發板</b>,開啟全場景<b class='flag-5'>開發</b>之旅

    【作品合集】飛嵌入式OK527N-C開發板測評

    開發板試用】開箱與開發板介紹視頻 作者:jf_69121293【飛T527N開發板試用】開箱曬圖 查看配置 設置參 【飛
    發表于 09-22 15:54

    何用Arduino Nano/UNO R3開發板給另一個Arduino IDE不能下載的Arduino Nano/UNO R3開發板重新燒錄引導程序bootlaoder

    本文介紹了如何用能夠Arduino IDE下載的Arduino Nano/UNO R3開發板給另一個Arduino IDE不能下載的Arduino Nano/UNO R3開發板重新燒錄引導程序bootlaoder
    的頭像 發表于 08-08 20:16 ?3566次閱讀
    如<b class='flag-5'>何用</b>Arduino Nano/UNO R3<b class='flag-5'>開發板</b>給另一個Arduino IDE不能下載的Arduino Nano/UNO R3<b class='flag-5'>開發板</b>重新燒錄引導程序bootlaoder

    deepin 25成功適配魔方3開發板

    近日,deepin(深度)社區宣布,deepin 25 已正式適配魔方 3(RUBIK Pi 3)開發板,并完成產品兼容性認證!
    的頭像 發表于 07-28 15:14 ?1114次閱讀

    【開源獲獎案例】AI智能交互新方案:基于T5L智能的AI DeepSeek大模型

    ——來自開發者論壇本期為大家推送開發者論壇獲獎開源案例——AI
    的頭像 發表于 07-12 09:02 ?1059次閱讀
    【開源獲獎案例】AI<b class='flag-5'>智能</b>交互新方案:基于T5L<b class='flag-5'>智能</b><b class='flag-5'>屏</b>的AI DeepSeek大模型

    【開源獲獎案例】基于T5L智能的音樂播放與歌詞顯示方案

    ——來自開發者論壇本期為大家推送開發者論壇獲獎開源案例——基于T5L
    的頭像 發表于 05-08 09:52 ?854次閱讀
    【開源獲獎案例】基于T5L<b class='flag-5'>智能</b><b class='flag-5'>屏</b>的音樂播放與歌詞顯示方案

    基于小RK2206開發板:OpenHarmony如何使用IoT接口控制FLASH外設

    1、實驗簡介本實驗將演示如何在小-RK2206開發板上使用IOT庫的FLASH接口,進行FLASH編程開發。例程將創建一個任務,實現FLASH讀寫操作。例程源代碼:https
    的頭像 發表于 04-22 14:49 ?913次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>開發板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b>FLASH外設

    基于小RK2206開發板:OpenHarmony如何使用IoT接口控制UART外設

    1、實驗簡介本實驗將演示如何在小-RK2206開發板上使用IOT庫的UART接口,進行UART編程開發。例程將創建一個任務,通過配置UART引腳,實現UART讀寫操作。例程源代碼:
    的頭像 發表于 04-22 14:22 ?1068次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>開發板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b>UART外設

    基于小RK2206開發板:OpenHarmony如何使用IoT接口控制GPIO中斷

    1、實驗簡介本實驗將演示如何在小-RK2206開發板上使用IOT庫的GPIO中斷模式,進行GPIO編程開發。例程將創建一個任務,通過配置GPIO引腳為中斷模式,實現GPIO中斷操作
    的頭像 發表于 04-21 10:39 ?1092次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>開發板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b>GPIO中斷

    基于小RK2206開發板:OpenHarmony如何使用IoT接口控制GPIO外設

    1、案例簡介本案例主要是如何在小-RK2206開發板上使用IOT庫的GPIO接口,進行GPIO編程開發。例程將創建一個任務,通過配置GPIO引腳,實現GPIO讀寫操作。例程源代碼:
    的頭像 發表于 04-11 15:36 ?2041次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>開發板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b>GPIO外設

    基于小RK2206開發板:OpenHarmony如何使用IoT接口控制ADC外設

    1、案例簡介本案例主要講解如何在小-RK2206開發板上使用IoT庫的ADC接口,進行ADC編程開發。例程內容為創建一個任務,讀取按鍵的ADC值,并打印到串口。例程源代碼:http
    的頭像 發表于 04-10 16:00 ?904次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>開發板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b>ADC外設

    基于小RK2206開發板:OpenHarmony如何使用IoT接口控制PWM外設

    1、案例簡介本案例是在小-RK2206開發板上使用IoT庫PWM接口,進行PWM編程開發。例程將創建一個任務,每隔5秒將PWM0~10依次啟用,輸出1000Hz。
    的頭像 發表于 04-09 08:59 ?2634次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>開發板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b>PWM外設