赞
踩
从一个小白慢慢摸索。
一个完整的步骤是:搭建nuc980的开发环境,编译uboot、内核、文件系统。
焊接飞线spi的通信4根线,此次spi通信是使用nuc980 SPI1,SS为引脚为复用PB1
所以切记make linux-menuconfig时勾上SPI1,并勾上PB1为SS。
烧录uboot、内核、文件系统后。ls /dev/spidev*。查看spi设备节点是否挂载。
挂载完成后,通过编译测试nuc980 demos的spidev_test.c文件。mosi与miso短接。执行后查看结果。
进一步确认硬件层面SPI1是否OK。用逻辑分析仪将SPI 4线焊接。用usbee suite软件,勾选spi模式。选择采集时间后,采集,然后执行nuc980中的spidev_test文件。查看采集结果是否出现spi通讯时序。至此SPI硬件层面确认OK。
下一步开始LORA的软件步骤。参考链接:分享一下从零搭建LoRaWAN服务器的经验(M-SX1302S+RaspberryPi),有需要的可以看看:
https://www.cnblogs.com/answerinthewind/p/13154904.html。
下载gw1302s工程项目,修改各文件的makefile的CC,CC最好是nuc980环境的交叉编译器一致。
这里我的编译工具链是用的arm-linux-gcc。在gw1302s文件中。查看各c文件,如果有com_path=“/dev/spidevx.x”(x.x)的。需对应自己的spi节点。修改完毕后。编译测试。进入chip_id
执行./chid -d /dev/spix.x 和libloragw文件 ./test_loragw_reg,测试应该是没有error的。
若出现读写错误。可能需要替换编译环境 /usr/include/spi/spidev.h/ 这里我是找到 gw1302s的libloragw/src里面中含有#include “linux/spi/spidev.h”的c文件,注释掉,然后#include “spidev.h”,把之前那个spidev_test.c的头文件拉到libloragw/inc,重新编译执行。发现读写OK了,这个问题一直找了好久才找到的。后面的就是参考上面的链接,配置pktw那个json,文件了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。