1614|2

41

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

E22-400TBL-01 LoRa模块测试版+03驱动 [复制链接]

在上章初步测试了E22-400TBL-01的LoRa模块后,正巧手头有两块某STM32F103开发板来可以用来驱动该LoRa模块,通过查阅《E22-400T22S_UserManual_CN_V2.7》手册可知核心E22-400T22S模块可以直接通过串口来进行通讯,同时可以运用GPIO的电平信号来控制M0、M1进行模式的切换。

下图是STM32F103开发板与E22-400TBL-01连接实物图:

 

编程思路是将上位机发送的数据先经过STM32F103的UART1,再通过STM32F103的UART2发送给E22-400T22S模块,E22-400T22S模块将数据通过RF发送出去;同理,E22-400T22S模块通过RF接收到的数据先经过STM32F103的UART2,再通过STM32F103的UART1发送给上位机。

运用STM32CubeMX生成形成工程:

 

生成的工程用keil进行编辑,在生成的工程中加入M0,M1的控制引脚,以及串口中断的处理方式:

//模式0:透传模式
void LoRa_mode0(void)
{
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_RESET);
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
}

//模式1:WOR模式
void LoRa_mode1(void)
{
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
}
//模式2:配置模式
void LoRa_mode2(void)
{
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_RESET);
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
}
//模式3:配置模式
void LoRa_mode3(void)
{
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
}
void USART1_IRQHandler(void)
{
  /* USER CODE BEGIN USART1_IRQn 0 */
  uint8_t ch=0;
  /* USER CODE END USART1_IRQn 0 */
  HAL_UART_IRQHandler(&huart1);
  /* USER CODE BEGIN USART1_IRQn 1 */
  if(__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXNE) !=RESET)
  {
	  ch=(uint16_t)READ_REG(huart1.Instance->DR);
	  WRITE_REG(huart2.Instance->DR,ch);
  }
  /* USER CODE END USART1_IRQn 1 */
}

void USART2_IRQHandler(void)
{
  /* USER CODE BEGIN USART2_IRQn 0 */
  uint8_t ch;
  /* USER CODE END USART2_IRQn 0 */
  HAL_UART_IRQHandler(&huart2);
  /* USER CODE BEGIN USART2_IRQn 1 */
  if(__HAL_UART_GET_FLAG(&huart2, UART_FLAG_RXNE) != RESET)
  {
	  ch=(uint16_t)READ_REG(huart2.Instance->DR);
	  WRITE_REG(huart1.Instance->DR, ch);
  }
  /* USER CODE END USART2_IRQn 1 */
}

并下载验证:

 

 

通过验证,可以发现该程序可以实现两个STM32F103开发板分别控制两个LoRa模块相互进行数据交互,为接下来的相关测试实验以及项目上的应用提供便利。

此帖出自RF/无线论坛

最新回复

通过验证,可以发现该程序可以实现两个STM32F103开发板分别控制两个LoRa模块相互进行数据交互,为接下来的相关测试实验以及项目上的应用提供便利。 可以测试一下各个速率时的丢包情况。用CRC较验一下。   详情 回复 发表于 2022-10-10 09:01
点赞 关注
 

回复
举报

6960

帖子

11

TA的资源

版主

沙发
 

通过验证,可以发现该程序可以实现两个STM32F103开发板分别控制两个LoRa模块相互进行数据交互,为接下来的相关测试实验以及项目上的应用提供便利。

可以测试一下各个速率时的丢包情况。用CRC较验一下。

此帖出自RF/无线论坛

点评

短距离丢包估计不会很明显,长距离的话就不好说了  详情 回复 发表于 2022-10-10 13:48
 
 

回复

41

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
lugl4313820 发表于 2022-10-10 09:01 通过验证,可以发现该程序可以实现两个STM32F103开发板分别控制两个LoRa模块相互进行数据交互,为接下来的 ...

短距离丢包估计不会很明显,长距离的话就不好说了

此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表