OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4348|回复: 7

求助:使用正点原子的LORA模块,透明传输,只能接受第一次传过来的数据

[复制链接]

5

主题

40

帖子

0

精华

高级会员

Rank: 4

积分
564
金钱
564
注册时间
2019-8-31
在线时间
172 小时
发表于 2020-5-30 10:25:45 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 侯先生爱生活 于 2020-5-30 10:37 编辑

求助:使用正点原子的LORA模块,透明传输,只能接受第一次传过来的数据。
两个STM32F103RC核心板,两个LORA模块,一个甲醛传感器,一个屏幕。

发射端为  核心板+LORA+甲醛传感器,把 甲醛传感器的数据用字符的形式传到 另一个核心板(接收端),接收端使用一个1.3寸的OLED屏幕显示LORA接收到的字符。

使用透明传输

现在最大的问题是:刚开机第一次传输时,屏幕能正常显示LORA接收到的字符串,之后再传输的数据,就不能显示了。  貌似也能接收几次,不过不能显示,传输个四五次之后,接收端就会卡死。


  发射端应该是正常的,可以一直发送数据。
char lora_tx_data[100];//lora传输数组
unsigned char lora_rx_data[100];//lora接收数组

unsigned char Uart2_Buff[1024];   //串口2缓冲数组  甲醛模块
unsigned char Uart2_Count=0;      //串口2累加变量
u8 state=0,s0=0,right=0,count=0;



float result;
float table=0.70;
u8 pm25Value;
u8 str[] = " CH2O_H        ";
u8 showBuffer[9] = {0};

//char  showBuffer[9] = {0};


uint8_t key1_flag=0,key2_flag=0,key3_flag=0,memory_flag=0;
uint8_t sec1=0,sec2=0;
uint32_t Tim_ms=0;



int main(void)
{
         int i;
         SystemInit();//系统时钟初始化  移植程序
        delay_init();                        //延时函数初始化          
        NVIC_Configuration();   //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
        LED_Init();                                //LED端口初始化
        OLED_Init();                              //初始化OLED      
//         uart_init(115200);
         
         
                                USART1_Config();//默认串口
                                USART3_Config(115200); //LORA使用串口 USART3 配置            *******
                                LORA_Init();//lora模块初始化
         
                                uart2_init();  //甲醛传感器使用串口2   默认为9600   写在函数里           
               
                OLED_Clear();
         
         OLED_ShowString(0,0,"STM32");
         
         OLED_ShowString(94,0,"LORA");          
         
         //                显示一个“CH20:        mg/m3”
               
         OLED_ShowString(0,2,"CH2O");                
   OLED_ShowString(35,2,":");

         
         
         
         
        while(1)
        {               

                LED=!LED;
               


////////发送LORA数据
//if(right==1)//如果right==1
//                {
//                        right=0;
//                        pm25Value = Uart2_Buff[4]*256 + Uart2_Buff[5];
//                        result = pm25Value / 66.64 * 0.08;
//                                       
//                        //把数据变成字符显示
////                        sprintf((char*)showBuffer,"CH2O:%1.4fmg/m3",result);
//                        sprintf((char*)showBuffer,"%1.4fmg/m3",result);//把数据变成字符显示
//                        OLED_ShowString(20,4,showBuffer);                 //显示甲醛浓度值       
//                       
//                        //    LORA数据发送  
//         sprintf((char*)lora_tx_data,"%1.4fmg/m3",result);//把数据变成字符串


//                     lora_transmit(lora_tx_data);       
//                       
////                     lora_transmit(showBuffer);               
//               
//                }


//////接收LORA数据
                                lora_receive();//接收LORA数据                       
               
                                        OLED_ShowString(20,4,lora_rx_data);                 //显示甲醛浓度值       

       
                                          OLED_ShowNum(0,5,i,4,16);
                                        i++;
//                }














最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

40

帖子

0

精华

高级会员

Rank: 4

积分
564
金钱
564
注册时间
2019-8-31
在线时间
172 小时
 楼主| 发表于 2020-5-30 10:25:46 | 显示全部楼层
login_FAE 发表于 2020-5-30 11:57
接收端不用单片机,lora连接到电脑,用串口助手看下接收数据对不对的。
如果数据正常,就检查你接收端单片 ...

谢谢  已经解决了  
回复

使用道具 举报

5

主题

40

帖子

0

精华

高级会员

Rank: 4

积分
564
金钱
564
注册时间
2019-8-31
在线时间
172 小时
 楼主| 发表于 2020-5-30 10:46:12 | 显示全部楼层
这是源文件

第一版:只能就收并显示第一次数据.rar

335.24 KB, 下载次数: 22

回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5136
金钱
5136
注册时间
2014-8-26
在线时间
1316 小时
发表于 2020-5-30 11:57:15 | 显示全部楼层
接收端不用单片机,lora连接到电脑,用串口助手看下接收数据对不对的。
如果数据正常,就检查你接收端单片机代码了
回复

使用道具 举报

5

主题

40

帖子

0

精华

高级会员

Rank: 4

积分
564
金钱
564
注册时间
2019-8-31
在线时间
172 小时
 楼主| 发表于 2020-5-30 13:26:42 | 显示全部楼层
login_FAE 发表于 2020-5-30 11:57
接收端不用单片机,lora连接到电脑,用串口助手看下接收数据对不对的。
如果数据正常,就检查你接收端单片 ...

LORA连到接收是正常的,可以看到字节数在增加,不过显示不出来,是不是因为转化成了字符串之后  ,电脑不能显示了?
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4471
金钱
4471
注册时间
2013-4-22
在线时间
335 小时
发表于 2020-5-30 15:47:15 | 显示全部楼层
调试一下看看数据对不对
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2020-6-19
在线时间
5 小时
发表于 2020-6-19 10:09:54 | 显示全部楼层

请问LORA模块问题怎么解决的。我现在遇到类似的问题了。能提示接收到了,就是显示不出来。
回复

使用道具 举报

5

主题

40

帖子

0

精华

高级会员

Rank: 4

积分
564
金钱
564
注册时间
2019-8-31
在线时间
172 小时
 楼主| 发表于 2020-6-22 08:48:47 | 显示全部楼层
bp0707 发表于 2020-6-19 10:09
请问LORA模块问题怎么解决的。我现在遇到类似的问题了。能提示接收到了,就是显示不出来。

提前用CH340配置好LORA,然后写一个串口接收lora的程序就好了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 12:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表