小凌派-RK2206開發(fā)板:UART控制案例
一、簡介
通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART。它將要傳輸?shù)?a href="http://ttokpm.com/soft/special/" target="_blank">資料在串行通信與并行通信之間加以轉(zhuǎn)換。作為把并行輸入信號轉(zhuǎn)成串行輸出信號的芯片,UART通常被集成于其他通訊接口的連結(jié)上。
本文基于瑞芯微RK2206芯片 + OpenHarmony系統(tǒng),通過uart控制實現(xiàn)PC和開發(fā)板的互相通信功能。
二、硬件電路設(shè)計
模塊整體硬件實物圖如下圖所示。電路比較簡單,這邊不對電路進(jìn)行說明。
圖1電路實物圖圖
三、程序設(shè)計
UART控制主要分為UART初始化和UART收發(fā)。
1、UART初始化
這部分代碼為uart初始化的代碼。首先用 LzUartDeinit() 函數(shù)將串口釋放掉;其次用PinctrlSet()將GPIO0_PB6復(fù)用為UART0_RX_M0,GPIO0_PB7復(fù)用為UART0_TX_M0。最后調(diào)用 LzUartInit()函數(shù)初始化uart。源代碼如下所示:
1/*釋放UART設(shè)備*/
2.LzUartDeinit(UART_ID);
3.
4./*配置UART*/
5.attr.baudRate=115200;
6.attr.dataBits=UART_DATA_BIT_8;
7.attr.pad=FLOW_CTRL_NONE;
8.attr.parity=UART_PARITY_NONE;
9.attr.rxBlock=UART_BLOCK_STATE_NONE_BLOCK;
10.attr.stopBits=UART_STOP_BIT_1;
11.attr.txBlock=UART_BLOCK_STATE_NONE_BLOCK;
12.
13./*TX和RX引腳配置*/
14.PinctrlSet(GPIO0_PB6,MUX_FUNC2,PULL_KEEP,DRIVE_LEVEL2);
15.PinctrlSet(GPIO0_PB7,MUX_FUNC2,PULL_KEEP,DRIVE_LEVEL2);
16.
17./*初始化UART*/
18.ret=LzUartInit(UART_ID,&attr);
19.if(ret!=LZ_HARDWARE_SUCCESS)
20.{
21.printf("%s,%d:LzUartInit(%d)failed!\n",__FILE__,__LINE__,ret);
22. return;
23.}
2、UART發(fā)送
具體uart寫操作如下:
1./*控制UART發(fā)送字符串*/
2.ret=LzUartWrite(UART_ID,str,strlen(str));
3.if(ret!=LZ_HARDWARE_SUCCESS)
4.{
5. printf("%s,%d:LzUartWrite(%d)failed!\n",__FILE__,__LINE__,ret);
6. return;
7.}
3、UART接收
具體uart讀操作如下:
8./*控制UART發(fā)送字符串*/
9.ret=LzUartRead(UART_ID,str,10);
10.if(ret!=LZ_HARDWARE_SUCCESS)
11.{
12. printf("%s,%d:LzUartRead(%d)failed!\n",__FILE__,__LINE__,ret);
13. return;
14.}
四、編譯過程
1、搭建和下載源代碼
我已將OpenHarmony源代碼上傳到Gitee社區(qū)中,大家可以根據(jù)以下網(wǎng)址下載。
https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts
本文使用的案例網(wǎng)址如下:https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts/tree/master/vendor/lockzhiner/rk2206/samples/b6_uart
2、打開sdk下面路徑的文件
/vendor/lockzhiner/rk2206/samples/b6_uart/uart_example.c
3、修改編譯腳本
修改 vendor/lockzhiner/rk2206/sample 路徑下 BUILD.gn 文件,指定 uart_example 參與編譯。
"./b6_uart:uart_example",
修改 device/lockzhiner/rk2206/sdk_liteos 路徑下 Makefile 文件,添加 -luart_example 參與編譯。
hardware_LIBS = -lhal_iothardware -lhardware -luart_example
3、編譯固件
hb set -root .
hb set
hb build -f
4、燒寫固件
請參考Gitee網(wǎng)址的說明手冊(“燒錄打印”章節(jié)):https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts/blob/master/device/rockchip/README_zh.md
五、實驗結(jié)果
程序編譯燒寫到開發(fā)板后,按下開發(fā)板的RESET按鍵,通過串口軟件查看日志如下:
HelloWorld!
HelloWorld!
HelloWorld!
HelloWorld!
...
-
小凌派
+關(guān)注
關(guān)注
0文章
27瀏覽量
1187
發(fā)布評論請先 登錄
相關(guān)推薦
評論