• Ra-01SC/Ra-01SCH模组驱动


    简介

    本文档主要介绍Ra-01SC/Ra-01SCH模组驱动例程使用方法;

    硬件准备

    设备清单

    硬件数量
    Ra-001SC/Ra-01SCH 模组2个
    杜邦线若干
    USB转TTL模块2个
    STM32F103C8T6开发板2个
    MicroUSB线(安卓数据线)2根

    接线说明

    STM32F103C8T6主控Ra-001SC/Ra-01SCH 模组
    3.3V3.3V
    GNDGND
    PA4NSS
    PA5SCK
    PA6MISO
    PA7MOSI
    PB1RESET
    PB11DIO1
    PA0DIO4
    STM32F103C8T6主控USB转TTL模块
    GNDGND
    PA_9Rx

    重要函数说明

    整个工程主要由两个部分组成:接收配置与处理以及发送配置与处理;

    1. 数据接收部分的配置:
    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 );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    数据接收部分的配置主要参数为:

    • 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:设置连续接收模式)
    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 );
    
    • 1
    • 2
    • 3
    • 4
    • 5

    数据接收部分的配置主要参数为:

    • 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:发送超时检测时间
    1. 回调函数部分的设置:
    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 );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 发射完成中断 “LLCC68OnTxDone” ,该回调函数主要用于处理数据发送完成以后需要处理的逻辑内容;
    • 接收完成中断 “LLCC68OnRxDone” ,该回调函数主要用于对接收到的数据进行处理;
    • 发射超时中断 “LLCC68OnTxTimeout” ,该回调函数主要用于处理数据发送超时后的逻辑内容;
    • 接收完成中断 “LLCC68OnRxTimeout” ,该回调函数主要用于处理数据接收超时后的逻辑内容;
    • 接收数据校验出错中断 “LLCC68OnRxTimeout” ,该回调函数主要用于处理接收到的数据校验失败后的逻辑内容;
    1. 配置接收超时:
    Radio.Rx( timeout )
    • 1

    配置参数说明:

    • timeout :设置接收超时

    注:若是从发送模式切换为接收模式,需事先设置模组进入待机模式,即调用函数 “Radio.Standby();”,之后再设置进入接收模式 。

    1. 配置数据发送:
    Radio.Send(buffer,size)
    • 1

    配置参数说明:

    • buffer:发送数据;
    • size:发送数据长度;

    调试

    1. 在文档 “project_config.h” 中设置各个射频参数,无论启用发送模式还是接收模式,这些参数均一致;
      参数配置

    2. 在文档 “main.c” 中设置模组启动进入接收或是设置循环发送数据;若是设置接收,则调用函数 “ExampleLLCC68ReciveDemo();”
      函数,若是设置不断发送,则调用 “ExampleLLCC68SendDemo();” 函数;

    3. 完成配置以后,一套设备烧录接收固件,另一套设备烧录发送固件,最后复位启动设备,并通过串口查看数据收发是否成功;

    4. 效果如下:
      测试效果

    联系我们

    以上就是本期分享的内容,目的在于让大家快速适应新品方案的开发,更多资料可从我们官网上获取。

    官方官网:https://www.ai-thinker.com
    开发资料:https://docs.ai-thinker.com/
    官方论坛:http://bbs.ai-thinker.com
    技术支持:support@aithinker.com

  • 相关阅读:
    汉语言语的声学特点是什么
    MYSQL的高阶语句
    【绝对干货】java面试笔试题及答案
    使用Flink AggregateFunction计算股票的平均值报错
    SpringMVC获得请求数据
    MQTT 消息服务器 EMQ简单对接DEMO
    电脑e盘文件没删除但不见了怎么办?了解原因与找回方法
    Java @PreDestroy 注解的使用
    企业网络“卫生”实用指南
    通过docker快速部署RabbitMq
  • 原文地址:https://blog.csdn.net/Boantong_/article/details/128126389