芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

STM32单片机语音播报当前GPS位置信息单片机解密

  1. 单片机解密/**********************************************************

  2.                                                                                                
  3. 单片机解密接线说明:
  4. STM32                                        GPS
  5. VCC                ------>        VCC
  6. GND                ------>        GND
  7. RX1                <------        TXD


  8. STM32                                        USB-TTL模块
  9. GND                ------>        GND
  10. TX1                ------>        RXD

  11. ***********************************************************/

  12. #include "stm32f10x.h"
  13. #include "delay.h"
  14. #include "usart.h"
  15. #include "led.h"

  16. //声明
  17. void errorLog(int num);
  18. void parseGpsBuffer(void);
  19. void printGpsBuffer(void);
  20. void uart2_init(u32 bound);
  21. u16 get_cmd(char input);
  22. void Voice_Play(u16 cmd);
  23. void Voice_GpsBuffer(void);
  24. void KEY_Init(void);

  25. #define KEY GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)

  26. int main(void)
  27. {       
  28.         delay_init();
  29.        
  30.         NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  31.         uart_init(9600);         //串口初始化为9600
  32.         uart2_init(9600);
  33.         KEY_Init();
  34.         delay_init();
  35.         Init_LEDpin();
  36.         LED1 = 1;
  37.        
  38.         clrStruct();
  39.        
  40.         printf("Welcome to use!\r\n");
  41.         printf("ILoveMcu.taobao.com!\r\n");
  42.         while(1)
  43.         {
  44.                 parseGpsBuffer();
  45.                 Voice_GpsBuffer();
  46.                 printGpsBuffer();
  47.                
  48.    
  49.         }
  50. }

  51. void errorLog(int num)
  52. {
  53.        
  54.         while (1)
  55.         {
  56.                   printf("ERROR%d\r\n",num);
  57.         }
  58. }

  59. void parseGpsBuffer()
  60. {
  61.         char *subString;
  62.         char *subStringNext;
  63.         char i = 0;
  64.         if (Save_Data.isGetData)
  65.         {
  66.                 Save_Data.isGetData = false;
  67.                 printf("**************\r\n");
  68.                 printf(Save_Data.GPS_Buffer);

  69.                
  70.                 for (i = 0 ; i <= 6 ; i++)
  71.                 {
  72.                         if (i == 0)
  73.                         {
  74.                                 if ((subString = strstr(Save_Data.GPS_Buffer, ",")) == NULL)
  75.                                         errorLog(1);        //解析错误
  76.                         }
  77.                         else
  78.                         {
  79.                                 subString++;
  80.                                 if ((subStringNext = strstr(subString, ",")) != NULL)
  81.                                 {
  82.                                         char usefullBuffer[2];
  83.                                         switch(i)
  84.                                         {
  85.                                                 case 1:memcpy(Save_Data.UTCTime, subString, subStringNext - subString);break;        //获取UTC时间
  86.                                                 case 2:memcpy(usefullBuffer, subString, subStringNext - subString);break;        //获取UTC时间
  87.                                                 case 3:memcpy(Save_Data.latitude, subString, subStringNext - subString);break;        //获取纬度信息
  88.                                                 case 4:memcpy(Save_Data.N_S, subString, subStringNext - subString);break;        //获取N/S
  89.                                                 case 5:memcpy(Save_Data.longitude, subString, subStringNext - subString);break;        //获取经度信息
  90.                                                 case 6:memcpy(Save_Data.E_W, subString, subStringNext - subString);break;        //获取E/W

  91.                                                 default:break;
  92.                                         }

  93.                                         subString = subStringNext;
  94.                                         Save_Data.isParseData = true;
  95.                                         if(usefullBuffer[0] == 'A')
  96.                                                 Save_Data.isUsefull = true;
  97.                                         else if(usefullBuffer[0] == 'V')
  98.                                                 Save_Data.isUsefull = false;

  99.                                 }
  100.                                 else
  101.                                 {
  102.                                         errorLog(2);        //解析错误
  103.                                 }
  104.                         }


  105.                 }
  106.         }
  107. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信