找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4068|回复: 4
收起左侧

MSP430成功驱动SX1278模块 时钟+阶梯价+SLE4442+AD电压检测程序

[复制链接]
ID:55767 发表于 2019-2-28 16:31 | 显示全部楼层 |阅读模式
MSP430成功驱动SX1278模块的代码工程
0.png

单片机源程序如下:
  1. #include "Typedef.h"

  2. #if defined( USE_SX1276_RADIO )

  3. #include "sx1276.h"
  4. #include "sx1276-Hal.h"
  5. #include "sx1276-LoRa.h"

  6. U8 RegOpModed;

  7. void SX1276Init( void )
  8. {
  9.     RESET_OUT();
  10.     SDI_OUT();
  11.     SDO_IN();
  12.     SCK_OUT();
  13.     SEL_OUT();

  14.     SX1276Reset( );
  15.     SX1276Read(REG_LR_VERSION,&RegOpModed);
  16.     SX1276SetLoRaOn();
  17.     // Initialize LoRa modem
  18.     SX1276LoRaInit();
  19. }

  20. void SX1276Reset( void )
  21. {
  22.     U16 i;
  23.     SX1276SetReset( RADIO_RESET_ON );
  24.     for(i = 0 ; i < 1000; i++);
  25.     for(i = 0 ; i < 1000; i++);
  26.     // Wait 1ms
  27.     //Delayms(1);

  28.     SX1276SetReset( RADIO_RESET_OFF );
  29.     for(i = 0 ; i < 6000; i++);
  30.     for(i = 0 ; i < 6000; i++);
  31.     // Delayms(6);
  32. }


  33. void SX1276SetLoRaOn(void)
  34. {
  35.     U8 RegOpMode;
  36.     U8 RegDioMapping1,RegDioMapping2;

  37.     SX1276LoRaSetOpMode( RFLR_OPMODE_SLEEP );

  38.     SX1276Read(REG_LR_OPMODE,&RegOpMode);

  39.     RegOpMode = (RegOpMode & RFLR_OPMODE_LONGRANGEMODE_MASK ) | RFLR_OPMODE_LONGRANGEMODE_ON;
  40.     SX1276Write( REG_LR_OPMODE, RegOpMode );

  41.     SX1276LoRaSetOpMode( RFLR_OPMODE_STANDBY );
  42.     // RxDone               RxTimeout                   FhssChangeChannel           CadDone
  43.     RegDioMapping1 = RFLR_DIOMAPPING1_DIO0_00 | RFLR_DIOMAPPING1_DIO1_00 | RFLR_DIOMAPPING1_DIO2_00 | RFLR_DIOMAPPING1_DIO3_00;
  44.     // CadDetected          ModeReady
  45.     RegDioMapping2 = RFLR_DIOMAPPING2_DIO4_00 | RFLR_DIOMAPPING2_DIO5_00;
  46.     SX1276Write(REG_LR_DIOMAPPING1, RegDioMapping1);
  47.     SX1276Write( REG_LR_DIOMAPPING2, RegDioMapping2);
  48. }

  49. bool SX1276GetLoRaOn( void )
  50. {
  51.     return 1;
  52. }

  53. void SX1276SetOpMode( uint8_t opMode )
  54. {
  55.     SX1276LoRaSetOpMode( opMode );
  56. }

  57. uint8_t SX1276GetOpMode( void )
  58. {
  59.     return SX1276LoRaGetOpMode( );
  60. }

  61. double SX1276ReadRssi( void )
  62. {
  63.     return SX1276LoRaReadRssi( );
  64. }

  65. uint8_t SX1276ReadRxGain( void )
  66. {
  67.     return SX1276LoRaReadRxGain( );
  68. }

  69. uint8_t SX1276GetPacketRxGain( void )
  70. {
  71.     return SX1276LoRaGetPacketRxGain(  );
  72. }


  73. double SX1276GetPacketRssi( void )
  74. {
  75.     return SX1276LoRaGetPacketRssi( );
  76. }

  77. uint32_t SX1276GetPacketAfc( void )
  78. {
  79.     while (1)
  80.     {
  81.         ;
  82.     }
  83. }


  84. uint8_t SX1276GetRFState( void )
  85. {
  86.     return SX1276LoRaGetRFState( );
  87. }


  88. uint32_t SX1276Process( void )
  89. {
  90.     return 0;//SX1276LoRaProcess( );
  91. }

  92. #endif // USE_SX1276_RADIO
复制代码

  1. ////////////////V2.04////////////////////
  2. //       PCB: W-ZT-Z-V2.04             //
  3. //      设计:徐    2015年4月8日    //
  4. //      环境:IAR 5.30                  //
  5. //      时钟+阶梯价+SX1278+SLE4442+AD电压检测
  6. //      单片机工作频率=7 995392 Hz
  7. //1、
  8. //2、
  9. //3、
  10. //////////////////////////////////////////

  11. #include "msp430f149.h"
  12. #include "stdlib.h"
  13. #include "sx1276.h"
  14. #include "sx1276-LoRa.h"
  15. #include <stdbool.h>
  16. #include "PhyLyr.h"
  17. #include "Common.h"


  18. U8 SendFlag = 0;
  19. U8 SendTimerFlag = 0;
  20. U8 SendTimer = 0;


  21. void main(void)
  22. {
  23.     U8 i;
  24.     U8 CrcValue = 0;

  25.     WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗
  26.     SCFQCTL=SCFQ_2M;//2M
  27.     FLL_CTL0|= XCAP11PF; // Configure load caps
  28.     BTCTL =BT_fCLK2_ACLK_DIV256+ BT_ADLY_1000 + LCDFREQ_128;
  29.     IE2|=BTIE;

  30.     WriteDefaultConfigParm();
  31.     PW_ON;
  32.     //IRQ_IN();
  33.     P1IE=0X02;
  34.     P1IES=0x00;  //上升沿中断

  35.     SX1276Init();
  36.     SX1276LoRaStartRx();
  37.     ENABLE_INT();
  38.     _EINT();                  //开放中断


  39.     for(i = 0; i < 20; i++)
  40.     {
  41.         RFBuffer[i] = i;
  42.         CrcValue += RFBuffer[i];
  43.     }
  44.     RFBuffer[i] = CrcValue;


  45.     //SendTimerFlag = 1;
  46.     while(1)
  47.     {
  48.         if(SendFlag == 1)
  49.         {
  50.             SendFlag = 0;
  51.             LED_ON;
  52.             SX1276LoRaSetTxPacket(RFBuffer,21);
  53.         }
  54.         PhyLyr_Task();
  55.     }
  56. }

  57. #pragma vector = BASICTIMER_VECTOR
  58. __interrupt void btinter(void)
  59. {
  60.     SendFlag = 0;
  61.     __bic_SR_register(SCG0);
  62. }
复制代码

所有资料51hei提供下载:
Msp430 1278 20160421.zip (644.53 KB, 下载次数: 73)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:314910 发表于 2020-12-13 17:26 | 显示全部楼层
真是不错的东东,谢谢楼主
回复

使用道具 举报

ID:1111194 发表于 2024-2-20 18:30 | 显示全部楼层
請問作者是否有其他的下載方式可以提供呢?
回复

使用道具 举报

ID:399111 发表于 2024-4-22 15:38 | 显示全部楼层
楼主,请问,怎么实现一对多配对????
回复

使用道具 举报

ID:399111 发表于 2024-4-22 15:38 | 显示全部楼层
请问一下,,怎么实现一对多配对???
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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