GY-50三軸陀螺儀資料以上傳,有需要的朋友請自行下載。希望大家能夠相互討論,互相學習
電路原理圖如下:
GY-50-SCH.jpg (127.36 KB, 下載次數: 71)
下載附件
2018-4-6 02:08 上傳
GY-50-L3G4200.JPG (176.5 KB, 下載次數: 58)
下載附件
2018-4-6 02:08 上傳
模塊尺寸.jpg (65.35 KB, 下載次數: 61)
下載附件
2018-4-6 02:08 上傳
L3G4200D
0.jpg (86.03 KB, 下載次數: 74)
下載附件
2018-4-6 02:08 上傳
L3G4200D例程(xs128與k60平臺)
單片機源程序如下:
- /*!
- * COPYRIGHT NOTICE
- * Copyright (c) 2013,山外科技
- * All rights reserved.
- * 除注明出處外,以下所有內容版權均屬山外科技所有,未經允許,不得用于商業用途,
- * 修改內容時必須保留山外科技的版權聲明。
- *
- * @file MK60_conf.c
- * @brief 山外K60 平臺配置功能實現文件
- * @author 山外科技
- * @version v5.1
- * @date 2013-06-26
- */
- #include "common.h"
- #include "stdio.h"
- #include "MK60_uart.h"
- #include "VCAN_KEY.h"
- #include "VCAN_LED.h"
- #include "MK60_flash.h"
- /*!
- * @brief 斷言失敗所執行的函數
- * @param file 文件路徑地址
- * @param line 行數
- * @since v5.0
- * Sample usage: assert_failed(__FILE__, __LINE__);
- */
- const char ASSERT_FAILED_STR[] = "Assertion failed in %s at line %d\n";
- void assert_failed(char *file, int line)
- {
- led_init(LED0);
- while (1)
- {
- DEBUG_PRINTF(ASSERT_FAILED_STR, file, line); //通過串口提示斷言失敗
- //死循環等待程序員檢測為何斷言失敗
- led_turn(LED0);
- DELAY_MS(1000);
- }
- }
- /*!
- * @brief 重定義printf 到串口
- * @param ch 需要打印的字節
- * @param stream 數據流
- * @since v5.0
- * @note 此函數由編譯器自帶庫里的printf所調用
- */
- int fputc(int ch, FILE *stream)
- {
- uart_putchar(VCAN_PORT, (char)ch);
- return(ch);
- }
- /*!
- * @brief 啟動前進行檢測(檢測按鍵是否按下,按下則進入死循環,防止進入 main 函數,松開按鍵后再按下則進行解鎖)
- * @since v5.0
- * @note 此函數可避免 下載口在 main 前 復用了導致無法下載等問題
- */
- void start_check()
- {
- uint8 flag = 0;
- key_init(KEY_A);
- if(key_check(KEY_A) == KEY_DOWN )
- {
- //按鍵按下
- led_init(LED0);
- while(1)
- {
- if(key_check(KEY_A) == KEY_UP)
- {
- flag = 1;
- }
- led_turn(LED0);
- printf("\n進入死循環等待!");
- DELAY_MS(500); //此處的延時,可起到 按鍵 消抖的功能
- //如果 送開按鍵后,再按下 按鍵,則 進行解鎖 操作
- if((flag == 1) && (key_check(KEY_A) == KEY_DOWN ))
- {
- while(key_check(KEY_A) == KEY_DOWN) //等待按鍵 彈起
- {
- led_turn(LED0);
- DELAY_MS(100); //此處的延時,可起到 按鍵 消抖的功能
- }
- while(key_check(KEY_A) == KEY_UP) //等待按鍵 彈起后 再 進行解鎖
- {
- led_turn(LED0);
- DELAY_MS(50); //此處的延時,可起到 按鍵 消抖的功能
- }
- printf("\n進行解鎖操作,請重新刷入固件");
- //解鎖單片機
- flash_init();
- DELAY_MS(100);
- flash_erase_sector(0); //擦除扇區 0 (解鎖)
- NVIC_SystemReset(); //復位單片機
- }
- }
- }
- }
- #ifdef DEBUG
- // VECTOR_TABLE end
- static char vector_str[][15];
- #endif
- /*!
- * @brief 默認中斷服務函數
- * @since v5.0
- * @note 此函數寫入中斷向量表里,不需要用戶執行
- */
- void default_isr(void)
- {
- #ifdef DEBUG
- #define VECTORNUM ((SCB_ICSR & SCB_ICSR_VECTACTIVE_MASK)>>SCB_ICSR_VECTACTIVE_SHIFT)
- //等效于 (*(volatile uint8_t*)(0xE000ED04))
- uint8 vtr = VECTORNUM;
- led_init(LED1);
- while(1)
- {
- led_turn(LED1);
- DEBUG_PRINTF("\n****default_isr entered on vector %d*****\n\n%s Interrupt", vtr, vector_str[vtr]);
- DELAY_MS(1000);
- }
- #else
- return;
- #endif
- }
- #ifdef DEBUG
- char vector_str[][15] =
- {
- /****** Cortex-M4 Processor Exceptions Numbers ****************************************************************/
- "", //0
- "",
- "NonMaskable" , /*!< 2 Non Maskable Interrupt */
- "HardFault" , /*!< 3 Hard Fault */
- "MemManagement" , /*!< 4 Cortex-M4 Memory Management Interrupt */
- "BusFault" , /*!< 5 Cortex-M4 Bus Fault Interrupt */
- "UsageFault" , /*!< 6 Cortex-M4 Usage Fault Interrupt */
- "", //7
- "",
- "", //9
- "",
- "SVCall" , /*!< 11 Cortex-M4 SV Call Interrupt */
- "DebugMonitor" , /*!< 12 Cortex-M4 Debug Monitor Interrupt */
- "",
- "PendSV" , /*!< 14 Cortex-M4 Pend SV Interrupt */
- "SysTick" , /*!< 15 Cortex-M4 System Tick Interrupt */
- /****** Kinetis 60 specific Interrupt Numbers **********************************************************************/
- "DMA0" , // DMA Channel 0 Transfer Complete
- "DMA1" , // DMA Channel 1 Transfer Complete
- "DMA2" , // DMA Channel 2 Transfer Complete
- "DMA3" , // DMA Channel 3 Transfer Complete
- "DMA4" , // DMA Channel 4 Transfer Complete
- "DMA5" , // DMA Channel 5 Transfer Complete
- "DMA6" , // DMA Channel 6 Transfer Complete
- "DMA7" , // DMA Channel 7 Transfer Complete
- "DMA8" , // DMA Channel 8 Transfer Complete
- "DMA9" , // DMA Channel 9 Transfer Complete
- "DMA10" , // DMA Channel 10 Transfer Complete
- "DMA11" , // DMA Channel 11 Transfer Complete
- "DMA12" , // DMA Channel 12 Transfer Complete
- "DMA13" , // DMA Channel 13 Transfer Complete
- "DMA14" , // DMA Channel 14 Transfer Complete
- "DMA15" , // DMA Channel 15 Transfer Complete
- "DMA_Error" , // DMA Error Interrupt
- "MCM" , // Normal Interrupt
- "FTFL" , // FTFL Interrupt
- "Read_Collision" , // Read Collision Interrupt
- "LVD_LVW" , // Low Voltage Detect, Low Voltage Warning
- "LLW" , // Low Leakage Wakeup
- "Watchdog" , // WDOG Interrupt
- "RNG" , // RNGB Interrupt
- "I2C0" , // I2C0 interrupt
- "I2C1" , // I2C1 interrupt
- "SPI0" , // SPI0 Interrupt
- "SPI1" , // SPI1 Interrupt
- "SPI2" , // SPI2 Interrupt
- "CAN0_OR_MB_buf" , // CAN0 OR'd Message Buffers Interrupt
- "CAN0_Bus_Off" , // CAN0 Bus Off Interrupt
- "CAN0_Error" , // CAN0 Error Interrupt
- "CAN0_Tx_Warning" , // CAN0 Tx Warning Interrupt
- "CAN0_Rx_Warning" , // CAN0 Rx Warning Interrupt
- "CAN0_Wake_Up" , // CAN0 Wake Up Interrupt
- "Reserved51" , // 保留 interrupt 51
- "Reserved52" , // 保留 interrupt 52
- "CAN1_OR_MB_buf" , // CAN1 OR'd Message Buffers Interrupt
- "CAN1_Bus_Off" , // CAN1 Bus Off Interrupt
- "CAN1_Error" , // CAN1 Error Interrupt
- "CAN1_Tx_Warning" , // CAN1 Tx Warning Interrupt
- "CAN1_Rx_Warning" , // CAN1 Rx Warning Interrupt
- "CAN1_Wake_Up" , // CAN1 Wake Up Interrupt
- "Reserved59" , // 保留 interrupt 59
- "Reserved60" , // 保留 interrupt 60
- "UART0_RX_TX" , // UART0 Receive/Transmit interrupt
- "UART0_ERR" , // UART0 Error interrupt
- "UART1_RX_TX" , // UART1 Receive/Transmit interrupt
- "UART1_ERR" , // UART1 Error interrupt
- "UART2_RX_TX" , // UART2 Receive/Transmit interrupt
- "UART2_ERR" , // UART2 Error interrupt
- "UART3_RX_TX" , // UART3 Receive/Transmit interrupt
- "UART3_ERR" , // UART3 Error interrupt
- "UART4_RX_TX" , // UART4 Receive/Transmit interrupt
- "UART4_ERR" , // UART4 Error interrupt
- "UART5_RX_TX" , // UART5 Receive/Transmit interrupt
- "UART5_ERR" , // UART5 Error interrupt
- "ADC0" , // ADC0 interrupt
- "ADC1" , // ADC1 interrupt
- "CMP0" , // CMP0 interrupt
- "CMP1" , // CMP1 interrupt
- "CMP2" , // CMP2 interrupt
- "FTM0" , // FTM0 fault, overflow and channels interrupt
- "FTM1" , // FTM1 fault, overflow and channels interrupt
- "FTM2" , // FTM2 fault, overflow and channels interrupt
- "CMT" , // CMT interrupt
- "RTC" , // RTC interrupt
- "Reserved83" , // 保留 interrupt 83
- "PIT0" , // PIT timer channel 0 interrupt
- "PIT1" , // PIT timer channel 1 interrupt
- "PIT2" , // PIT timer channel 2 interrupt
- "PIT3" , // PIT timer channel 3 interrupt
- "PDB0" , // PDB0 Interrupt
- "USB0" , // USB0 interrupt
- "USBDCD" , // USBDCD Interrupt
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.png (47.06 KB, 下載次數: 72)
下載附件
2018-4-6 02:10 上傳
所有資料51hei提供下載:
GY-50三軸陀螺儀資料.zip
(2.6 MB, 下載次數: 40)
2018-4-5 21:41 上傳
點擊文件名下載附件
GY-50三軸陀螺儀資料 下載積分: 黑幣 -5
|