1.官方固件下载: 下载库文件目录如下图: 2.编译库文件 2.1 修改交叉编译链和spi 先编译库文件,进入libloragw目录 修改spi驱动: 在源文件loragw_spi.native.c中将spi修改为自己板子的spi路径 然后进入相应的库和程序的Makefile修改自己的交叉编译链
2.2.进行编译 可能会报一下错误,是因为dl和pthread的库没有添加 在Makefile中添加即可 再次编译: 有一个警告,源码的问题,不过问题不大,不影响运行,暂时不管。 此时查看目录多出来一个静态库文件,我们程序只要包含他就可以轻松的控制sx1302了 3、测试 在编译库时官方已经将测试代码一并进行编译,只要将这些代码拷贝到板子上就能进行验证,这里以test_loragw_hal为例。
 输入./test_loragw_hal -h查看使用方法 输入对应的参数,查看是否启动成功
 你问为什么没有显示这么多的信息? 忘记说了,库的日志输出是可以配置的,通过库文件下的library.cfg进行配置 选择对应的输出即可。
4、遇到的问题 4.1 版本校验不通过,且返回的版本号每次都不一样 @因为并不是没有返回数据,所以可以知道的是1301工作正常。 至于SPI写入与读出是否正常不得而知,通过查看驱动发现spi的CS脚并不是原理图上所标记的脚,所以将CS脚连接到硬件上正确的片选端,读取写入程序正常。 4.2 固件版校验错误 描述 每次读取为值都为:actual:185 expected:2 每次都需要写入固件,固件是读取三个固件文件,文件中是固件版本数据,数据量较大。 屏蔽掉固件写入,读取的值还是为185,说明根本就没有写入固件 分析 最大的可能spi没有写入固件 @通过读取写入的固件数据,查看正确,排除写错误
原来写完固件1301会重启里面的mcu,既然固件写入成功,但是重启过后再次读取确失败,很奇怪。 @后面检查配置文件才发现是时钟源选错了,CN470都是使用时钟源为1。 |