嵌入式Linux系统串口1与ZigBee主控链路

1 设备树节点

串口1的设备节点在rk3308.dts中可以找到

其中uart1_cts和uart1_rts是硬件流控脚,这只代表引脚有配置为相应的功能脚,并不代表使能硬件流控。使能硬件流控需要从运用层设置下来。需要注意的是,如果使能流控,uart1_cts和uart1_rts必须同时配上。如果不需要流控,可以把uart1_cts和uart1_rts去掉。

需要使用DMA时需要以下配置,如果没有需要自己手动添加:

dma-names = "tx", "rx"; 使能DMA发送和接收

dma-names = "!tx", "!rx"; 禁止DMA发送和接收

补丁路径:

进行补丁:./patchloader.sh       卸载补丁:./patchloader.sh -u

然后进行编译,烧录更新kernel。

 

2 应用测试

首先需要烧录一个测试用的zigbee固件,路径在:

…\2. 系统篇\12. 串口1链路(与ZigBee主控通信)\zigbee_firmware

说明:这个测试固件是用来周期性地发送字符串:”Hello”;源码比较简单,可以在ZigBee的配套程序中进行修改。

在工程路径下面有一个主控用到的应用程序test_uart1:

我们需要把这个程序copy到板子上去,目前没有打通网络的通信链路,因此我们先通过ADB工具来传输文件:

先把文件copy到windows中的任意一个盘符下,比如说D盘,然后在cmd终端中输入:adb  push “文件路径”“目标路径”:

命令:adb push "D:\test_uart1" /tmp,含义是把D盘下的test_uart1文件copy到板子/tmp目录,也就是内存中,回到板子,修改文件的权限并运行:

chmod +x test_uart1

./test_uart1 /dev/ttyS1 115200

可以看到我们成功接收到了来自ZigBee终端的数据。

 

===================================================================================================================================================================

如果觉得对您有帮助并想进一步深入学习交流可以扫描以下微信二维码或加入QQ群:928840648

欢迎共同学习成长,有一群爱学习的小伙伴一起勉励!!一起加油!!也可点击

 

笔者基于嵌入式系统框架内容如下整理编辑: