发帖
3 0 0

Ra-01基础demo小试牛刀

emika
注册会员

1

主题

0

回帖

81

积分

注册会员

积分
81
Ra-01/02/01H系列 64 3 3 天前
[i=s] 本帖最后由 emika 于 2025-3-26 17:55 编辑 [/i]

前情基础

  1. 已经搭建好STM32F103C8T6开发环境,确保你所常用的下载器配合你的其他STM32F103C8T6开发板可以下载,正常跑通。
  2. 我买了两套LoRa-Kit+Ra-01转接板+Ra-01+双天线套餐。因为要一发一收,所以买了两套
    https://detail.tmall.com/item.htm?abbucket=6&id=615979347868&rn=90f6767fffb15a37cebfe9eabf555689&spm=a1z10.3-b-s.w4011-22642361401.75.75ab623dXiW5H9&skuId=5433973253918

image.png

LoRa-Kit开发板STM32F103C8T6基本运行测试(非必要)

确认你的环境能编译下载+串口跑通

使用下面的代码目的为确认你的环境能编译下载+串口跑通,

只要是tx配置为GPIO_Pin_9,rx配置为GPIO_Pin_10,使用其他的demo也可以

这里以野火的核心板参考历程为例

完整版代码链接:https://pan.baidu.com/s/1l5kkKe0YZCTAmQbzZ3Sqcg?pwd=faxb

提取码:faxb
使用的是其中3-USART1接发的demo
image.png

解压后按照下面这个目录即可打开demo

image.png

开发板上已经有串口芯片,这个配置对应的是开发板串口芯片直连电脑的串口

下面为串口配置部分关键代码

一般对应的tx配置为GPIO_Pin_9,rx配置为GPIO_Pin_10

/**
  * @brief  主函数
  * @param  无
  * @retval 无
  */
int main(void)
{
  /*初始化USART 配置模式为 115200 8-N-1,中断接收*/
  USART_Config();

	/* 发送一个字符串 */
	Usart_SendString( DEBUG_USARTx,"这是一个串口中断接收回显实验\n");
	printf("欢迎使用STM32开发板\n\n\n\n");

  while(1)
	{

	}
}

 /**
  * @brief  USART GPIO 配置,工作参数配置
  * @param  无
  * @retval 无
  */
void USART_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;

	// 打开串口GPIO的时钟
	DEBUG_USART_GPIO_APBxClkCmd(DEBUG_USART_GPIO_CLK, ENABLE);

	// 打开串口外设的时钟
	DEBUG_USART_APBxClkCmd(DEBUG_USART_CLK, ENABLE);

	// 将USART Tx的GPIO配置为推挽复用模式
	GPIO_InitStructure.GPIO_Pin = DEBUG_USART_TX_GPIO_PIN; // GPIO_Pin_9
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(DEBUG_USART_TX_GPIO_PORT, &GPIO_InitStructure);

	// 将USART Rx的GPIO配置为浮空输入模式
	GPIO_InitStructure.GPIO_Pin = DEBUG_USART_RX_GPIO_PIN; //GPIO_Pin_10
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_Init(DEBUG_USART_RX_GPIO_PORT, &GPIO_InitStructure);

	// 配置串口的工作参数
	// 配置波特率
	USART_InitStructure.USART_BaudRate = DEBUG_USART_BAUDRATE;
	// 配置 针数据字长
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;
	// 配置停止位
	USART_InitStructure.USART_StopBits = USART_StopBits_1;
	// 配置校验位
	USART_InitStructure.USART_Parity = USART_Parity_No ;
	// 配置硬件流控制
	USART_InitStructure.USART_HardwareFlowControl = 
	USART_HardwareFlowControl_None;
	// 配置工作模式,收发一起
	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
	// 完成串口的初始化配置
	USART_Init(DEBUG_USARTx, &USART_InitStructure);

	// 串口中断优先级配置
	NVIC_Configuration();

	// 使能串口接收中断
	USART_ITConfig(DEBUG_USARTx, USART_IT_RXNE, ENABLE);

	// 使能串口
	USART_Cmd(DEBUG_USARTx, ENABLE);	  
}

烧录前注意这里要改为你自己所用的烧录器哦

image.png

如图连接,将烧录器swdio swclk gnd三个脚位和开发板连接
开发板背面有对应丝印

Snipaste_2025-03-26_11-51-52.png

确认能烧录进去

Snipaste_2025-03-26_11-42-54.png

烧录后,不连接其他线,使用sscom连接板载串口
按下复位键,效果如下
如果没有效果,在sscom里换一个串口

Snipaste_2025-03-26_11-45-36.png

lora模组基础demo运行

https://docs.ai-thinker.com/lora%E8%A7%84%E6%A0%BC%E4%B9%A6

lora模组规格书
LoRa开发板规格书
里面有开发板原理图

Snipaste_2025-03-26_13-54-34.png

发射模组制作

下载demo

https://docs.ai-thinker.com/%E5%BC%80%E5%8F%91%E8%B5%84%E6%96%99

Snipaste_2025-03-26_11-23-24.png

下载好了使用keil打开,和上面一样编译烧录
多接一个烧录器串口的RX(左下角黄线),对应板子上脚位是BT_TX
按下复位键

image.png

切换到烧录器自带的串口(注意不是开发板的),即可看到不停输出发送信息

image.png
确认能跑通后,把烧录器所有线拔除,用一个ttl,如图连接
建议使用如图连接5V供电
不建议使用ttl的3.3V供电,因为有些ttl可能会导致供电不足

image.png
可以看到ttl不断获得反馈数据。

image.png

到此,这个发送模组就做好了,而且已经在不断发送lora数据了
如此放在一边不停发送即可

接收模组制作

拿另一个套开发板,将发送的代码注释,改为接收函数,编译

image.png

和上面一样连接烧录器,同时连接烧录器的串口rx并烧录

image.png

烧录后按一下复位键即可不停接收到发送模组发来的数据

image.png

──── 0人觉得很赞 ────

使用道具 举报

真不错,期待可以测试测试传输距离~
还是用STM32F103C8T6可以跑官方例子比较省事儿😄
进一步可以测一下通信距离,穿墙效果,功耗
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28200 个
  • 话题数: 40096 篇