底盘能进行前后左右运动
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
/**
|
||||
****************************(C) COPYRIGHT 2019 DJI****************************
|
||||
* @file remote_control.c/h
|
||||
* @brief ?????????????????????????SBUS??<3F><>?<3F><>??????DMA????????CPU
|
||||
* ????????????????<3F><>????????????????????<3F><>????????DMA??????
|
||||
* ??????????<3F><>???????
|
||||
* @note ????????????????<3F><>???????????freeRTOS????
|
||||
* @brief ?????????????????????????SBUS??<3F><>?<3F><>??????DMA????????CPU
|
||||
* ????????????????<3F><>????????????????????<3F><>????????DMA??????
|
||||
* ??????????<3F><>???????
|
||||
* @note ????????????????<3F><>???????????freeRTOS????
|
||||
* @history
|
||||
* Version Date Author Modification
|
||||
* V1.0.0 Dec-01-2019 RM 1. ???
|
||||
@@ -32,7 +32,7 @@ extern DMA_HandleTypeDef hdma_usart3_rx;
|
||||
* @retval none
|
||||
*/
|
||||
/**
|
||||
* @brief ?????<3F><>?????
|
||||
* @brief ?????<3F><>?????
|
||||
* @param[in] sbus_buf: ??????????
|
||||
* @param[out] rc_ctrl: ??????????
|
||||
* @retval none
|
||||
@@ -47,6 +47,9 @@ RC_ctrl_t rc_ctrl;
|
||||
//????????????18??????????36????????????DMA???????
|
||||
static uint8_t sbus_rx_buf[2][SBUS_RX_BUF_NUM];
|
||||
|
||||
//遥控器掉线检测:记录最后一次成功解析的时间戳(ms)
|
||||
static volatile uint32_t rc_last_update_tick = 0;
|
||||
|
||||
/**
|
||||
* @brief remote control init
|
||||
* @param[in] none
|
||||
@@ -77,7 +80,7 @@ const RC_ctrl_t *get_remote_control_point(void)
|
||||
}
|
||||
|
||||
|
||||
//?????<3F><>?
|
||||
//?????<3F><>?
|
||||
void RC_USART3_IRQHandler(void)
|
||||
{
|
||||
if(huart3.Instance->SR & UART_FLAG_RXNE)//?????????
|
||||
@@ -95,7 +98,7 @@ void RC_USART3_IRQHandler(void)
|
||||
/* Current memory buffer used is Memory 0 */
|
||||
|
||||
//disable DMA
|
||||
//?<3F><>DMA
|
||||
//?<3F><>DMA
|
||||
__HAL_DMA_DISABLE(&hdma_usart3_rx);
|
||||
|
||||
//get receive data length, length = set_data_length - remain_length
|
||||
@@ -123,7 +126,7 @@ void RC_USART3_IRQHandler(void)
|
||||
{
|
||||
/* Current memory buffer used is Memory 1 */
|
||||
//disable DMA
|
||||
//?<3F><>DMA
|
||||
//?<3F><>DMA
|
||||
__HAL_DMA_DISABLE(&hdma_usart3_rx);
|
||||
|
||||
//get receive data length, length = set_data_length - remain_length
|
||||
@@ -159,7 +162,7 @@ void RC_USART3_IRQHandler(void)
|
||||
* @retval none
|
||||
*/
|
||||
/**
|
||||
* @brief ?????<3F><>?????
|
||||
* @brief ?????<3F><>?????
|
||||
* @param[in] sbus_buf: ??????????
|
||||
* @param[out] rc_ctrl: ??????????
|
||||
* @retval none
|
||||
@@ -191,4 +194,22 @@ static void sbus_to_rc(volatile const uint8_t *sbus_buf, RC_ctrl_t *rc_ctrl)
|
||||
rc_ctrl->rc.ch[2] -= RC_CH_VALUE_OFFSET;
|
||||
rc_ctrl->rc.ch[3] -= RC_CH_VALUE_OFFSET;
|
||||
rc_ctrl->rc.ch[4] -= RC_CH_VALUE_OFFSET;
|
||||
|
||||
//更新遥控器最后一次在线时间戳,用于掉线检测
|
||||
rc_last_update_tick = HAL_GetTick();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief check if remote control is online
|
||||
* @param[in] none
|
||||
* @retval 1: online, 0: offline (no data for > 100ms)
|
||||
*/
|
||||
/**
|
||||
* @brief 检测遥控器是否在线
|
||||
* @param[in] none
|
||||
* @retval 1: 在线, 0: 掉线(超过100ms无数据)
|
||||
*/
|
||||
uint8_t is_rc_online(void)
|
||||
{
|
||||
return (HAL_GetTick() - rc_last_update_tick) < 100;
|
||||
}
|
||||
Reference in New Issue
Block a user