增加轮速输出
This commit is contained in:
@@ -7,7 +7,7 @@ PROVIDE( _stack_size = __stack_size );
|
||||
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x0000000, LENGTH = 214K
|
||||
FLASH (rx) : ORIGIN = 0x000A000, LENGTH = 214K
|
||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||
}
|
||||
|
||||
|
||||
@@ -185,6 +185,20 @@ void CAN2_RX1_IRQHandler(void)
|
||||
|
||||
if(CanRxStructure.DLC > 0)//<2F><><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>0
|
||||
{
|
||||
|
||||
// if (CanRxStructure.ExtId == DF_CanIDbattery)
|
||||
// {
|
||||
// memcpy((uint8_t *)&un_wheel_speed_input.,(uint8_t *)&(CanRxStructure.Data[0]),8);//<2F><><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD>
|
||||
// RgCanToBatteryCnt ++;
|
||||
// }
|
||||
// else if (CanRxStructure.ExtId == DF_CanIDRCH_3)
|
||||
// {
|
||||
// memcpy((uint8_t *)&UnRCH_3Signal_1.ArrData.ArrRx[0][0],(uint8_t *)&(CanRxStructure.Data[0]),8);//<2F><><EFBFBD><EFBFBD>ң<EFBFBD><D2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// RgCanRC6GSCnt ++;
|
||||
// }
|
||||
|
||||
|
||||
|
||||
CAN_Send_Msg(CAN2, 0x7F2, CAN_Id_Standard, CAN_RTR_Data, &CanRxStructure.Data[0], 8);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,8 @@ StrRequestMessage str_RequestMessage = {0};//请求信息
|
||||
|
||||
UnInfNavigationRS232Output navigation_rs232_output = {0};//串口输出数据
|
||||
|
||||
UnWheelSpeedInput un_wheel_speed_input = {0};//轮速输入
|
||||
|
||||
|
||||
rtcmBuffer RTCM_Buffer1 = {0,0,0};
|
||||
imuBuffer imu_buffer1 = {0,0,0};
|
||||
|
||||
@@ -185,8 +185,20 @@ typedef union _UnInfNavigationOutputC
|
||||
} UnInfNavigationOutputC;
|
||||
|
||||
|
||||
/* 车辆轮速输入数据结构体 */
|
||||
typedef struct {
|
||||
/* 四轮速度数据 (8字节) */
|
||||
int16_t front_left_speed; // 左前轮速 单位:km/h
|
||||
int16_t front_right_speed; // 右前轮速 单位:km/h
|
||||
int16_t rear_left_speed; // 左后轮速 单位:km/h
|
||||
int16_t rear_right_speed; // 右后轮速 单位:km/h
|
||||
} StrVehicleWheelSpeedInput;
|
||||
|
||||
|
||||
/* 轮速数据联合体(用于原始字节访问) */
|
||||
typedef union {
|
||||
StrVehicleWheelSpeedInput speed_data; // 结构化轮速数据
|
||||
uint8_t arr[sizeof(StrVehicleWheelSpeedInput)]; // 原始字节数组
|
||||
} UnWheelSpeedInput;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -63,10 +63,10 @@ void CAN1_Mode_Init( u8 tsjw, u8 tbs2, u8 tbs1, u16 brp, u8 mode )
|
||||
CAN_FilterInitSturcture.CAN_FilterNumber = 0;
|
||||
CAN_FilterInitSturcture.CAN_FilterMode = CAN_FilterMode_IdMask;
|
||||
CAN_FilterInitSturcture.CAN_FilterScale = CAN_FilterScale_32bit;
|
||||
CAN_FilterInitSturcture.CAN_FilterIdHigh = (uint16_t)((((DF_CanIDbattery|DF_CanIDRCH_3)<<DF_ExtIDShift)|0x04)>>16);//(uint16_t)(((0x10000001<<3)|0x04)>>16);//Ӧ<><D3A6><EFBFBD><EFBFBD>
|
||||
CAN_FilterInitSturcture.CAN_FilterIdLow = (uint16_t)(((DF_CanIDbattery|DF_CanIDRCH_3)<<DF_ExtIDShift)|0x04);//(uint16_t)(((0x10000001<<3)|0x04));//
|
||||
CAN_FilterInitSturcture.CAN_FilterMaskIdHigh = (uint16_t)((((~(DF_CanIDbattery^DF_CanIDRCH_3))<<DF_ExtIDShift)|0x0E) >> 16);
|
||||
CAN_FilterInitSturcture.CAN_FilterMaskIdLow = (uint16_t)(((~(DF_CanIDbattery^DF_CanIDRCH_3))<<DF_ExtIDShift)|0x0E);
|
||||
CAN_FilterInitSturcture.CAN_FilterIdHigh = (uint16_t)((((DF_CanIDMotor1|DF_CanIDMotor2)<<DF_ExtIDShift)|0x04)>>16);//(uint16_t)(((0x10000001<<3)|0x04)>>16);//Ӧ<><D3A6><EFBFBD><EFBFBD>
|
||||
CAN_FilterInitSturcture.CAN_FilterIdLow = (uint16_t)(((DF_CanIDMotor1|DF_CanIDMotor2)<<DF_ExtIDShift)|0x04);//(uint16_t)(((0x10000001<<3)|0x04));//
|
||||
CAN_FilterInitSturcture.CAN_FilterMaskIdHigh = (uint16_t)((((~(DF_CanIDMotor1^DF_CanIDMotor2))<<DF_ExtIDShift)|0x0E) >> 16);
|
||||
CAN_FilterInitSturcture.CAN_FilterMaskIdLow = (uint16_t)(((~(DF_CanIDMotor1^DF_CanIDMotor2))<<DF_ExtIDShift)|0x0E);
|
||||
CAN_FilterInitSturcture.CAN_FilterFIFOAssignment = CAN_Filter_FIFO0;
|
||||
CAN_FilterInitSturcture.CAN_FilterActivation = ENABLE;
|
||||
CAN_FilterInit( &CAN_FilterInitSturcture );
|
||||
@@ -151,10 +151,10 @@ void CAN2_Mode_Init( u8 tsjw, u8 tbs2, u8 tbs1, u16 brp, u8 mode )
|
||||
|
||||
CAN_FilterInitSturcture.CAN_FilterMode = CAN_FilterMode_IdMask;
|
||||
CAN_FilterInitSturcture.CAN_FilterScale = CAN_FilterScale_32bit;
|
||||
CAN_FilterInitSturcture.CAN_FilterIdHigh = (uint16_t)((((DF_CanIDMotor1|DF_CanIDMotor2)<<DF_StaIDShift))>>16);//(uint16_t)(((0x10000001<<3)|0x04)>>16);//Ӧ<><D3A6><EFBFBD><EFBFBD>
|
||||
CAN_FilterInitSturcture.CAN_FilterIdLow = (uint16_t)(((DF_CanIDMotor1|DF_CanIDMotor2)<<DF_StaIDShift));//(uint16_t)(((0x10000001<<3)|0x04));//
|
||||
CAN_FilterInitSturcture.CAN_FilterMaskIdHigh = (uint16_t)((((~(DF_CanIDMotor1^DF_CanIDMotor2))<<DF_StaIDShift)|0x0E) >> 16);
|
||||
CAN_FilterInitSturcture.CAN_FilterMaskIdLow = (uint16_t)(((~(DF_CanIDMotor1^DF_CanIDMotor2))<<DF_StaIDShift)|0x0E);
|
||||
CAN_FilterInitSturcture.CAN_FilterIdHigh = (uint16_t)((((DF_CanIDMotor1|DF_CanIDMotor2)<<DF_ExtIDShift)|0x04)>>16);//(uint16_t)(((0x10000001<<3)|0x04)>>16);//Ӧ<><D3A6><EFBFBD><EFBFBD>
|
||||
CAN_FilterInitSturcture.CAN_FilterIdLow = (uint16_t)(((DF_CanIDMotor1|DF_CanIDMotor2)<<DF_ExtIDShift)|0x04);//(uint16_t)(((0x10000001<<3)|0x04));//
|
||||
CAN_FilterInitSturcture.CAN_FilterMaskIdHigh = (uint16_t)((((~(DF_CanIDMotor1^DF_CanIDMotor2))<<DF_ExtIDShift)|0x0E) >> 16);
|
||||
CAN_FilterInitSturcture.CAN_FilterMaskIdLow = (uint16_t)(((~(DF_CanIDMotor1^DF_CanIDMotor2))<<DF_ExtIDShift)|0x0E);
|
||||
|
||||
CAN_FilterInitSturcture.CAN_FilterFIFOAssignment = CAN_Filter_FIFO1;
|
||||
CAN_FilterInitSturcture.CAN_FilterActivation = ENABLE;
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
#define DF_CanIDbattery2 0x101//<2F><><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD>
|
||||
#define DF_CanIDRCH_3 0x12000023//<2F><><EFBFBD><EFBFBD>ң<EFBFBD><D2A3><EFBFBD><EFBFBD>
|
||||
|
||||
#define DF_CanIDMotor1 0x101//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define DF_CanIDMotor2 0x102//<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define DF_CanIDMotor1 0x98//20251025 <20>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define DF_CanIDMotor2 0x99//20251025 <20>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define DF_ExtIDShift 3//<2F><>չ֡<D5B9><D6A1>λ 32-29
|
||||
#define DF_StaIDShift 21//<2F><>֡<D7BC><D6A1>λ 32-11
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* eth_drive.c
|
||||
*
|
||||
* Created on: 2023<32><33>1<EFBFBD><31>5<EFBFBD><35>
|
||||
* Created on: 2023<32><33>1<EFBFBD><31>5<EFBFBD><35>
|
||||
* Author: Administrator
|
||||
*/
|
||||
|
||||
@@ -18,7 +18,7 @@ static RingBuffer nmea_rx_buf;
|
||||
#define DMA_BUF_SIZE 1400
|
||||
uint8_t dma_rx_buffer[DMA_BUF_SIZE] __attribute__((aligned(4)));
|
||||
|
||||
//__attribute__((aligned(4))) uint8_t dma_buffer[2048]; // GCC<43>
|
||||
//__attribute__((aligned(4))) uint8_t dma_buffer[2048]; // GCC<43>
|
||||
|
||||
|
||||
//void USART2_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
|
||||
@@ -48,7 +48,7 @@ void USART3_IRQHandler(void)
|
||||
{
|
||||
imu_buffer1.buf_len = IMU_LEN - DMA_GetCurrDataCounter(IMU_RX_CH);
|
||||
|
||||
if( (imu_buffer1.dma_buffer[imu_buffer1.active_buf][0] == IMU_IIM46234_HEADER1) && //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if( (imu_buffer1.dma_buffer[imu_buffer1.active_buf][0] == IMU_IIM46234_HEADER1) && //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(imu_buffer1.dma_buffer[imu_buffer1.active_buf][1] == IMU_IIM46234_HEADER2) )
|
||||
{
|
||||
imu_buffer1.type = IIM46234;
|
||||
@@ -105,7 +105,7 @@ void UART8_IRQHandler(void)
|
||||
{
|
||||
uint8_t UART_temp = 0;
|
||||
UART_temp = USART_ReceiveData(UART8);
|
||||
// printf("USART8:%d\n", UART_temp); // <20><><EFBFBD><EFBFBD>
|
||||
// printf("USART8:%d\n", UART_temp); // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
exit_critical_section(0);
|
||||
}
|
||||
@@ -131,7 +131,7 @@ void UART7_IRQHandler(void)
|
||||
DMA_Cmd(UM982_RX_CH, DISABLE);
|
||||
uint16_t received_len = DMA_BUF_SIZE - DMA_GetCurrDataCounter(UM982_RX_CH);
|
||||
|
||||
// 3. <20><><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 3. <20><><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(uint16_t i = 0; i < received_len; i++)
|
||||
{
|
||||
uint16_t next_head = (nmea_rx_buf.head + 1) % RING_BUF_SIZE;
|
||||
@@ -166,7 +166,7 @@ void DMA1_Channel3_IRQHandler(void)
|
||||
enter_critical_section();
|
||||
imu_buffer1.buf_len = RX_BUFFER_LEN;
|
||||
|
||||
DMA_ClearITPendingBit(DMA1_IT_TC3);//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
DMA_ClearITPendingBit(DMA1_IT_TC3);//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
exit_critical_section(0);
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ void DMA2_Channel3_IRQHandler(void)
|
||||
enter_critical_section();
|
||||
RTCM_Buffer1.buf_len = RX_BUFFER_LEN;
|
||||
|
||||
DMA_ClearITPendingBit(DMA2_IT_TC3);//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
DMA_ClearITPendingBit(DMA2_IT_TC3);//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
exit_critical_section(0);
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ void DMA2_Channel3_IRQHandler(void)
|
||||
void DMA2_Channel9_IRQHandler(void)
|
||||
{
|
||||
enter_critical_section();
|
||||
DMA_ClearITPendingBit(DMA2_IT_TC9);//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
DMA_ClearITPendingBit(DMA2_IT_TC9);//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
exit_critical_section(0);
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ void dmaInit(void)
|
||||
DMA_Cmd(RTCM_RX_CH, ENABLE);
|
||||
USART_DMACmd(RTCM_UART, USART_DMAReq_Rx, ENABLE);
|
||||
|
||||
//IMU DMA<4D><41><EFBFBD><EFBFBD>
|
||||
//IMU DMA<4D><41><EFBFBD><EFBFBD>
|
||||
DMA_DeInit(IMU_RX_CH);
|
||||
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
|
||||
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
|
||||
@@ -270,7 +270,7 @@ void dmaInit(void)
|
||||
USART_DMACmd(IMU_UART, USART_DMAReq_Rx, ENABLE);
|
||||
|
||||
|
||||
//982 DMA<4D><41><EFBFBD><EFBFBD>
|
||||
//982 DMA<4D><41><EFBFBD><EFBFBD>
|
||||
DMA_DeInit(UM982_RX_CH);
|
||||
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
|
||||
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
|
||||
@@ -363,7 +363,7 @@ void initUart(void)
|
||||
NVIC_Init(&NVIC_InitStructure);
|
||||
USART_Cmd(UART4, ENABLE);
|
||||
|
||||
/* UART6 TX-->C.0 RX-->C.1 */ //<2F>ӵ<EFBFBD>982<38><32>com1
|
||||
/* UART6 TX-->C.0 RX-->C.1 */ //<2F>ӵ<EFBFBD>982<38><32>com1
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
|
||||
@@ -389,7 +389,7 @@ void initUart(void)
|
||||
NVIC_Init(&NVIC_InitStructure);
|
||||
USART_Cmd(UART6, ENABLE);
|
||||
|
||||
/* UART7 TX-->C.2 RX-->C.3 *///<2F>ӵ<EFBFBD>982<38><32>com2
|
||||
/* UART7 TX-->C.2 RX-->C.3 *///<2F>ӵ<EFBFBD>982<38><32>com2
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
|
||||
@@ -443,7 +443,7 @@ void initUart(void)
|
||||
|
||||
|
||||
|
||||
void uartSendto(USART_TypeDef *USARTx, uint8_t * ucData, uint16_t len)//<2F><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||||
void uartSendto(USART_TypeDef *USARTx, uint8_t * ucData, uint16_t len)//<2F><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
||||
{
|
||||
for(uint16_t i = 0; i<len; i++)
|
||||
{
|
||||
@@ -457,9 +457,9 @@ void uartSendto(USART_TypeDef *USARTx, uint8_t * ucData, uint16_t len)//
|
||||
|
||||
void rtcmProcess(void *signal_id)
|
||||
{
|
||||
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uartSendto(UART6, (uint8_t *)&(RTCM_Buffer1.dma_buffer[RTCM_Buffer1.active_buf^1][0]), RTCM_Buffer1.buf_len);//ֱ<>ӷ<EFBFBD><D3B7>ͷǼ<CDB7><C7BC><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
uartSendto(UART6, (uint8_t *)&(RTCM_Buffer1.dma_buffer[RTCM_Buffer1.active_buf^1][0]), RTCM_Buffer1.buf_len);//ֱ<>ӷ<EFBFBD><D3B7>ͷǼ<CDB7><C7BC><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
printf("rtcm forwarding\n");
|
||||
}
|
||||
|
||||
@@ -468,25 +468,25 @@ void rtcmProcess(void *signal_id)
|
||||
|
||||
void setDataProcess(void *signal_id)
|
||||
{
|
||||
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uartSendto(USART3, set_output_data, 20);
|
||||
}
|
||||
|
||||
void setRateProcess(void *signal_id)
|
||||
{
|
||||
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uartSendto(USART3, set_rate, 20);
|
||||
}
|
||||
|
||||
void setSaveProcess(void *signal_id)
|
||||
{
|
||||
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uartSendto(USART3, save_cmd, 20);
|
||||
}
|
||||
|
||||
void setSteamProcess(void *signal_id)
|
||||
{
|
||||
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uartSendto(USART3, stream_cmd, 20);
|
||||
}
|
||||
|
||||
@@ -494,18 +494,18 @@ void setSteamProcess(void *signal_id)
|
||||
|
||||
|
||||
/* /?**?
|
||||
* @brief <20><><EFBFBD><EFBFBD>NMEA<45><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>XOR<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>飩
|
||||
* @param nmea_str <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NMEA<45><41><EFBFBD>䣨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>$<24><>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><CEB2>CRLF<4C><46>
|
||||
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8λУ<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0x00~0xFF<46><46>
|
||||
* @brief <20><><EFBFBD><EFBFBD>NMEA<45><41><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>ͣ<EFBFBD>XOR<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>飩
|
||||
* @param nmea_str <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NMEA<45><41>䣨<EFBFBD><E4A3A8><EFBFBD><EFBFBD>$<24><>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><CEB2>CRLF<4C><46>
|
||||
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8λУ<CEBB><D0A3>ͣ<EFBFBD>0x00~0xFF<46><46>
|
||||
*/
|
||||
uint8_t nmea_checksum(const char *nmea_str)
|
||||
{
|
||||
uint8_t checksum = 0;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>'$'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>'$'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
|
||||
if (*nmea_str == '$') nmea_str++;
|
||||
|
||||
// <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'*'<27><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'*'<27><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
while (*nmea_str && *nmea_str != '*') {
|
||||
checksum ^= (uint8_t)*nmea_str++;
|
||||
}
|
||||
@@ -514,24 +514,24 @@ uint8_t nmea_checksum(const char *nmea_str)
|
||||
|
||||
|
||||
/*
|
||||
* @brief <20><>֤NMEA<45><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param nmea_str <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NMEA<45><41><EFBFBD>䣨<EFBFBD><EFBFBD>"$GPGGA,...*2A\r\n"<22><>
|
||||
* @return У<><D0A3><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>0
|
||||
* @brief <20><>֤NMEA<45><41><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param nmea_str <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NMEA<45><41>䣨<EFBFBD><E4A3A8>"$GPGGA,...*2A\r\n"<22><>
|
||||
* @return У<><D0A3>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>0
|
||||
*/
|
||||
bool nmea_validate_checksum(const char *nmea_str)
|
||||
{
|
||||
const char *p = nmea_str;
|
||||
uint8_t computed_cs, received_cs;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ<EFBFBD><EFBFBD>'*'
|
||||
// <20><><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>'*'
|
||||
while (*p && *p != '*') p++;
|
||||
if (*p != '*') return 0; // <20><>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
|
||||
if (*p != '*') return 0; // <20><>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ֶ<EFBFBD>
|
||||
|
||||
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ͣ<EFBFBD>2λʮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>
|
||||
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>У<EFBFBD><D0A3>ͣ<EFBFBD>2λʮ<CEBB><CAAE><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>
|
||||
if (!isxdigit(p[1]) || !isxdigit(p[2])) return 0;
|
||||
received_cs = (uint8_t)strtol(p+1, NULL, 16);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>У<EFBFBD><D0A3><EFBFBD>
|
||||
computed_cs = nmea_checksum(nmea_str);
|
||||
|
||||
return (computed_cs == received_cs);
|
||||
@@ -544,81 +544,81 @@ void ProcessNMEAFrames(void *signal_id)
|
||||
bool frame_complete = false;
|
||||
static uint8_t debug1s_cnt = 0;
|
||||
|
||||
debug1s_cnt ++;
|
||||
if(debug1s_cnt >= 20)
|
||||
{
|
||||
debug1s_cnt = 0;
|
||||
printf("nmea_buf tail:%d head:%d\n",
|
||||
nmea_rx_buf.tail, nmea_rx_buf.head);
|
||||
}
|
||||
// debug1s_cnt ++;
|
||||
// if(debug1s_cnt >= 20)
|
||||
// {
|
||||
// debug1s_cnt = 0;
|
||||
// printf("nmea_buf tail:%d head:%d\n",
|
||||
// nmea_rx_buf.tail, nmea_rx_buf.head);
|
||||
// }
|
||||
|
||||
|
||||
|
||||
while(nmea_rx_buf.tail != nmea_rx_buf.head && !frame_complete)
|
||||
{ // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>һ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{ // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>һ֡<D2BB><D6A1><EFBFBD><EFBFBD>
|
||||
uint8_t ch = nmea_rx_buf.buffer[nmea_rx_buf.tail];
|
||||
nmea_rx_buf.tail = (nmea_rx_buf.tail + 1) % RING_BUF_SIZE;
|
||||
|
||||
if(nmea_rx_buf.overflow) {
|
||||
nmea_rx_buf.tail = nmea_rx_buf.head;
|
||||
// 3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
||||
// 3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
||||
nmea_rx_buf.overflow = 0;
|
||||
// 4. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 4. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>̣<EFBFBD><CCA3><EFBFBD><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
printf("Overflow recovery\n");
|
||||
|
||||
}
|
||||
|
||||
|
||||
// ֡ͷ<D6A1><CDB7><EFBFBD><EFBFBD>
|
||||
// ֡ͷ<D6A1><CDB7><EFBFBD>
|
||||
if(ch == '$') {
|
||||
if(parse_idx > 0 && parsing_buf[parse_idx-1] == '\n')
|
||||
{
|
||||
if (nmea_validate_checksum((char *)parsing_buf)) //У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (nmea_validate_checksum((char *)parsing_buf)) //У<><D0A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
memcpy(&nema_output1.buffer[0],parsing_buf,parse_idx);
|
||||
publishMessage(&nema_output1, 1);
|
||||
frame_complete = true; // <20><><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
frame_complete = true; // <20><><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("nmea crc error");
|
||||
frame_complete = true; // <20><><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
frame_complete = true; // <20><><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
parse_idx = 0;
|
||||
}
|
||||
|
||||
// <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
||||
// <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
||||
if(parse_idx < RING_BUF_SIZE-1 && !frame_complete)
|
||||
{
|
||||
parsing_buf[parse_idx++] = ch;
|
||||
|
||||
// ֡β<D6A1><CEB2><EFBFBD><EFBFBD>
|
||||
// ֡β<D6A1><CEB2><EFBFBD>
|
||||
if(parse_idx >= 2 &&
|
||||
parsing_buf[parse_idx-2] == '\r' &&
|
||||
parsing_buf[parse_idx-1] == '\n')
|
||||
{
|
||||
if (nmea_validate_checksum((char *)parsing_buf)) //У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (nmea_validate_checksum((char *)parsing_buf)) //У<><D0A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
memcpy(&nema_output1.buffer[0],parsing_buf,parse_idx);
|
||||
publishMessage(&nema_output1, 1);
|
||||
frame_complete = true; // <20><><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
frame_complete = true; // <20><><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("nmea buf error");
|
||||
frame_complete = true; // <20><><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
frame_complete = true; // <20><><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
parse_idx = 0;
|
||||
}
|
||||
}
|
||||
else if(!frame_complete)
|
||||
{
|
||||
parse_idx = 0; // <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
||||
parse_idx = 0; // <20><>ֹ<EFBFBD><D6B9><EFBFBD>
|
||||
}
|
||||
}
|
||||
|
||||
timerStart(&nmea_timer, 50, 1); // 100ms<6D><73><EFBFBD>ٴδ<D9B4><CEB4><EFBFBD>
|
||||
timerStart(&nmea_timer, 10, 1); // 100ms<6D><73><EFBFBD>ٴδ<D9B4><CEB4><EFBFBD>
|
||||
}
|
||||
|
||||
void navigationRs232Process(void *signal_id)
|
||||
@@ -630,7 +630,7 @@ void navigationRs232Process(void *signal_id)
|
||||
|
||||
|
||||
|
||||
// APPģ<50><C4A3><EFBFBD>ij<EFBFBD>ʼ<EFBFBD><EFBFBD>
|
||||
// APPģ<50><C4A3>ij<EFBFBD>ʼ<EFBFBD><CABC>
|
||||
void interfaceUartInit(void)
|
||||
{
|
||||
subscribe(&set_output_data, setDataProcess);
|
||||
@@ -641,7 +641,7 @@ void interfaceUartInit(void)
|
||||
subscribe(&nmea_timer, ProcessNMEAFrames);
|
||||
subscribe(&navigation_rs232_output, navigationRs232Process);
|
||||
|
||||
timerStart(&nmea_timer, 50,1);//50ms
|
||||
timerStart(&nmea_timer, 10,1);//50ms
|
||||
|
||||
printf("interface uart: initial OK %d\n",getCurrentTime());
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#define UM982_RX_IRQn DMA2_Channel9_IRQn
|
||||
|
||||
|
||||
#define RING_BUF_SIZE 4096
|
||||
#define RING_BUF_SIZE 6144
|
||||
|
||||
|
||||
// <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD>嶨<EFBFBD><E5B6A8>
|
||||
|
||||
@@ -133,7 +133,7 @@ int main(void)
|
||||
|
||||
bootInterfaceInit();
|
||||
appMonitorInit();
|
||||
// testAppInit();
|
||||
testAppInit();
|
||||
feedWatchdog();
|
||||
dataProcessingAppInit();
|
||||
ethernetInterfaceInit();
|
||||
|
||||
@@ -353,13 +353,13 @@ void rs232Process(void)
|
||||
navigation_rs232_output.bit_data.gyro_z = (int16_t) (float_temp*32768/300.0f);
|
||||
|
||||
//<2F><><EFBFBD>ٶ<EFBFBD>
|
||||
float_temp = (float) (yis321_data.bit_data.acc_x)*0.000001f/9.8;//<2F>ĵ<DEB8>λΪg
|
||||
float_temp = (float) (yis321_data.bit_data.acc_x)*0.000001f;//<2F>ĵ<DEB8>λΪg
|
||||
navigation_rs232_output.bit_data.accel_x = (int16_t) (float_temp*32768/12.0f);
|
||||
|
||||
float_temp = (float) (yis321_data.bit_data.acc_y)*0.000001f/9.8;//<2F>ĵ<DEB8>λΪg
|
||||
float_temp = (float) (yis321_data.bit_data.acc_y)*0.000001f;//<2F>ĵ<DEB8>λΪg
|
||||
navigation_rs232_output.bit_data.accel_y = (int16_t) (float_temp*32768/12.0f);
|
||||
|
||||
float_temp = (float) (yis321_data.bit_data.acc_z)*0.000001f/9.8;//<2F>ĵ<DEB8>λΪg
|
||||
float_temp = (float) (yis321_data.bit_data.acc_z)*0.000001f;//<2F>ĵ<DEB8>λΪg
|
||||
navigation_rs232_output.bit_data.accel_z = (int16_t) (float_temp*32768/12.0f);
|
||||
|
||||
//gps<70><73>Ϣ
|
||||
@@ -432,9 +432,6 @@ void imuInput(void *signal_id)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
publishMessage(&navigation_output1, 1);
|
||||
}
|
||||
break;
|
||||
@@ -482,32 +479,30 @@ void iim6234Init(void *signal_id)
|
||||
|
||||
void nmeaPrintf(void *signal_id)
|
||||
{
|
||||
// printf("[THS] Heading:%.1f<EFBFBD><EFBFBD> Mode:%c\n",
|
||||
// ths_data1.heading, ths_data1.mode);
|
||||
// printf("[VTG] Course:%.1f<EFBFBD><EFBFBD> Speed:%.1fkm/h\n",
|
||||
// vtg_data1.course_true, vtg_data1.speed_kmh);
|
||||
printf("[THS] Heading:%.1f<EFBFBD><EFBFBD> Mode:%c\n",
|
||||
ths_data1.heading, ths_data1.mode);
|
||||
printf("[VTG] Course:%.1f<EFBFBD><EFBFBD> Speed:%.1fkm/h\n",
|
||||
vtg_data1.course_true, vtg_data1.speed_kmh);
|
||||
|
||||
// printf("[GGA] Time:%.2f Lat:%.5f%c Lon:%.5f%c Alt:%.2f rtk_state:%d satellite:%d hdop:%2f\n",
|
||||
// gga_data1.utc_time,
|
||||
// gga_data1.latitude, gga_data1.lat_dir,
|
||||
// gga_data1.longitude, gga_data1.lon_dir,
|
||||
// gga_data1.altitude, // <20><><EFBFBD><EFBFBD><EFBFBD>߶ȵ<DFB6>λΪM(<28><>)
|
||||
// gga_data1.fix_quality,
|
||||
// gga_data1.satellites,
|
||||
// gga_data1.hdop
|
||||
// );
|
||||
printf("[GGA] Time:%.2f Lat:%.5f%c Lon:%.5f%c Alt:%.2f rtk_state:%d satellite:%d hdop:%2f\n",
|
||||
gga_data1.utc_time,
|
||||
gga_data1.latitude, gga_data1.lat_dir,
|
||||
gga_data1.longitude, gga_data1.lon_dir,
|
||||
gga_data1.altitude, // <20><><EFBFBD><EFBFBD><EFBFBD>߶ȵ<DFB6>λΪM(<28><>)
|
||||
gga_data1.fix_quality,
|
||||
gga_data1.satellites,
|
||||
gga_data1.hdop
|
||||
);
|
||||
|
||||
// printf("<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>: (%.6f, %.6f, %.6f, %.6f)\n",
|
||||
// yis321_data.bit_data.q0*0.000001, yis321_data.bit_data.q1*0.000001, yis321_data.bit_data.q2*0.000001, (int32_t)yis321_data.bit_data.q3*0.000001);
|
||||
printf("<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>: (%.6f, %.6f, %.6f, %.6f)\n",
|
||||
yis321_data.bit_data.q0*0.000001, yis321_data.bit_data.q1*0.000001, yis321_data.bit_data.q2*0.000001, (int32_t)yis321_data.bit_data.q3*0.000001);
|
||||
|
||||
// printf("ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: (%.6f, %.6f, %.6f)\n",
|
||||
// yis321_data.bit_data.pitch*0.000001, yis321_data.bit_data.roll*0.000001, yis321_data.bit_data.yaw*0.000001);
|
||||
printf("ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: (%.6f, %.6f, %.6f)\n",
|
||||
yis321_data.bit_data.pitch*0.000001, yis321_data.bit_data.roll*0.000001, yis321_data.bit_data.yaw*0.000001);
|
||||
|
||||
printf("AccX:%f,AccY:%f,AccZ:%f,",Acc[0],Acc[1],Acc[2]);
|
||||
printf("GyroX:%f,GyroY:%f,GyroZ:%f\r\n",Gyro[0],Gyro[1],Gyro[2]);//ʹ<>ô<EFBFBD><C3B4>ڴ<EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD>ٶȣ<D9B6><C8A3><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
timerStart(&data_processing_timer, 1000,1);//100ms
|
||||
}
|
||||
|
||||
|
||||
@@ -21,14 +21,14 @@ void testTimerProcess(void *signal_id)
|
||||
static uint32_t start_time = 0;
|
||||
// short hx,hy,hz=0;
|
||||
|
||||
|
||||
printf("testAPP: %d us \n",getCurrentTime() - start_time);
|
||||
printf("testAPP\n");
|
||||
// printf("testAPP: %d us \n",getCurrentTime() - start_time);
|
||||
|
||||
// uint8_t arrtest4[10] = {0x56,0x56,0x04};
|
||||
|
||||
printf("AccX:%f,AccY:%f,AccZ:%f,",Acc[0],Acc[1],Acc[2]);
|
||||
printf("GyroX:%f,GyroY:%f,GyroZ:%f\r\n",Gyro[0],Gyro[1],Gyro[2]);//使用串口打印加速度,角速度数据
|
||||
printf("RM3100 hx: %d, hy: %d, hz: %d\r\n", navigation_output1.bit_data.magnetic_x_axis, navigation_output1.bit_data.magnetic_y_axis, navigation_output1.bit_data.magnetic_z_axis);
|
||||
// printf("AccX:%f,AccY:%f,AccZ:%f,",Acc[0],Acc[1],Acc[2]);
|
||||
// printf("GyroX:%f,GyroY:%f,GyroZ:%f\r\n",Gyro[0],Gyro[1],Gyro[2]);//使用串口打印加速度,角速度数据
|
||||
// printf("RM3100 hx: %d, hy: %d, hz: %d\r\n", navigation_output1.bit_data.magnetic_x_axis, navigation_output1.bit_data.magnetic_y_axis, navigation_output1.bit_data.magnetic_z_axis);
|
||||
|
||||
|
||||
// uint8_t tesr1 = 0;
|
||||
|
||||
Reference in New Issue
Block a user