Hi3798 RS485测试

目录

一、虚拟机测试环境搭建

二、开发板挂载网络文件系统

三、RS485测试

附录


本文档中利用交叉编译工具编译一个app程序用于测试RS485通信,需利用nfs挂载的形式该app下载至开发板中。

一、虚拟机测试环境搭建

  • 安装NFS组件
sudo apt-get install nfs-kernel-server
  • 建立共享文件夹
mkdir /nfs
  • 设置共享目录

修改虚拟机的/etc/exports文件,添加如下代码

/nfs *(rw,sync,no_root_squash)
  • 重启nfs服务器
sudo /etc/init.d/nfs-kernel-server restart

二、开发板挂载网络文件系统

启动开发板进行操作

如果开发板与主机都连接在路由器或者交换机上,即有dhcp主机功能,在/etc/init.d文件夹中的rcS文件末尾添加如下代码自动获取IP。如果采用自动获取IP的形式,最后采用手动的方式挂载网络文件系统。

/sbin/udhcpc &

当然也可以在该文件中添加以下代码是开发板具有一个固定的ip:

sudo ifconfig eth0 XXX.XXX.XXX.XXX
mount -t nfs -o nolock yyy.yyy.yyy.yyy:/nfs /mnt

此处的XXX代表arm开发板的ip,yyy代表主机IP(虚拟机IP)。第二句代码的意思是将主机的/nfs文件夹挂载到开发板的/mnt目录下。

三、RS485测试

在虚拟机上,利用交叉编译工具编译app源码,将RS485测试的app源码、脚本,拷贝至虚拟机内,并编译:

arm-histbv320-linux-gcc uart_app.c -o uart_app

将生成的uart_app、脚本文件拷贝至/nfs文件夹下:

sudo cp uart_app uart_r.sh uart_w.sh /nfs/

开发板中运行./uart_w.sh以便测试485发送,可得到以下结果:

Hi3798 RS485测试_第1张图片

运行./uart_r.sh测试485接收,可得到以下结果:

Hi3798 RS485测试_第2张图片

至此485测试完毕!

附录

uart_r.sh的源代码

#############################################################
#                     Hi3798 RS485 Test                     #
#author     :  TanZhenwen                                   #
#date       :  2018.12.07                                   #
#ver        :  1.0                                          #
#############################################################

########## Baseaddr            0xf8a21000           #########
#############################################################
#Function           GPIO       IO    Offset    Value        #
#485 TX/RX EN       GPIO3_0    24    0x060   0x00002134	    #
#485 RX             GPIO2_5    21    0x054   0x00000132	    #
#485 TX	            GPIO2_6    22    0x058   0x00000132	    #
#############################################################


devmem 0xf8a21060 w 0x00002134
devmem 0xf8a21054 w 0x00000132
devmem 0xf8a21058 w 0x00000132

rm /var/lock/* -r
echo 24 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio24/direction
echo 0 > /sys/class/gpio/gpio24/value
./uart_app /dev/ttyAMA2 -b 19200 -l -r -hex

uart_w.sh的源代码

#############################################################
#                     Hi3798 RS485 Test                     #
#author     :  TanZhenwen                                   #
#date       :  2018.12.07                                   #
#ver        :  1.0                                          #
#############################################################

########## Baseaddr            0xf8a21000           #########
#############################################################
#Function           GPIO       IO    Offset    Value        #
#485 TX/RX EN       GPIO3_0    24    0x060   0x00002134	    #
#485 RX             GPIO2_5    21    0x054   0x00000132	    #
#485 TX	            GPIO2_6    22    0x058   0x00000132	    #
#############################################################

devmem 0xf8a21060 w 0x00002134
devmem 0xf8a21054 w 0x00000132
devmem 0xf8a21058 w 0x00000132
rm /var/lock/* -r
echo 24 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio24/direction
echo 1 > /sys/class/gpio/gpio24/value
./uart_app /dev/ttyAMA2 -b 19200 -l -w "123456" -asc

 

你可能感兴趣的:(Hi3798)