目录
- 简介
- 硬件准备
- 设备清单
- 接线说明
- 重要函数说明
- 调试
- 联系我们
简介
本文档主要介绍Ra-01SC/Ra-01SCH模组驱动例程使用方法;
硬件准备
设备清单
硬件 | 数量 |
---|---|
Ra-001SC/Ra-01SCH 模组 | 2个 |
杜邦线 | 若干 |
USB转TTL模块 | 2个 |
STM32F103C8T6开发板 | 2个 |
安卓线 | 2根 |
接线说明
STM32F103C8T6主控 | Ra-001SC/Ra-01SCH 模组 |
---|---|
3.3V | 3.3V |
GND | GND |
PA4 | NSS |
PA5 | SCK |
PA6 | MISO |
PA7 | MOSI |
PB1 | RESET |
PB11 | DIO1 |
PA0 | DIO4 |
STM32F103C8T6主控 | USB转TTL模块 |
---|---|
GND | GND |
PA_9 | Rx |
重要函数说明
整个工程主要由两个部分组成:接收配置与处理以及发送配置与处理;
- 数据接收部分的配置:
void RadioSetRxConfig( RadioModems_t modem, uint32_t bandwidth,
uint32_t datarate, uint8_t coderate,
uint32_t bandwidthAfc, uint16_t preambleLen,
uint16_t symbTimeout, bool fixLen,
uint8_t payloadLen,
bool crcOn, bool FreqHopOn, uint8_t HopPeriod,
bool iqInverted, bool rxContinuous );
数据接收部分的配置主要参数为:
- modem:配置射频模式,[0: FSK, 1: LoRa]
- bandwidth:带宽配置;
FSK : 0
LoRa: [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] - datarate:数据速率;
FSK : 600…300000 bits/s
LoRa: [6: 64, 7: 128, 8: 256, 9: 512, 10: 1024, 11: 2048, 12: 4096 chips] - coderate:编码率
FSK:设置为0
LoRa:[1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8] - bandwidthAfc:设置AFC带宽
FSK:数值 >= 2600 并且 <= 250000 Hz
LoRa:无效位,设置0 - preambleLen:前导码长度
FSK:字节数
LoRa:前导码长度(单位是:symbols) - symbTimeout:设置单接收超时时间
FSK:超时时间(单位为:字节数)
LoRa:超时时间(单位是:symbol说) - fixLen:设置数据包是否固定长度(0:表长度为变量;1:固定)
- payloadLen:负载长度,当启用fixLen时
- crcOn:是否开启CRC校验(0:关闭;1:开启)
- FreqHopOn:使能/不使能跳频功能
FSK:无效位,设置0
LoRa:(0:关闭;1:开启) - HopPeriod:设置跳频周期
FSK:无效位,设置0
LoRa:跳频周期(单位是:symbols) - iqInverted:是否开启IQ转换功能
FSK:无效位,设置0
LoRa:(0:关闭;1:开启) - rxContinuous:设置是否启动连续接收模式
(0:设置单次接收模式;1:设置连续接收模式)
- 数据发送部分的配置:
void RadioSetTxConfig( RadioModems_t modem, int8_t power, uint32_t fdev,
uint32_t bandwidth, uint32_t datarate,
uint8_t coderate, uint16_t preambleLen,
bool fixLen, bool crcOn, bool FreqHopOn,
uint8_t HopPeriod, bool iqInverted, uint32_t timeout );
数据接收部分的配置主要参数为:
- modem:配置射频模式,[0: FSK, 1: LoRa]
- bandwidth:带宽配置;
FSK : 0
LoRa: [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] - datarate:数据速率;
FSK : 600…300000 bits/s
LoRa: [6: 64, 7: 128, 8: 256, 9: 512, 10: 1024, 11: 2048, 12: 4096 chips] - coderate:编码率
FSK:设置为0
LoRa:[1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8] - preambleLen:前导码长度
FSK:字节数
LoRa:前导码长度(单位是:symbols) - fixLen:设置数据包是否固定长度(0:表长度为变量;1:固定)
- crcOn:是否开启CRC校验(0:关闭;1:开启)
- FreqHopOn:使能/不使能跳频功能
FSK:无效位,设置0
LoRa:(0:关闭;1:开启) - HopPeriod:设置跳频周期
FSK:无效位,设置0
LoRa:跳频周期(单位是:symbols) - iqInverted:是否开启IQ转换功能
FSK:无效位,设置0
LoRa:(0:关闭;1:开启) - timeout:发送超时检测时间
- 回调函数函数部分的设置:
static void LLCC68OnTxDone( void );
static void LLCC68OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr );
static void LLCC68OnTxTimeout( void );
static void LLCC68OnRxTimeout( void );
static void LLCC68OnRxError( void );
- 发射完成中断 “LLCC68OnTxDone” ,该回调函数主要用于处理数据发送完成以后需要处理的逻辑内容;
- 接收完成中断 “LLCC68OnRxDone” ,该回调函数主要用于对接收到的数据进行处理;
- 发射超时中断 “LLCC68OnTxTimeout” ,该回调函数主要用于处理数据发送超时后的逻辑内容;
- 接收完成中断 “LLCC68OnRxTimeout” ,该回调函数主要用于处理数据接收超时后的逻辑内容;
- 接收数据校验出错中断 “LLCC68OnRxTimeout” ,该回调函数主要用于处理接收到的数据校验失败后的逻辑内容;
- 设置进入接收模式:
Radio.Rx( timeout );
配置参数说明:
- timeout :设置接收超时
注:若是从发送数据切换配置接收数据是,实现设置模组进入待机模式,即调用函数 “Radio.Standby();” 。
- 发送数据函数:
Radio.Send(buffer,size);
配置参数说明:
- buffer:发送数据;
- size:发送数据长度;
调试
- 在文档 “project_config.h” 中设置各个射频参数,无论启用发送模式还是接收模式,这些参数均一致;
- 在文档 “main.c” 中设置模组启动进入接收或是设置循环发送数据;若是设置接收,则调用函数 “ExampleLLCC68ReciveDemo();”
函数,若是设置不断发送,则调用 “ExampleLLCC68SendDemo();” 函数; - 完成配置以后,一套设备烧录接收固件,另一套设备烧录发送固件,最后复位启动设备,并通过串口查看数据收发是否成功;
- 效果如下:
联系我们
以上就是本期分享的内容,目的在于让大家快速适应新品方案的开发,更多资料可从我们官网上获取。
官方官网:https://www.ai-thinker.com
开发资料:https://docs.ai-thinker.com/
官方论坛:http://bbs.ai-thinker.com
技术支持:support@aithinker.com