generated from Template/H563ZI-HAL-CMake-Template
IMU Angle Z get Successful
This commit is contained in:
26
fun/HCBle.c
26
fun/HCBle.c
@@ -41,7 +41,9 @@ TX_EVENT_FLAGS_GROUP ble_event_flags;
|
||||
|
||||
|
||||
void HCBle_InitEventFlags(void)
|
||||
{ tx_event_flags_create(&ble_event_flags, "BLE Events");}
|
||||
{ tx_event_flags_create(&ble_event_flags, "BLE Events");
|
||||
// tx_event_flags_create(&sensor_events,"Sensor Events");
|
||||
}
|
||||
|
||||
//<2F><>ʼ<EFBFBD><CABC>DMA<4D><41><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>
|
||||
void HCBle_InitDMAReception(void)
|
||||
@@ -109,6 +111,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
||||
HAL_UARTEx_ReceiveToIdle_IT(&huart2,GPS_DMA_RX_BUF,GPS_DMA_RX_BUF_LEN);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -127,12 +130,7 @@ void HCBle_ParseAndHandleFrame(const char *frame)
|
||||
return;
|
||||
}
|
||||
|
||||
// if (sscanf(frame, "%*[^0-9]%d%*[^0-9]%d", &left, &right) == 2) {
|
||||
// cmd.LeftSpeed = left;
|
||||
// cmd.RightSpeed = right;
|
||||
// HCBle_SendData("? <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>: <20><>=%d, <20><>=%d\r\n", left, right);
|
||||
// return;
|
||||
// }
|
||||
|
||||
|
||||
HCBle_SendData("? <20><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>: %s\r\n", frame);
|
||||
}
|
||||
@@ -195,13 +193,13 @@ void ble_tx_task_entry(ULONG thread_input) {
|
||||
BleMessage msg;
|
||||
while(1) {
|
||||
|
||||
// HCBle_SendData("#{\"lat\":%.6f,\"lon\":%.6f,\"angle\":%.2f}\n",23.123456, 113.654321, 95.0);
|
||||
// tx_thread_sleep(500);
|
||||
if(tx_queue_receive(&ble_tx_queue,&msg,TX_WAIT_FOREVER) == TX_SUCCESS)
|
||||
{
|
||||
HCBle_SendData("#{\"lat\":%.6f,\"lon\":%.6f,\"angle\":%.1f}\n",
|
||||
msg.lat,msg.lon,msg.angle);
|
||||
}
|
||||
HCBle_SendData("#{\"lat\":%.6f,\"lon\":%.6f,\"angle\":%.2f}\n",23.123456, 113.654321, 95.0);
|
||||
tx_thread_sleep(500);
|
||||
// if(tx_queue_receive(&ble_tx_queue,&msg,TX_WAIT_FOREVER) == TX_SUCCESS)
|
||||
// {
|
||||
// HCBle_SendData("#{\"lat\":%.6f,\"lon\":%.6f,\"angle\":%.1f}\n",
|
||||
// 23.123456, 113.654321,msg.angle);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
18
fun/IMU.c
18
fun/IMU.c
@@ -1037,23 +1037,15 @@ char IMU_Send_Data[128]; //
|
||||
/******
|
||||
IMU <20><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>
|
||||
*******/
|
||||
void IMU_SendData(char *p,...)
|
||||
int UART_Write(uint8_t n, uint8_t *buf, int Len)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap,p);
|
||||
vsprintf(IMU_Send_Data,p,ap);
|
||||
va_end(ap);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
||||
HAL_UART_Transmit(&huart3,(uint8_t *)IMU_Send_Data,strlen(IMU_Send_Data),10);
|
||||
// HAL_UART_Transmi(&huart1,(uint8_t *)formatBuf,strlen(formatBuf),1);
|
||||
// <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ʹ<EFBFBD><CAB9><EFBFBD>жϵĴ<CFB5><C4B4>ڷ<EFBFBD><DAB7>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
HAL_UART_Transmit_IT(&huart3, buf, Len);
|
||||
|
||||
return Len;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ҫ<EFBFBD>û<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>-------------------------------------
|
||||
* @param pBuf Ҫ<><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
@@ -1062,7 +1054,7 @@ void IMU_SendData(char *p,...)
|
||||
static void Cmd_Write(U8 *pBuf, int Len)
|
||||
{
|
||||
// ͨ<><CDA8>UART_Write<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>Եײ<D4B5>Ӳ<EFBFBD><D3B2>ʵ<EFBFBD><CAB5>UART_Write<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bufָ<66><D6B8>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Len<65>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7>ͳ<EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>
|
||||
IMU_SendData(0, pBuf, Len);
|
||||
UART_Write(0, pBuf, Len);
|
||||
|
||||
Dbp_U8_buf("tx: ", "\r\n",
|
||||
"%02X ",
|
||||
|
||||
@@ -59,10 +59,10 @@ extern struct_UartFifo UartFifo;
|
||||
|
||||
|
||||
// ===============================<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>====================================
|
||||
#define __Debug // ʹ<>õ<EFBFBD><C3B5>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ,<2C><>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>α<EFBFBD><CEB1>伴<EFBFBD><E4BCB4>
|
||||
// #define __Debug // ʹ<>õ<EFBFBD><C3B5>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ,<2C><>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>α<EFBFBD><CEB1>伴<EFBFBD><E4BCB4>
|
||||
#ifdef __Debug
|
||||
#define Dbp(fmt, args...) printf(fmt, ##args) // <20><><EFBFBD><EFBFBD>Ҫʹ<D2AA>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>Ϣ, <20>û<EFBFBD><C3BB>Խ<EFBFBD>Dbp<62><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// extern void Dbp_U8_buf(char *sBeginInfo, char *sEndInfo, char *sFormat, const U8 *Buf, U32 Len);
|
||||
extern void Dbp_U8_buf(char *sBeginInfo, char *sEndInfo, char *sFormat, const U8 *Buf, U32 Len);
|
||||
#else
|
||||
#define Dbp(fmt, args...)
|
||||
#define Dbp_U8_buf(sBeginInfo, sEndInfo, sFormat, Buf, Len)
|
||||
|
||||
@@ -32,7 +32,8 @@ typedef struct GPSData
|
||||
|
||||
extern _GPSData GPS;
|
||||
extern uint8_t GPS_DMA_RX_BUF[GPS_DMA_RX_BUF_LEN];
|
||||
|
||||
double Convert_to_degrees(char *data);
|
||||
void parseGpsBuffer();
|
||||
void gps_thread_entry(ULONG thread_input);
|
||||
void GPS_Init(void);
|
||||
|
||||
|
||||
113
fun/imu948.c
113
fun/imu948.c
@@ -2,7 +2,61 @@
|
||||
|
||||
extern _GPSData gps_data;
|
||||
extern TX_QUEUE ble_tx_queue;
|
||||
extern uint8_t rx_byte;
|
||||
extern TX_EVENT_FLAGS_GROUP sensor_events;
|
||||
|
||||
void imu600_init(void)
|
||||
{
|
||||
|
||||
HAL_UART_Receive_IT(&huart3,&rx_byte,1);
|
||||
HAL_Delay(6000);
|
||||
|
||||
//------- <20><><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>úô<C3BA><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>-----
|
||||
Cmd_03(); //<2F><><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
HAL_Delay(500);
|
||||
/**
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
||||
* @param accStill <20>ߵ<EFBFBD>-<2D><>ֹ״̬<D7B4><CCAC><EFBFBD>ٶȷ<D9B6>ֵ <20><>λdm/s?
|
||||
* @param stillToZero <20>ߵ<EFBFBD>-<2D><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>(<28><>λcm/s) 0:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 255:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param moveToZero <20>ߵ<EFBFBD>-<2D><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>(<28><>λcm/s) 0:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param isCompassOn 1=<3D>迪<EFBFBD><E8BFAA><EFBFBD>ų<EFBFBD> 0=<3D><><EFBFBD>رմų<D5B4>
|
||||
* @param barometerFilter <20><>ѹ<EFBFBD>Ƶ<EFBFBD><C6B5>˲<EFBFBD><CBB2>ȼ<EFBFBD>[ȡֵ0-3],<2C><>ֵԽ<D6B5><D4BD>Խƽ<D4BD>ȵ<EFBFBD>ʵʱ<CAB5><CAB1>Խ<EFBFBD><D4BD>
|
||||
* @param reportHz <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1>Ĵ<EFBFBD><C4B4><EFBFBD>֡<EFBFBD><D6A1>[ȡֵ0-250HZ], 0<><30>ʾ0.5HZ
|
||||
* @param gyroFilter <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>ϵ<EFBFBD><CFB5>[ȡֵ0-2],<2C><>ֵԽ<D6B5><D4BD>Խƽ<D4BD>ȵ<EFBFBD>ʵʱ<CAB5><CAB1>Խ<EFBFBD><D4BD>
|
||||
* @param accFilter <20><><EFBFBD>ټ<EFBFBD><D9BC>˲<EFBFBD>ϵ<EFBFBD><CFB5>[ȡֵ0-4],<2C><>ֵԽ<D6B5><D4BD>Խƽ<D4BD>ȵ<EFBFBD>ʵʱ<CAB5><CAB1>Խ<EFBFBD><D4BD>
|
||||
* @param compassFilter <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>ϵ<EFBFBD><CFB5>[ȡֵ0-9],<2C><>ֵԽ<D6B5><D4BD>Խƽ<D4BD>ȵ<EFBFBD>ʵʱ<CAB5><CAB1>Խ<EFBFBD><D4BD>
|
||||
* @param Cmd_ReportTag <20><><EFBFBD>ܶ<EFBFBD><DCB6>ı<EFBFBD>ʶ
|
||||
*/
|
||||
Cmd_12(5, 255, 0, 0, 3, 2, 2, 4, 9, 0xFFF);// 2 <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>1) ֻ<><D6BB><EFBFBD><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD>
|
||||
HAL_Delay(500);
|
||||
Cmd_19();// 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ҾͲ<D2BE><CDB2><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
//void IM948_Init(void)
|
||||
//{
|
||||
// HAL_UART_Receive_IT(&huart3, &rx_byte, 1);
|
||||
|
||||
// // <20><>ģ<EFBFBD><C4A3><EFBFBD>ϵ<EFBFBD>
|
||||
// tx_thread_sleep( TX_TIMER_TICKS_PER_SECOND * 5 );
|
||||
|
||||
|
||||
// Cmd_03(); // <20><><EFBFBD><EFBFBD>
|
||||
// tx_thread_sleep( TX_TIMER_TICKS_PER_SECOND / 10 );
|
||||
|
||||
// // ֻ<><D6BB><EFBFBD><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD>
|
||||
// Cmd_12(
|
||||
// 5, 255, 0,
|
||||
// 0, 3, 5,
|
||||
// 2, 2, 4,
|
||||
// 0x0040 // ֻҪŷ<D2AA><C5B7><EFBFBD><EFBFBD>
|
||||
// );
|
||||
// tx_thread_sleep( TX_TIMER_TICKS_PER_SECOND / 10 );
|
||||
|
||||
// Cmd_19(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
||||
//}
|
||||
|
||||
|
||||
extern TX_QUEUE im948_uart_rx_queue;
|
||||
/***
|
||||
<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> <20><>IMU.c<><63>Ϊ<EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD> Base
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>дӦ<EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -10,22 +64,49 @@ extern TX_QUEUE ble_tx_queue;
|
||||
|
||||
void imu_angle_ble_task_entry(ULONG thread_input)
|
||||
{
|
||||
BleMessage msg;
|
||||
UINT sta; // ״̬
|
||||
while(1)
|
||||
ULONG rx_data;
|
||||
|
||||
// <20><>ʼ<EFBFBD><CABC>ģ<EFBFBD><C4A3>
|
||||
// IM948_Init();
|
||||
// HCBle_SendData("halo");
|
||||
while(1)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ڽ<EFBFBD><DABD><EFBFBD>
|
||||
if (tx_queue_receive(&im948_uart_rx_queue, &rx_data, TX_WAIT_FOREVER) == TX_SUCCESS)
|
||||
{
|
||||
Cmd_GetPkt( (uint8_t)rx_data );
|
||||
}
|
||||
|
||||
// <20><><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>°<EFBFBD>
|
||||
if (isNewData)
|
||||
{
|
||||
isNewData = 0;
|
||||
|
||||
float angle = AngleZ;
|
||||
HCBle_SendData("Z:%.2f\r\n",AngleZ);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>angle<6C><65>ä<EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>:
|
||||
if(angle > 30.0f) {
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>úý<C3BA><C3BD>պ<EFBFBD><D5BA><EFBFBD>
|
||||
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
|
||||
{
|
||||
if(huart->Instance == USART3)
|
||||
{
|
||||
// ֻҪ<D6BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>ʹ<EFBFBD><CDB4><EFBFBD>
|
||||
tx_thread_sleep(500); // ÿ20ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
||||
|
||||
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>½Ƕ<C2BD>
|
||||
msg.angle = 96.7;
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
sta = tx_queue_send(&ble_tx_queue,&msg,TX_NO_WAIT);
|
||||
if(sta != TX_SUCCESS)
|
||||
{
|
||||
HCBle_SendData("Queue is full,IMU's Data was abandon");
|
||||
}
|
||||
// HCBle_SendData("RX USART3: 0x%02X (%c)\r\n", rx_byte, rx_byte);
|
||||
|
||||
// Fifo_in(rx_byte);
|
||||
ULONG rx_data = rx_byte;
|
||||
tx_queue_send(&im948_uart_rx_queue, &rx_data, TX_NO_WAIT);
|
||||
// tx_event_flags_set(&sensor_events, EVENT_IMU_DATA_READY, TX_OR);
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
HAL_UART_Receive_IT(huart,&rx_byte,1);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,6 +4,6 @@
|
||||
#include "headfile.h"
|
||||
|
||||
void imu_angle_ble_task_entry(ULONG thread_input);
|
||||
|
||||
void imu600_init(void);
|
||||
|
||||
#endif
|
||||
@@ -8,8 +8,8 @@ typedef struct
|
||||
float angle;
|
||||
}BleMessage;
|
||||
|
||||
|
||||
|
||||
#define EVENT_GPS_DATA_READY (1U << 0)
|
||||
#define EVENT_IMU_DATA_READY (1U << 1)
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user