用户程序和驱动交互代码
UART驱动成功初始化后,会创建/dev/uartdev-5设备节点,通过设备节点与UART驱动交互的代码如下:
1. #include<stdlib.h>
2. #include<unistd.h>
3. #include<fcntl.h>
4. #include"hdf_log.h"
5.
6. #defineHDF_LOG_TAG "hello_uart"
7. #defineINFO_SIZE 16
8.
9. int main(void)
10. {
11. int ret;
12. int fd;
13. const char info[INFO_SIZE] = {" HELLOUART! "};
14.
15. fd = open("/dev/uartdev-5",O_RDWR);
16. if (fd < 0) {
17. HDF_LOGE("hello_uart uartdev-5open failed %d", fd);
18. return -1;
19. }
20. ret = write(fd, info, INFO_SIZE);
21. if (ret != 0) {
22. HDF_LOGE("hello_uart writeuartdev-5 ret is %d", ret);
23. }
24. ret = close(fd);
25. if (ret != 0) {
26. HDF_LOGE("hello_uart uartdev-5close failed %d", fd);
27. return -1;
28. }
29. return ret;
30. }
在build/lite/product/ipcamera_hi3516dv300.json产品配置的hdf子系统下增加hello_uart_sample组件,代码如下:
1.已复制
{
2. "subsystem": [
3. {
4. "name": "hdf",
5. "component": [
6. { "name":"hdf_sample", "dir":"//vendor/huawei/hdf/sample/platform/uart:hello_uart_sample","features":[] }
8. }
}
如上代码均为示例代码,完整代码可以在vendor/huawei/hdf/sample查看。
示例代码默认不参与编译,需要手动添加到编译脚本中。
编译和烧写图1 连接串口图
- 单击Serial port打开串口。
- 输入"com11"串口编号并连续输入回车直到串口显示"hisillicon"。
- 单板初次启动或修改启动参数,请进入步骤2,否则进入步骤3。
(单板初次启动必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,若不修改参数只需执行一次。每次复位单板均会自动进入系统。
U-boot引导程序默认会有2秒的等待时间,用户可使用回车打断等待并显示"hisillicon",通过reset命令可再次启动系统。
输入“reset”指令并回车,重启单板,启动成功如下图,输入回车串口显示OHOS字样。
根目录下,在命令行输入指令“./bin/hello_uart”执行写入的demo程序,显示成功结果如下图所示
作者:疯壳
注:文档和视频中所有的图片及代码截图皆为示意图,具体以HarmonyOS官网发布内容为准。