• Home
Name Date Size #Lines LOC

..--

BUILD.gnD12-May-2024785 2117

README_zh.mdD12-May-20244.5 KiB196128

uart_example.cD12-May-20242.6 KiB9551

README_zh.md

1# 小凌派-RK2206开发板基础外设开发——串口打印显示
2
3本示例将演示如何在小凌派-RK2206开发板上使用额外串口打印
4
5![小凌派-RK2206开发板](../../docs/figures/lockzhiner-rk2206.jpg)
6
7## 硬件接口说明
8
9引脚名称开发者可在硬件资源图中查看。
10
11| 引脚名称  | 功能描述           |
12| :-------- | :----------------- |
13| GPIO0_PB6 | UART0_RX_M0 串口RX |
14| GPIO0_PB7 | UART0_TX_M0 串口TX |
15| GND       | 电源地引脚         |
16
17### 硬件连接
18
19安装图如下所示:
20![串口模块硬件连接图](/vendor/lockzhiner/lingpi/docs/figures/uart/20220505104232-串口连接.jpg)
21
22注意:
23(1)串口GND引脚一定要连接到开发板的GND引脚上。
24
25## 程序设计
26
27### API分析
28
29#### 头文件
30
31```c
32#include "lz_hardware.h"
33```
34
35注意:实际头文件可参考[uart.h](/device/soc/rockchip/rk2206/hardware/include/lz_hardware/uart.h)
36
37#### LzUartInit()
38
39```c
40unsigned int LzUartInit(unsigned int id, const UartAttribute *param);
41```
42
43**描述:**
44
45初始化uart设备。
46
47**参数:**
48
49| 名字  | 描述                                                                                      |
50| :---- | :---------------------------------------------------------------------------------------- |
51| id    | 串口ID                                                                                    |
52| param | 串口配置参数,详情可参考[uart.h](/device/soc/rockchip/rk2206/hardware/include/lz_hardware/uart.h) |
53
54**返回值:**
55
56返回LZ_HARDWARE_SUCCESS为成功,反之为失败
57
58#### LzUartDeinit()
59
60```c
61unsigned int LzUartDeinit(unsigned int id);
62```
63
64**描述:**
65
66释放uart设备。
67
68**参数:**
69
70| 名字 | 描述   |
71| :--- | :----- |
72| id   | 串口ID |
73
74**返回值:**
75
76返回LZ_HARDWARE_SUCCESS为成功,反之为失败
77
78#### LzUartRead()
79
80```c
81unsigned int LzUartRead(unsigned int id, unsigned char *data, unsigned int dataLen);
82```
83
84**描述:**
85
86串口读操作。
87
88**参数:**
89
90| 名字    | 描述                     |
91| :------ | :----------------------- |
92| id      | 串口ID                   |
93| data    | 串口读取数据后存放的地址 |
94| dataLen | 串口读取数据的个数       |
95
96**返回值:**
97
98成功返回读取数据长度
99
100#### LzUartWrite()
101
102```c
103unsigned int LzUartWrite(unsigned int id, const unsigned char *data, unsigned int dataLen);
104```
105
106**描述:**
107
108串口写操作。
109
110**参数:**
111
112| 名字    | 描述               |
113| :------ | :----------------- |
114| id      | 串口ID             |
115| data    | 串口写入数据的地址 |
116| dataLen | 串口写入数据的个数 |
117
118**返回值:**
119
120成功返回发送数据长度
121
122### 主要代码分析
123
124这部分代码为uart初始化的代码。首先用 `LzUartDeinit()` 函数将串口释放掉;其次用 `PinctrlSet()`将GPIO0_PB6复用为UART0_RX_M0,GPIO0_PB7复用为UART0_TX_M0。最后调用 `LzUartInit()`函数初始化uart。
125
126```c
127LzUartDeinit(UART_ID);
128
129attr.baudRate = 115200;
130attr.dataBits = UART_DATA_BIT_8;
131attr.pad = FLOW_CTRL_NONE;
132attr.parity = UART_PARITY_NONE;
133attr.rxBlock = UART_BLOCK_STATE_NONE_BLOCK;
134attr.stopBits = UART_STOP_BIT_1;
135attr.txBlock = UART_BLOCK_STATE_NONE_BLOCK;
136
137PinctrlSet(GPIO0_PB6, MUX_FUNC2, PULL_KEEP, DRIVE_LEVEL2);
138PinctrlSet(GPIO0_PB7, MUX_FUNC2, PULL_KEEP, DRIVE_LEVEL2);
139
140ret = LzUartInit(UART_ID, &attr);
141if (ret != LZ_HARDWARE_SUCCESS)
142{
143    printf("%s, %d: LzUartInit(%d) failed!\n", __FILE__, __LINE__, ret);
144    return;
145}
146```
147
148具体uart写操作如下:
149
150```c
151ret = LzUartWrite(UART_ID, str, strlen(str));
152if (ret != LZ_HARDWARE_SUCCESS)
153{
154    printf("%s, %d: LzUartInit(%d) failed!\n", __FILE__, __LINE__, ret);
155    return;
156}
157```
158
159## 编译调试
160
161### 修改 BUILD.gn 文件
162
163修改 `vendor/lockzhiner/lingpi/sample` 路径下 BUILD.gn 文件,指定 `b6_uart` 参与编译。
164
165```r
166"b6_uart",
167```
168
169在主目录下输入编译命令。
170
171```shell
172hb build -f
173```
174
175### 运行结果
176
177示例代码编译烧录代码后,按下开发板的RESET按键,通过串口助手查看日志,串口0显示如下:
178
179```c
180HelloWorld!
181HelloWorld!
182HelloWorld!
183HelloWorld!
184...
185```
186
187注意:如果你使用MobaXterm,并且发现串口0能打印,但是换行有问题,则:
188(1)在MobaXterm界面中按住右边的Ctrl按键 + 右击鼠标,弹出菜单,选择 `Change terminal settings...`,如下图所示:
189
190![右击菜单图](/vendor/lockzhiner/lingpi/docs/figures/uart/MobaXterm_右击菜单.png)
191
192(2)将2个选项勾选上即可。如下图所示:
193
194![勾选图](/vendor/lockzhiner/lingpi/docs/figures/uart/MobaXterm_勾选.png)
195
196