你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【LoRa模块测评】实现休眠模式读取配置

[复制链接]
stary666 提问时间:2018-4-17 08:16 /
接上篇:LoRa模块初看




本贴主要实现在休眠模式下读取模块的配置从手册的6.5休眠模式的简介可以知道默认的TTL配置
捕获.JPG
按照手册提供的管脚分配开始实现接线
11.jpg
pin1是M0,pin2是M1,pin3是RX,pin4是TX,对应的管脚见上图,对应的USART6。
本次使用的板卡为正点原子的探索者F407开发板2块,
由于本人喜欢寄存器配置,所以直接拷贝了寄存器例程13----实验13 TFTLCD显示实验
在usart.c中实现usart6的相关实现如下

  1. void uart6_init(u32 pclk2,u32 bound)
  2. {           
  3.         float temp;
  4.         u16 mantissa;
  5.         u16 fraction;           
  6.         temp=(float)(pclk2*1000000)/(bound*16);//µÃµ½USARTDIV@OVER8=0
  7.         mantissa=temp;                                 //µÃµ½ÕûÊý²¿·Ö
  8.         fraction=(temp-mantissa)*16; //µÃµ½Ð¡Êý²¿·Ö@OVER8=0
  9.     mantissa<<=4;
  10.         mantissa+=fraction;
  11.         RCC->AHB1ENR|=1<<6;           //ʹÄÜPORTA¿ÚʱÖÓ  
  12.         RCC->APB2ENR|=1<<5;          //ʹÄÜ´®¿Ú6ʱÖÓ
  13.         GPIO_Set(GPIOG,PIN9|PIN14,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);//PA9,PA10,¸´Óù¦ÄÜ,ÉÏÀ­Êä³ö
  14.          GPIO_AF_Set(GPIOG,9,8);        //PA9,AF7
  15.         GPIO_AF_Set(GPIOG,14,8);//PA10,AF7            
  16.         //²¨ÌØÂÊÉèÖÃ
  17.          USART6->BRR=mantissa;         //²¨ÌØÂÊÉèÖà        
  18.         USART6->CR1&=~(1<<15);         //ÉèÖÃOVER8=0
  19.         USART6->CR1|=1<<3;          //´®¿Ú·¢ËÍʹÄÜ

  20.         //ʹÄܽÓÊÕÖжÏ
  21.         USART6->CR1|=1<<2;          //´®¿Ú½ÓÊÕʹÄÜ
  22.         USART6->CR1|=1<<5;            //½ÓÊÕ»º³åÇø·Ç¿ÕÖжÏʹÄÜ                    
  23.         MY_NVIC_Init(3,3,USART6_IRQn,2);//×é2£¬×îµÍÓÅÏȼ¶

  24.         USART6->CR1|=1<<13;          //´®¿ÚʹÄÜ
  25. }

  26. void uart6_sendbyte(u8 ch)
  27. {
  28.     while((USART6->SR&0X40)==0);//Ñ­»··¢ËÍ,Ö±µ½·¢ËÍÍê±Ï   
  29.         USART6->DR = (u8) ch;   
  30. }   

  31. void uart6_send(u8* ptr,u16 size)
  32. {
  33.     while(size--)
  34.     {
  35.         while((USART6->SR&0X40)==0);
  36.         USART6->DR = *ptr++;
  37.     }
  38. }

  39. u8 lorarcv[512];
  40. u16 loralen=0;
  41. void USART6_IRQHandler(void)
  42. {
  43. #if SYSTEM_SUPPORT_OS                 //Èç¹ûSYSTEM_SUPPORT_OSΪÕ棬ÔòÐèÒªÖ§³ÖOS.
  44.         OSIntEnter();   
  45. #endif
  46.         if(USART6->SR&(1<<5))//½ÓÊÕµ½Êý¾Ý
  47.         {         
  48.                 lorarcv[loralen]=USART6->DR;
  49.                 uart1_sendbyte(lorarcv[loralen]);
  50.         loralen++;        
  51.         }
  52.     if(loralen == 6)
  53.         loralen = 0;
  54. #if SYSTEM_SUPPORT_OS         //Èç¹ûSYSTEM_SUPPORT_OSΪÕ棬ÔòÐèÒªÖ§³ÖOS.
  55.         OSIntExit();                                                                                          
  56. #endif
  57. }
复制代码
在main函数里面添加
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);

可以发现串口助手里面会接收到默认的配置参数
12.jpg

这些配置官方手册都有,就不多说了,



收藏 评论0 发布时间:2018-4-17 08:16

举报

0个回答

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版