| 接上篇:LoRa模块初看 
 
 
 
 本贴主要实现在休眠模式下读取模块的配置从手册的6.5休眠模式的简介可以知道默认的TTL配置
 
   按照手册提供的管脚分配开始实现接线
 
   pin1是M0,pin2是M1,pin3是RX,pin4是TX,对应的管脚见上图,对应的USART6。
 本次使用的板卡为正点原子的探索者F407开发板2块,
 由于本人喜欢寄存器配置,所以直接拷贝了寄存器例程13----实验13 TFTLCD显示实验
 在usart.c中实现usart6的相关实现如下
 
 在main函数里面添加复制代码
void uart6_init(u32 pclk2,u32 bound)
{           
        float temp;
        u16 mantissa;
        u16 fraction;           
        temp=(float)(pclk2*1000000)/(bound*16);//µÃµ½USARTDIV@OVER8=0
        mantissa=temp;                                 //µÃµ½ÕûÊý²¿·Ö
        fraction=(temp-mantissa)*16; //µÃµ½Ð¡Êý²¿·Ö@OVER8=0 
    mantissa<<=4;
        mantissa+=fraction; 
        RCC->AHB1ENR|=1<<6;           //ʹÄÜPORTA¿ÚʱÖÓ  
        RCC->APB2ENR|=1<<5;          //ʹÄÜ´®¿Ú6ʱÖÓ 
        GPIO_Set(GPIOG,PIN9|PIN14,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);//PA9,PA10,¸´Óù¦ÄÜ,ÉÏÀÊä³ö
         GPIO_AF_Set(GPIOG,9,8);        //PA9,AF7
        GPIO_AF_Set(GPIOG,14,8);//PA10,AF7             
        //²¨ÌØÂÊÉèÖÃ
         USART6->BRR=mantissa;         //²¨ÌØÂÊÉèÖà        
        USART6->CR1&=~(1<<15);         //ÉèÖÃOVER8=0 
        USART6->CR1|=1<<3;          //´®¿Ú·¢ËÍʹÄÜ 
        //ʹÄܽÓÊÕÖÐ¶Ï 
        USART6->CR1|=1<<2;          //´®¿Ú½ÓÊÕʹÄÜ
        USART6->CR1|=1<<5;            //½ÓÊÕ»º³åÇø·Ç¿ÕÖжÏʹÄÜ                    
        MY_NVIC_Init(3,3,USART6_IRQn,2);//×é2£¬×îµÍÓÅÏȼ¶ 
        USART6->CR1|=1<<13;          //´®¿ÚʹÄÜ
}
void uart6_sendbyte(u8 ch)
{
    while((USART6->SR&0X40)==0);//Ñ»··¢ËÍ,Ö±µ½·¢ËÍÍê±Ï   
        USART6->DR = (u8) ch;   
}    
void uart6_send(u8* ptr,u16 size)
{
    while(size--)
    {
        while((USART6->SR&0X40)==0);
        USART6->DR = *ptr++;
    }
}
u8 lorarcv[512];
u16 loralen=0;
void USART6_IRQHandler(void)
{
#if SYSTEM_SUPPORT_OS                 //Èç¹ûSYSTEM_SUPPORT_OSÎªÕæ£¬ÔòÐèÒªÖ§³ÖOS.
        OSIntEnter();    
#endif
        if(USART6->SR&(1<<5))//½ÓÊÕµ½Êý¾Ý
        {         
                lorarcv[loralen]=USART6->DR; 
                uart1_sendbyte(lorarcv[loralen]); 
        loralen++;        
        } 
    if(loralen == 6)
        loralen = 0;
#if SYSTEM_SUPPORT_OS         //Èç¹ûSYSTEM_SUPPORT_OSÎªÕæ£¬ÔòÐèÒªÖ§³ÖOS.
        OSIntExit();                                                                                           
#endif
} 
u8 Tx_buffer[3]={0xc1,0xc1,0xc1};
 u8 Tx_buffer1[3]={0xc3,0xc3,0xc3};
 
 
 uart6_init(84,9600);
 
 uart6_send(Tx_buffer,3);
 delay_ms(5000);
 uart6_send(Tx_buffer1,3);
 delay_ms(5000);
 
 可以发现串口助手里面会接收到默认的配置参数
 
   
 这些配置官方手册都有,就不多说了,
 
 
 
 
 |