搜索
查看: 2017|回复: 3

[Lora] 【LoRa模块测评】主从控制LED

[复制链接]

该用户从未签到

100

主题

3786

帖子

1

蝴蝶豆

论坛元老

最后登录
2024-4-24
发表于 2018-4-17 13:44:23 | 显示全部楼层 |阅读模式
接上篇:【LoRa模块测评】实现模块互相通信




折腾了2天,终于可以登录论坛了,下面开始把上午的成果分享一下。
主要是实现主从控制LED的翻转,接线还是和之前一样,主要实现过程是
主机发送控制指令,从机接收到指令后,实现LED的翻转
先实现主机部分:

  1. <font size="3">u8 sendCMD[]={0x31,0x0d,0x0a};</font>
复制代码
上面是往从机发送指令,指令为0x31,在接收端第4位,
下面是从机部分:
从机串口接收部分
  1. <font size="3">
  2. u8 USART6_RX_BUF[USART_REC_LEN];     //接收缓冲,最大USART_REC_LEN个字节.
  3. u16 USART6_RX_STA=0;
  4. void USART6_IRQHandler(void)
  5. {
  6.     u8 res;        
  7. #if SYSTEM_SUPPORT_OS                 //如果SYSTEM_SUPPORT_OS为真,则需要支持OS.
  8.         OSIntEnter();   
  9. #endif
  10.         if(USART6->SR&(1<<5))//接收到数据
  11.         {         
  12.         res=USART6->DR;   
  13.                 uart1_sendbyte(res);
  14.         if((USART6_RX_STA&0x8000)==0)//接收未完成
  15.                 {
  16.                         if(USART6_RX_STA&0x4000)//接收到了0x0d
  17.                         {
  18.                                 if(res!=0x0a)USART6_RX_STA=0;//接收错误,重新开始
  19.                                 else USART6_RX_STA|=0x8000;        //接收完成了
  20.                         }else //还没收到0X0D
  21.                         {        
  22.                                 if(res==0x0d)USART6_RX_STA|=0x4000;
  23.                                 else
  24.                                 {
  25.                                         USART6_RX_BUF[USART6_RX_STA]=res;
  26.                                         USART6_RX_STA++;
  27.                                         if(USART6_RX_STA>(USART_REC_LEN-1))USART6_RX_STA=0;//接收数据错误,重新开始接收         
  28.                                 }                 
  29.                         }
  30.                 }         
  31.         }

  32. #if SYSTEM_SUPPORT_OS         //如果SYSTEM_SUPPORT_OS为真,则需要支持OS.
  33.         OSIntExit();                                                                                          
  34. #endif
  35. }</font>
复制代码
从机主控部分
  1. <font size="3"> M0=0;
  2.     M1=0;
  3.     delay_ms(500);
  4.           while(1)
  5.         {                 

  6.         if(USART6_RX_STA&0x8000)
  7.         {
  8.             USART6_RX_STA=0;
  9.             if(USART6_RX_BUF[3]==0x31)
  10.                 GPIOF->ODR ^= PIN9|PIN10;   
  11.         }
  12.         } </font>
复制代码


下载到板卡后,从机的LED实现了定期翻转,见视频


由于录制的视频为mp4格式,不会上传,

1532331013358.gif



补充内容 (2018-4-17 13:46):

主机部分少传的内容
Send_SX1276(1,sendCMD);
delay_ms(5000);
回复

使用道具 举报

该用户从未签到

100

主题

3786

帖子

1

蝴蝶豆

论坛元老

最后登录
2024-4-24
 楼主| 发表于 2018-4-17 13:45:31 | 显示全部楼层
主机部分少传的内容
Send_SX1276(1,sendCMD);
delay_ms(5000);
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-2-6 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    1182

    主题

    4967

    帖子

    1

    蝴蝶豆

    论坛元老

    最后登录
    2020-3-17
    发表于 2018-4-17 14:58:57 | 显示全部楼层
    楼主下次不要发布帖子在【活动专区】,这样就可以二次编辑了哦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    100

    主题

    3786

    帖子

    1

    蝴蝶豆

    论坛元老

    最后登录
    2024-4-24
     楼主| 发表于 2018-4-18 08:34:24 | 显示全部楼层
    好的,看别人都这样发,就也这样了
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-4-29 16:46 , Processed in 0.193086 second(s), 40 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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