dropLin 8202879664 修复spi的myRadioSpi_rwByte超时操作i | пре 4 недеља | |
---|---|---|
STM32F10x_FWLib | пре 1 месец | |
app | пре 1 месец | |
core | пре 1 месец | |
keil_v5 | пре 1 месец | |
peripheral | пре 1 месец | |
project | пре 1 месец | |
radio | пре 4 недеља | |
.gitignore | пре 1 месец | |
README.md | пре 1 месец | |
gitFocePushRemote.bat | пре 1 месец | |
keilkilll.bat | пре 1 месец |
adapterBoardDriver
演示板
无线数据收发、测试通讯距离
无
6个
S1
按键可以移动光标(选择的项会反显)向上选择设置项,或向上设置数值,可以循环移动选择S2
按键可以返回上一个界面S3
按键可以移动光标(选择的项会反显)向下选择设置项,或向上设置数值,可以循环移动选择S4
按键功能待定S5
按键,功能1:开机界面时,按下进入功能选择界面。功能2:确定选择项目。功能3:退出设置状态
2个
D5
蓝色LED,发送成功指示灯灯
D4
红色LED,接收成功指示灯灯
深圳市晶联讯电子的液晶模块JLX19296G-382-PN
该液晶模块支持4线SPI串行接口和IIC接口,本项目使用IIC接口驱动,显示大小192*96 点阵
无
支持三种供电
USB的MICRO-B插头供电
3*5号电池供电
2pin的PH座子供电,注意电压不能超过5V
87mm*131.5mm
433MHz、490MHz、868MHz、915MHz
SI4438_C2A
,SI4438_C2A
,SI4463_C2A
,SI4463_C2A
,SI4463_C2A
,SI4438_B1C
,SI4438_B1C
,SI4463_B1B
,SI4463_B1B
,SI4463_B1B
AT32F413RCT7
该MCU与STM32F103RCT6
软硬件兼容
无
P7
串口转USB
J1
J2
MCU的GPIO口
P1
microBIT插槽,用于无线模块转接板连接
P7
MICRO-B类型USB座子,供电
P6
外部供电
P5
仿真烧录接口
MDK-ARM Standard Version: 5.14.0.0
C99标准
STM32F10x_StdPeriph_Lib_V3.5.0
主界面
-->按键S5
-->功能选择Enter RF Transmiter
-->按键S5
-->进入Packet Tx
-->按键S5
-->开始发送,同时START
会闪烁显示
发送完成后,6S内收到ACK,会立即触发重新发送,同时会重新设置重发超时时间(从开始发送到接收到ACK的时间),超时后自动重发,超时重发10次后,重发超时时间自动切换回6S。
发送成功D5
蓝色LED灯闪烁一下。
413ms
为从开始发送到无线收到对方回复的应答所消耗的时间,若该处显示OUT
,则表示接收等待ACK超时。100%
为统计的丢包率,重新按下按键S5
重新计数hello world?
为无线收到的数据包,其中的?
位置的字符每次都会不一样-004dBm
为最新一次无线收到的数据包的信号强度
主界面
-->按键S5
-->功能选择Enter RF Receiver
-->按键S5
-->进入Packet Rx
-->按键S5
-->开始接收,同时START
会闪烁显示
收到数据后D4
红色LED灯闪烁一下
11.67mA
为当前无线模组的工作电流-13dBm
为最新一次无线收到的数据包的信号强度hello world2
、hello world3
、hello world4
为无线收到的3个数据包,收到新的数据包时显示会向上滚动主界面
-->按键S5
-->功能选择Enter RF Setting
-->按键S5
-->进入Setting
,按下S1
或者S3
切换设置项目,确定需要设置的项目后,按下S5
进行参数设置,该项的光标会闪烁显示,此时可通过按键S1
或者S3
上下调节参数。再按下S5
退出设置,即可选择其他选项设置。
Type
,设置选择对应的模组型号,当前demo板的固件可能会兼容多个型号的模组,比如以下型号的模组可以共用一套驱动固件
Chnl
,设置当前模组的无线信道,信道对应的无线率会根据Type
类型和Step
信道间隔的设置而改变Step
,信道间隔,即每个信道之间的频率带宽,该设置需根据实际情况而定,不宜太小,过小的间隔可能会造成不同信道的设备串频造成干扰。TxPower
,无线发射功率。发射功率越大,功耗越高,相应的通讯距离也会越远RfBr
,无线波特率。无线波特率的大小即传输速率的大小,无线波特率越大,传输消耗时间越小,相应的传输距离越短,反之则越远。最终的通讯距离,在排除外在因素的情况下,可以从无线发射功率和无线波特率这两个参数评估
需要将文件夹radio
中的API全部移植,与硬件相关的已全部定义在radio/myRadio_gpio.c
中,若目标平台也是C语言环境,将文件夹radio
中的文件拷贝过来后,只需对应的修改radio/myRadio_gpio.c
文件中的GPIO定义既可,由于myRadio_gpio.c
中用到的GPIO是宏定义在project/board.h
,所以也需要将radio/board.h
中的定义移植过来。如果MCU平台也是相近的,只需修改project/board.h
中对应的宏定义即可。
本公司为了统一demo程序,将射频相关的操作重新定义了一层,详见radio/myRadio.c
,无线应用开发,可以参考借鉴。
驱动IO口均定义在project/board.h
中
RST
引脚,上电初始化需要用到IO1
引脚,用于接收芯片操作的中断响应输出指示,本工程该引脚用于做发送接收中断响应指示,用户可以配置中断映射功能IO3
引脚,用于接收芯片操作的中断响应输出指示,本工程该引脚未使用,用户可以配置中断映射功能busy
引脚,用于检测射频芯片工作状态是否忙状态,其他IO口未使用,可根据实际情况移植
避免使用中心频率为射频芯片使用的晶体频率整数倍的,比如晶体频率为32MHz,就需要避免使用448MHz
的中心频点
首先保证SPI通讯正常,具体SPI时序需根据射频芯片要求设置,可通过示波器或者逻辑分析仪进行硬件分析
SPI通讯正常后,进一步调试查看寄存器操作,读写寄存器,若能正常操作,基本可判定移植成功了
影响无线传输距离的因素
无线电频谱,包括使用的无线频段和无线波特率
发射功率
天线增益,不同增益的天线对无线信号的接收效果影响很大
路径损耗,主要是包括无线使用的周围环境,比如楼宇、树木山峰遮挡
其他的无线信号干扰
V04
..\adapterBoardDriver_xxxxxxxxxxxxxxx_Vxx
├──app \\常用应用模块封装
| └──
├──core \\MCU内核文件
| └──
├──STM32F10x_FWLib \\MCU官方库函数
└──
├──image \\md文件显示用的图片
| └──
├──keil_v5 \\keil编译器工程文件,包含编译生成的HEX文件
| └──Object \\编译生成的HEX文件在此文件夹
├──peripheral \\项目用到的MCU外设
| └──
├──project \\项目的主函数和GPIO定义包含文件
| └──
├──radio \\射频底层驱动文件
| ├──myRadio_gpio.c \\射频驱动接口硬件初始化
| └──myRadio.c \\为无线应用通用封装API
初始化-void myRadio_init(int agr0, void *agr1_ptr)
射频芯片驱动IO口初始化-myRadio_gpio_init()
射频基本参数初始化
射频运行底层执行API-void myRadio_process(void)
放在while循环中执行
射频进入休眠API-void myRadio_abort(void)
获取无线中心频率-uint32_t myRadio_getFrequency(void)
设置无线中心频率-void myRadio_setFrequency(uint32_t freq)
获取发射功率-int8_t myRadio_getTxPower(void)
设置发射功率-void myRadio_setTxPower(int8_t power)
获取无线波特率-uint8_t myRadio_getBaudrate(void)
设置无线波特率-void myRadio_setBaudrate(uint8_t br)
进入数据包发射模式-void myRadio_transmit(rfTxPacket_ts *packet)
进入数据包接收模式-void myRadio_receiver(void)
无线特殊模式功能-void myRadio_setCtrl(controlMode_te mode, uint32_t value)
单载波发射功能,预留
进入direct模式,预留
连续调制波,预留
射频中断回调函数void myRadio_gpioCallback(uint8_t index)
外部中断检测定义在myRadio_gpio.c
其他,官方未定义,属于第三方定义的常用API,不同厂家的射频方案不一定都能用
1、本工程驱动软件只提供做演示项目使用,未经过大批量项目验证,客户需谨慎使用,如果使用在正式项目中引发的所有问题,本司概不负责。使用过程若发现任何问题,可及时与本司相关人员联系。 2、本工程所有文件可以用于商业性项目移植,无需向本司申请。