欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STM32 HAL庫接收GY-25傾斜角度傳感器 單片機程序沒有進入中斷接收回調函數 [打印本頁]

作者: MagicKrse    時間: 2022-6-27 14:31
標題: STM32 HAL庫接收GY-25傾斜角度傳感器 單片機程序沒有進入中斷接收回調函數
GY-25是一款傾斜角度傳感器,它通過串口輸出航向角、橫滾角和俯仰角數據。


在使用GY-25之前,要向GY-25發送命令才能使能它開始傳輸數據。有以下5種命令可選,我用的是第2種命令,自動和連續返回數據:
①0xA5+0x51: 查詢模式,直接返回角度值,需每次讀取都發送 ;
②0xA5+0x52: 自動模式,直接返回角度值,只需要初始化時發一次 ;
③0xA5+0x53: 自動模式,ASCII 碼輸出,便于直接電腦串口助手查看 ;
④0xA5+0x54: 校正模式,校正俯仰橫滾角 0 度,需要保持水平時候發送 ;
⑤0xA5+0x55: 校正模式,校正航向 0 度,航向任意角度清零。

GY-25傳出來的一幀數據包含8個字節。其中,第一個字節固定為0xAA,表示一幀數據的開始。第2、3字節是航向角,第4、5字節是俯仰角,第6、7字節是橫滾角,第8個字節固定為0x55代表一幀的結束。
我希望使用STM32F411RE Nucleo開發板的串口1接收GY-25的數據,再通過串口2將數據輸出到電腦上的串口助手(STM32F411 Nucleo開發板的已經將串口2虛擬化到ST-LINK的USB接口,電腦上的串口助手可以直接讀取串口2發來的數據)。
理論上很簡單,就是先給串口1發送0xA5和0x52使GY-25開始傳出數據,再通過中斷方式接收GY-25從串口1發出來的數據。然后通過串口2將接收到的數據發送到電腦上。
我在STM32CubeMx上已經正確配置了串口參數,也開啟了串口1和串口2的中斷,實物連線也檢查過了。
但是我寫的程序從來不會進入中斷接收回調函數,同樣的,串口助手也沒有收到任何數據。我找不出問題在哪里,請大佬幫我謀劃一下解決思路。

單片機程序如下:
/* USER CODE BEGIN PV */
      uint8_t recBuf[10];  //接收到的一幀數據
      uint8_t command1=0xA5;
      uint8_t command2=0x52;
/* USER CODE END PV */


  /* USER CODE BEGIN 2 */
        HAL_UART_Transmit_IT(&huart1,&command1,1);  //發送0xA5
        HAL_UART_Transmit_IT(&huart1,&command2,1);  //發送0x52
        HAL_UART_Receive_IT(&huart1,recBuf,10); //開啟串口1的接收中斷
  /* USER CODE END 2 */


while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
          //main函數里什么都沒寫
  }
  /* USER CODE END 3 */


/* USER CODE BEGIN 4 */
void HAL_UART_RxCapltCallback(UART_HandleTypeDef *huart)  //串口接收中斷回調函數
{
    if(huart ->Instance == USART1)
    {
          HAL_UART_Transmit_IT(&huart2,recBuf,10);  //通過串口2將接收到的數據發送到電腦的串口助手
          HAL_UART_Receive_IT(&huart1,recBuf,10);  //開啟串口1的接收中斷
    }
}
/* USER CODE END 4 */

作者: Hephaestus    時間: 2022-6-27 17:56
回調函數執行的時候還沒有退出中斷,HAL_UART_Transmit_IT()能用嗎?




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1