generated from Template/H563ZI-HAL-CMake-Template
BLE transmit and receive success
This commit is contained in:
79
fun/HCBle.c
79
fun/HCBle.c
@@ -38,8 +38,9 @@ float imu_angle = 0.0f;
|
||||
//<2F><>ʼ<EFBFBD><CABC>DMA<4D><41><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>
|
||||
void HCBle_InitDMAReception(void)
|
||||
{
|
||||
HAL_UART_Receive_DMA(&huart4,uart_dma_rx_buf,UART_DMA_RX_BUF_SIZE);
|
||||
__HAL_UART_ENABLE_IT(&huart4,UART_IT_IDLE); //ʹ<>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart4, uart_dma_rx_buf, UART_DMA_RX_BUF_SIZE);
|
||||
// ֻ<><D6BB>Ҫֱ<D2AA>Ӵ<EFBFBD><D3B4><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD><DABF>н<EFBFBD><D0BD><EFBFBD>
|
||||
// HAL_UARTEx_RxEventCallback --- <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>
|
||||
}
|
||||
|
||||
|
||||
@@ -66,38 +67,27 @@ void HCBle_SendData(char *p,...)
|
||||
// <20><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>һ<EFBFBD><D2BB>DMA
|
||||
|
||||
|
||||
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
||||
{
|
||||
if (huart->Instance == UART4)
|
||||
{
|
||||
|
||||
|
||||
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD>
|
||||
//void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
|
||||
//{
|
||||
// if(huart->Instance == UART4)
|
||||
// {
|
||||
// if(rx_data == '\n')
|
||||
// {
|
||||
// if(rx_index > 0)
|
||||
// {
|
||||
// HC_Recevie[rx_index] = '\0';
|
||||
// data_received = 1;
|
||||
// rx_index = 0; //<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD> <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> memset
|
||||
// }else if(rx_index < RX_DataSize - 1)
|
||||
// {
|
||||
//
|
||||
// }else
|
||||
// {
|
||||
// rx_index = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// memset(HC_Recevie,'\0',RX_DataSize);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// HAL_UART_Receive_IT(huart,&rx_data,1);
|
||||
// }
|
||||
//}
|
||||
|
||||
uint16_t data_len = UART_DMA_RX_BUF_SIZE - __HAL_DMA_GET_COUNTER(huart->hdmarx);
|
||||
for (uint16_t i = 0; i < data_len; i++)
|
||||
{
|
||||
ble_rx_ring.buffer[ble_rx_ring.head] = uart_dma_rx_buf[i];
|
||||
ble_rx_ring.head = (ble_rx_ring.head + 1) % RING_BUFFER_SIZE;
|
||||
}
|
||||
// memset(uart_dma_rx_buf, '\0', data_len);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uart_rx_buf[0..Size-1] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart4, uart_dma_rx_buf, UART_DMA_RX_BUF_SIZE);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD>HAL<41><4C><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ˣ<EFBFBD>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD> Json<6F><6E><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD> <20>Լ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8>ֻ<EFBFBD>App
|
||||
uint8_t flag;
|
||||
|
||||
|
||||
// Json<6F><6E><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD> <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>Thread x <20><><EFBFBD>н<EFBFBD><D0BD><EFBFBD>
|
||||
void HCBle_ExtractAndParseFrame(void)
|
||||
@@ -145,7 +135,7 @@ void HCBle_ExtractAndParseFrame(void)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef TEST //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>app_thread.h<><68>
|
||||
|
||||
// BLE<4C><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ble_rx_task_entry(ULONG thread_input)
|
||||
{
|
||||
@@ -154,25 +144,40 @@ void ble_rx_task_entry(ULONG thread_input)
|
||||
while(1)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
HCBle_ExtractAndParseFrame();
|
||||
tx_thread_sleep(10);
|
||||
HCBle_ExtractAndParseFrame(); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>JSON<4F><4E><EFBFBD><EFBFBD>
|
||||
tx_thread_sleep(10); //ÿ10ms<6D><73>ѯ1<D1AF><31>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// "#{\"lat\":%.6f,\"lon\":%.6f,\"angle\":%.2f}\n",23.123456, 113.654321, 95.0);
|
||||
// HCBle_SendData("#{\"lat\":%.6f,\"lon\":%.6f,\"angle\":%.2f}\n",
|
||||
// current_location.lat, current_location.lon, current_location.angle);
|
||||
void ble_tx_task_entry(ULONG thread_input) {
|
||||
BLE_Message msg;
|
||||
HCBle_SendData("BLE TX <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\r\n");
|
||||
while(1) {
|
||||
HCBle_SendData("fuck");
|
||||
if (tx_queue_receive(&ble_tx_queue, &msg, TX_WAIT_FOREVER) == TX_SUCCESS) {
|
||||
// HCBle_SendData("%s", msg.data);
|
||||
HCBle_SendData("#{\"lat\":%.6f,\"lon\":%.6f,\"angle\":%.2f}\n",
|
||||
23.123456, 113.654321, 95.0);
|
||||
switch (msg.msg_type)
|
||||
{
|
||||
case 1: // <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>λ<EFBFBD>ϱ<EFBFBD>
|
||||
HCBle_SendData("#{\"lat\":%.6f,\"lon\":%.6f,\"angle\":%.2f}\n",23.123456, 113.654321, 95.0);
|
||||
break;
|
||||
|
||||
case 2: // ACK <20><><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
||||
HCBle_SendData("%s", msg.data);
|
||||
break;
|
||||
|
||||
default:
|
||||
HCBle_SendData("δ֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user