久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5507|回復: 0
打印 上一主題 下一主題
收起左側

GY-50 L3G4200D三軸陀螺儀xs128與k60源碼與資料下載

[復制鏈接]
跳轉到指定樓層
樓主
GY-50三軸陀螺儀資料以上傳,有需要的朋友請自行下載。希望大家能夠相互討論,互相學習

電路原理圖如下:


L3G4200D


L3G4200D例程(xs128與k60平臺)
單片機源程序如下:
  1. /*!
  2. *     COPYRIGHT NOTICE
  3. *     Copyright (c) 2013,山外科技
  4. *     All rights reserved.
  5. *     除注明出處外,以下所有內容版權均屬山外科技所有,未經允許,不得用于商業用途,
  6. *     修改內容時必須保留山外科技的版權聲明。
  7. *
  8. * @file       MK60_conf.c
  9. * @brief      山外K60 平臺配置功能實現文件
  10. * @author     山外科技
  11. * @version    v5.1
  12. * @date       2013-06-26
  13. */

  14. #include    "common.h"
  15. #include    "stdio.h"
  16. #include    "MK60_uart.h"
  17. #include    "VCAN_KEY.h"
  18. #include    "VCAN_LED.h"
  19. #include    "MK60_flash.h"


  20. /*!
  21. *  @brief      斷言失敗所執行的函數
  22. *  @param      file    文件路徑地址
  23. *  @param      line    行數
  24. *  @since      v5.0
  25. *  Sample usage:       assert_failed(__FILE__, __LINE__);
  26. */
  27. const char ASSERT_FAILED_STR[] = "Assertion failed in %s at line %d\n";

  28. void assert_failed(char *file, int line)
  29. {
  30.     led_init(LED0);
  31.     while (1)
  32.     {

  33.         DEBUG_PRINTF(ASSERT_FAILED_STR, file, line);      //通過串口提示斷言失敗

  34.         //死循環等待程序員檢測為何斷言失敗
  35.         led_turn(LED0);
  36.         DELAY_MS(1000);

  37.     }
  38. }

  39. /*!
  40. *  @brief      重定義printf 到串口
  41. *  @param      ch      需要打印的字節
  42. *  @param      stream  數據流
  43. *  @since      v5.0
  44. *  @note       此函數由編譯器自帶庫里的printf所調用
  45. */
  46. int fputc(int ch, FILE *stream)
  47. {
  48.     uart_putchar(VCAN_PORT, (char)ch);
  49.     return(ch);
  50. }

  51. /*!
  52. *  @brief      啟動前進行檢測(檢測按鍵是否按下,按下則進入死循環,防止進入 main 函數,松開按鍵后再按下則進行解鎖)
  53. *  @since      v5.0
  54. *  @note       此函數可避免 下載口在 main 前 復用了導致無法下載等問題
  55. */
  56. void start_check()
  57. {
  58.     uint8 flag = 0;

  59.     key_init(KEY_A);

  60.     if(key_check(KEY_A) == KEY_DOWN )
  61.     {
  62.         //按鍵按下

  63.         led_init(LED0);

  64.         while(1)
  65.         {

  66.             if(key_check(KEY_A) == KEY_UP)
  67.             {
  68.                 flag = 1;
  69.             }

  70.             led_turn(LED0);
  71.             printf("\n進入死循環等待!");
  72.             DELAY_MS(500);                          //此處的延時,可起到 按鍵 消抖的功能

  73.             //如果 送開按鍵后,再按下 按鍵,則 進行解鎖 操作
  74.             if((flag == 1)  && (key_check(KEY_A) == KEY_DOWN ))
  75.             {
  76.                 while(key_check(KEY_A) == KEY_DOWN)         //等待按鍵 彈起
  77.                 {
  78.                     led_turn(LED0);
  79.                     DELAY_MS(100);                          //此處的延時,可起到 按鍵 消抖的功能
  80.                 }

  81.                 while(key_check(KEY_A) == KEY_UP)         //等待按鍵 彈起后 再 進行解鎖
  82.                 {
  83.                     led_turn(LED0);
  84.                     DELAY_MS(50);                          //此處的延時,可起到 按鍵 消抖的功能
  85.                 }

  86.                 printf("\n進行解鎖操作,請重新刷入固件");

  87.                 //解鎖單片機
  88.                 flash_init();
  89.                 DELAY_MS(100);
  90.                 flash_erase_sector(0);        //擦除扇區 0  (解鎖)
  91.                 NVIC_SystemReset();           //復位單片機

  92.             }
  93.         }
  94.     }
  95. }

  96. #ifdef  DEBUG
  97. // VECTOR_TABLE end
  98. static char vector_str[][15];
  99. #endif

  100. /*!
  101. *  @brief      默認中斷服務函數
  102. *  @since      v5.0
  103. *  @note       此函數寫入中斷向量表里,不需要用戶執行
  104. */
  105. void default_isr(void)
  106. {


  107. #ifdef  DEBUG
  108. #define VECTORNUM    ((SCB_ICSR & SCB_ICSR_VECTACTIVE_MASK)>>SCB_ICSR_VECTACTIVE_SHIFT)
  109.                             //等效于 (*(volatile uint8_t*)(0xE000ED04))
  110.     uint8 vtr = VECTORNUM;
  111.     led_init(LED1);

  112.     while(1)
  113.     {
  114.         led_turn(LED1);
  115.         DEBUG_PRINTF("\n****default_isr entered on vector %d*****\n\n%s Interrupt", vtr, vector_str[vtr]);

  116.         DELAY_MS(1000);
  117.     }
  118. #else
  119.     return;
  120. #endif
  121. }

  122. #ifdef DEBUG

  123. char vector_str[][15] =
  124. {
  125.     /******  Cortex-M4 Processor Exceptions Numbers ****************************************************************/
  126.     "",                         //0
  127.     "",
  128.     "NonMaskable"               , /*!< 2 Non Maskable Interrupt                              */
  129.     "HardFault"                 , /*!< 3 Hard Fault                                          */
  130.     "MemManagement"             , /*!< 4 Cortex-M4 Memory Management Interrupt               */
  131.     "BusFault"                  , /*!< 5 Cortex-M4 Bus Fault Interrupt                       */
  132.     "UsageFault"                , /*!< 6 Cortex-M4 Usage Fault Interrupt                     */
  133.     "",                         //7
  134.     "",
  135.     "",                         //9
  136.     "",
  137.     "SVCall"                    , /*!< 11 Cortex-M4 SV Call Interrupt                        */
  138.     "DebugMonitor"              , /*!< 12 Cortex-M4 Debug Monitor Interrupt                  */
  139.     "",
  140.     "PendSV"                    , /*!< 14 Cortex-M4 Pend SV Interrupt                        */
  141.     "SysTick"                   , /*!< 15 Cortex-M4 System Tick Interrupt                    */
  142.     /******  Kinetis 60 specific Interrupt Numbers **********************************************************************/
  143.     "DMA0"                      , // DMA Channel 0 Transfer Complete
  144.     "DMA1"                      , // DMA Channel 1 Transfer Complete
  145.     "DMA2"                      , // DMA Channel 2 Transfer Complete
  146.     "DMA3"                      , // DMA Channel 3 Transfer Complete
  147.     "DMA4"                      , // DMA Channel 4 Transfer Complete
  148.     "DMA5"                      , // DMA Channel 5 Transfer Complete
  149.     "DMA6"                      , // DMA Channel 6 Transfer Complete
  150.     "DMA7"                      , // DMA Channel 7 Transfer Complete
  151.     "DMA8"                      , // DMA Channel 8 Transfer Complete
  152.     "DMA9"                      , // DMA Channel 9 Transfer Complete
  153.     "DMA10"                     , // DMA Channel 10 Transfer Complete
  154.     "DMA11"                     , // DMA Channel 11 Transfer Complete
  155.     "DMA12"                     , // DMA Channel 12 Transfer Complete
  156.     "DMA13"                     , // DMA Channel 13 Transfer Complete
  157.     "DMA14"                     , // DMA Channel 14 Transfer Complete
  158.     "DMA15"                     , // DMA Channel 15 Transfer Complete
  159.     "DMA_Error"                 , // DMA Error Interrupt
  160.     "MCM"                       , // Normal Interrupt
  161.     "FTFL"                      , // FTFL Interrupt
  162.     "Read_Collision"            , // Read Collision Interrupt
  163.     "LVD_LVW"                   , // Low Voltage Detect, Low Voltage Warning
  164.     "LLW"                       , // Low Leakage Wakeup
  165.     "Watchdog"                  , // WDOG Interrupt
  166.     "RNG"                       , // RNGB Interrupt
  167.     "I2C0"                      , // I2C0 interrupt
  168.     "I2C1"                      , // I2C1 interrupt
  169.     "SPI0"                      , // SPI0 Interrupt
  170.     "SPI1"                      , // SPI1 Interrupt
  171.     "SPI2"                      , // SPI2 Interrupt
  172.     "CAN0_OR_MB_buf"            , // CAN0 OR'd Message Buffers Interrupt
  173.     "CAN0_Bus_Off"              , // CAN0 Bus Off Interrupt
  174.     "CAN0_Error"                , // CAN0 Error Interrupt
  175.     "CAN0_Tx_Warning"           , // CAN0 Tx Warning Interrupt
  176.     "CAN0_Rx_Warning"           , // CAN0 Rx Warning Interrupt
  177.     "CAN0_Wake_Up"              , // CAN0 Wake Up Interrupt
  178.     "Reserved51"                , // 保留 interrupt 51
  179.     "Reserved52"                , // 保留 interrupt 52
  180.     "CAN1_OR_MB_buf"            , // CAN1 OR'd Message Buffers Interrupt
  181.     "CAN1_Bus_Off"              , // CAN1 Bus Off Interrupt
  182.     "CAN1_Error"                , // CAN1 Error Interrupt
  183.     "CAN1_Tx_Warning"           , // CAN1 Tx Warning Interrupt
  184.     "CAN1_Rx_Warning"           , // CAN1 Rx Warning Interrupt
  185.     "CAN1_Wake_Up"              , // CAN1 Wake Up Interrupt
  186.     "Reserved59"                , // 保留 interrupt 59
  187.     "Reserved60"                , // 保留 interrupt 60
  188.     "UART0_RX_TX"               , // UART0 Receive/Transmit interrupt
  189.     "UART0_ERR"                 , // UART0 Error interrupt
  190.     "UART1_RX_TX"               , // UART1 Receive/Transmit interrupt
  191.     "UART1_ERR"                 , // UART1 Error interrupt
  192.     "UART2_RX_TX"               , // UART2 Receive/Transmit interrupt
  193.     "UART2_ERR"                 , // UART2 Error interrupt
  194.     "UART3_RX_TX"               , // UART3 Receive/Transmit interrupt
  195.     "UART3_ERR"                 , // UART3 Error interrupt
  196.     "UART4_RX_TX"               , // UART4 Receive/Transmit interrupt
  197.     "UART4_ERR"                 , // UART4 Error interrupt
  198.     "UART5_RX_TX"               , // UART5 Receive/Transmit interrupt
  199.     "UART5_ERR"                 , // UART5 Error interrupt
  200.     "ADC0"                      , // ADC0 interrupt
  201.     "ADC1"                      , // ADC1 interrupt
  202.     "CMP0"                      , // CMP0 interrupt
  203.     "CMP1"                      , // CMP1 interrupt
  204.     "CMP2"                      , // CMP2 interrupt
  205.     "FTM0"                      , // FTM0 fault, overflow and channels interrupt
  206.     "FTM1"                      , // FTM1 fault, overflow and channels interrupt
  207.     "FTM2"                      , // FTM2 fault, overflow and channels interrupt
  208.     "CMT"                       , // CMT interrupt
  209.     "RTC"                       , // RTC interrupt
  210.     "Reserved83"                , // 保留 interrupt 83
  211.     "PIT0"                      , // PIT timer channel 0 interrupt
  212.     "PIT1"                      , // PIT timer channel 1 interrupt
  213.     "PIT2"                      , // PIT timer channel 2 interrupt
  214.     "PIT3"                      , // PIT timer channel 3 interrupt
  215.     "PDB0"                      , // PDB0 Interrupt
  216.     "USB0"                      , // USB0 interrupt
  217.     "USBDCD"                    , // USBDCD Interrupt
  218. ……………………

  219. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼


所有資料51hei提供下載:

GY-50三軸陀螺儀資料.zip (2.6 MB, 下載次數: 40)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品福利网 | 国产欧美日韩精品一区二区三区 | 欧美另类视频 | 99精品国产一区二区三区 | www日韩欧美 | 精品无码三级在线观看视频 | 超碰电影 | 成人欧美一区二区三区黑人孕妇 | 久久久精品国产 | 日韩伦理一区二区三区 | 国产高清久久久 | 99国产精品久久久久 | 精品久久久久久国产 | 欧美成人精品一区二区男人看 | 一区二区三区视频在线观看 | 欧美日韩最新 | 亚洲成人一区二区 | 精品亚洲一区二区三区 | 国产一区二区免费 | 久久久精品影院 | 午夜激情国产 | 水蜜桃亚洲一二三四在线 | 国产在线精品一区二区三区 | 久久久国产一区二区三区 | 久久一级免费视频 | 超碰97人人人人人蜜桃 | 四虎影视1304t | 久草在线青青草 | 日韩一级免费观看 | 男女视频91 | 亚洲欧美一区二区三区1000 | 日韩电影中文字幕 | 一级大片免费 | 福利二区 | 久久精品免费 | 欧美成人在线网站 | 日韩欧美一区二区三区免费看 | 精品欧美乱码久久久久久 | 一级毛片视频 | 亚洲毛片| 亚洲成色777777在线观看影院 |