单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:3876|回复: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)

评分

黑币 +50
收起理由
+ 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 单片机教程网