国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

ELEOK

標題: STM32測試MPU6050模塊串口輸出的程序 [打印本頁]

作者: coolice    時間: 2021-12-15 16:20
標題: STM32測試MPU6050模塊串口輸出的程序
注意事項:
(1)主程序編譯會出現(xiàn)缺乏"stm32f10x_lib.h"文件
解決辦法:在附件中主程序目錄添加附件庫"STM32F10x",在target opition中的C/C++選項卡中的include path路徑中添加"STM32F10x"路徑。
(2)MPU模塊必須與STM32主控板共地,也就是說用板載電源供電最好。(我原先用的單獨供電模塊,結(jié)果串口輸出一直為零)
主程序和庫下載:
STM32-串口輸出MPU-6050.zip (1.86 MB, 售價: 3 E幣)
STM32F10x.zip (140.98 KB)

部分程序代碼:完整程序請下載相關附件
  1. ********************************************************************************
  2. ** 函數(shù)名稱 : USART1_Configuration(void)
  3. ** 函數(shù)功能 : 串口1初始化
  4. ** 輸    入        : 無
  5. ** 輸    出        : 無
  6. ** 返    回        : 無
  7. ********************************************************************************
  8. */
  9. void USART1_Configuration(void)
  10. {

  11. USART_InitTypeDef USART_InitStructure;
  12. USART_ClockInitTypeDef  USART_ClockInitStructure;

  13. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 |RCC_APB2Periph_USART1, ENABLE  );

  14. USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;                        // 時鐘低電平活動
  15. USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;                                // 時鐘低電平
  16. USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;                                // 時鐘第二個邊沿進行數(shù)據(jù)捕獲
  17. USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;                // 最后一位數(shù)據(jù)的時鐘脈沖不從SCLK輸出
  18. /* Configure the USART1 synchronous paramters */
  19. USART_ClockInit(USART1, &USART_ClockInitStructure);                                        // 時鐘參數(shù)初始化設置
  20.                                                                                                                                          
  21. USART_InitStructure.USART_BaudRate = 115200;                                                  // 波特率為:115200
  22. USART_InitStructure.USART_WordLength = USART_WordLength_8b;                          // 8位數(shù)據(jù)
  23. USART_InitStructure.USART_StopBits = USART_StopBits_1;                                  // 在幀結(jié)尾傳輸1個停止位
  24. USART_InitStructure.USART_Parity = USART_Parity_No ;                                  // 奇偶失能
  25. USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;        // 硬件流控制失能

  26. USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;                  // 發(fā)送使能+接收使能
  27. /* Configure USART1 basic and asynchronous paramters */
  28. USART_Init(USART1, &USART_InitStructure);
  29.    
  30.   /* Enable USART1 */
  31. USART_ClearFlag(USART1, USART_IT_RXNE);                         //清中斷,以免一啟用中斷后立即產(chǎn)生中斷
  32. USART_ITConfig(USART1,USART_IT_RXNE, ENABLE);                //使能USART1中斷源
  33. USART_Cmd(USART1, ENABLE);                                                        //USART1總開關:開啟
  34. }


  35. /*
  36. ********************************************************************************
  37. ** 函數(shù)名稱 : NVIC_Configuration(void)
  38. ** 函數(shù)功能 : 中斷初始化
  39. ** 輸    入        : 無
  40. ** 輸    出        : 無
  41. ** 返    回        : 無
  42. ********************************************************************************
  43. */
  44. void NVIC_Configuration(void)
  45. {
  46.   NVIC_InitTypeDef NVIC_InitStructure;  
  47.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

  48.   NVIC_InitStructure.NVIC_IRQChannel = WWDG_IRQChannel;
  49.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  50.   NVIC_Init(&NVIC_InitStructure);

  51. }

  52. /*
  53. ********************************************************************************
  54. ** 函數(shù)名稱 : WWDG_Configuration(void)
  55. ** 函數(shù)功能 : 看門狗初始化
  56. ** 輸    入        : 無
  57. ** 輸    出        : 無
  58. ** 返    回        : 無
  59. ********************************************************************************
  60. */
  61. void WWDG_Configuration(void)
  62. {
  63.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);        
  64.   WWDG_SetPrescaler(WWDG_Prescaler_8);                      //  WWDG clock counter = (PCLK1/4096)/8 = 244 Hz (~4 ms)  
  65.   WWDG_SetWindowValue(0x41);                                 // Set Window value to 0x41
  66.   WWDG_Enable(0x50);                       // Enable WWDG and set counter value to 0x7F, WWDG timeout = ~4 ms * 64 = 262 ms
  67.   WWDG_ClearFlag();                               // Clear EWI flag
  68.   WWDG_EnableIT();                               // Enable EW interrupt
  69. }
復制代碼





歡迎光臨 ELEOK (http://m.afoofa.cn/) Powered by Discuz! X5.0