generated from Template/H563ZI-HAL-CMake-Template
Ble Transmit Success
This commit is contained in:
@@ -33,7 +33,11 @@
|
||||
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PD */
|
||||
#define BLE_RX_THREAD_STACK_SIZE 1024
|
||||
#define BLE_RX_THREAD_PRIORITY 10
|
||||
|
||||
#define BLE_TX_THREAD_STACK_SIZE 1024
|
||||
#define BLE_TX_THREAD_PRIORITY 10
|
||||
/* USER CODE END PD */
|
||||
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
@@ -49,7 +53,16 @@ TX_EVENT_FLAGS_GROUP system_events;
|
||||
MotorCommand current_motor_cmd = {0,0};
|
||||
_GPSData gps_data;
|
||||
|
||||
TX_THREAD ble_rx_thread;
|
||||
UCHAR ble_rx_stack[BLE_RX_THREAD_STACK_SIZE];
|
||||
|
||||
|
||||
|
||||
TX_THREAD ble_tx_thread;
|
||||
UCHAR ble_tx_stack[BLE_TX_THREAD_STACK_SIZE];
|
||||
|
||||
#define BLE_TX_QUEUE_DEPTH 4
|
||||
UCHAR ble_tx_queue_buffer[BLE_TX_QUEUE_DEPTH * sizeof(BLE_Message)];
|
||||
/* USER CODE END PV */
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
@@ -69,14 +82,40 @@ _GPSData gps_data;
|
||||
*/
|
||||
UINT App_ThreadX_Init(VOID *memory_ptr)
|
||||
{
|
||||
UINT ret = TX_SUCCESS;
|
||||
// UINT ret = TX_SUCCESS;
|
||||
/* USER CODE BEGIN App_ThreadX_MEM_POOL */
|
||||
|
||||
UINT status;
|
||||
|
||||
//初始化BLE接收任务
|
||||
// 初始化 BLE 接收任务
|
||||
status = tx_thread_create(&ble_rx_thread, "BLE RX Thread",
|
||||
ble_rx_task_entry, 0,
|
||||
ble_rx_stack, BLE_RX_THREAD_STACK_SIZE,
|
||||
BLE_RX_THREAD_PRIORITY, BLE_RX_THREAD_PRIORITY,
|
||||
TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) {
|
||||
return status;
|
||||
}
|
||||
|
||||
// 创建 BLE TX 线程
|
||||
status = tx_thread_create(&ble_tx_thread, "BLE TX Thread",
|
||||
ble_tx_task_entry, 0,
|
||||
ble_tx_stack, BLE_TX_THREAD_STACK_SIZE,
|
||||
BLE_TX_THREAD_PRIORITY, BLE_TX_THREAD_PRIORITY,
|
||||
TX_NO_TIME_SLICE, TX_AUTO_START);
|
||||
if (status != TX_SUCCESS) return status;
|
||||
|
||||
// ✅ 创建 BLE TX 消息队列
|
||||
status = tx_queue_create(&ble_tx_queue, "BLE TX Queue",
|
||||
sizeof(BLE_Message)/sizeof(ULONG),
|
||||
ble_tx_queue_buffer,
|
||||
sizeof(ble_tx_queue_buffer));
|
||||
if (status != TX_SUCCESS) return status;
|
||||
/* USER CODE END App_ThreadX_MEM_POOL */
|
||||
/* USER CODE BEGIN App_ThreadX_Init */
|
||||
/* USER CODE END App_ThreadX_Init */
|
||||
|
||||
return ret;
|
||||
return TX_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -100,11 +100,15 @@ int main(void)
|
||||
MX_UART4_Init();
|
||||
MX_TIM1_Init();
|
||||
MX_TIM8_Init();
|
||||
|
||||
// MX_ThreadX_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
HCBle_InitDMAReception();
|
||||
HAL_Delay(200);
|
||||
|
||||
/* USER CODE END 2 */
|
||||
|
||||
MX_ThreadX_Init();
|
||||
// MX_ThreadX_Init();
|
||||
|
||||
/* We should never get here as control is now taken by the scheduler */
|
||||
|
||||
@@ -113,7 +117,16 @@ int main(void)
|
||||
while (1)
|
||||
{
|
||||
/* USER CODE END WHILE */
|
||||
|
||||
if(flag == 1)
|
||||
{
|
||||
HCBle_ExtractAndParseFrame();
|
||||
flag = 0;
|
||||
}
|
||||
|
||||
// Ŀǰ BLE<4C>Ľ<EFBFBD><C4BD>ջ<EFBFBD>û<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ƿ<EFBFBD><C7B7>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
HCBle_SendData("#{\"lat\":%.6f,\"lon\":%.6f,\"angle\":%.2f}\n",
|
||||
23.123456, 113.654321, 95.0);
|
||||
HAL_Delay(1000);
|
||||
/* USER CODE BEGIN 3 */
|
||||
}
|
||||
/* USER CODE END 3 */
|
||||
|
||||
@@ -289,13 +289,29 @@ void USART3_IRQHandler(void)
|
||||
*/
|
||||
void UART4_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN UART4_IRQn 0 */
|
||||
HAL_UART_IRQHandler(&huart4);
|
||||
|
||||
/* USER CODE END UART4_IRQn 0 */
|
||||
HAL_UART_IRQHandler(&huart4);
|
||||
/* USER CODE BEGIN UART4_IRQn 1 */
|
||||
if (__HAL_UART_GET_FLAG(&huart4, UART_FLAG_IDLE))
|
||||
{
|
||||
__HAL_UART_CLEAR_IDLEFLAG(&huart4); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־
|
||||
|
||||
/* USER CODE END UART4_IRQn 1 */
|
||||
// ֹͣDMA
|
||||
HAL_UART_DMAStop(&huart4);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ʵ<EFBFBD>ʽ<EFBFBD><CABD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
uint16_t len = UART_DMA_RX_BUF_SIZE - __HAL_DMA_GET_COUNTER(huart4.hdmarx);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ring buffer
|
||||
for (uint16_t i = 0; i < 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;
|
||||
|
||||
}
|
||||
flag = 1;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DMA
|
||||
HAL_UART_Receive_DMA(&huart4, uart_dma_rx_buf, UART_DMA_RX_BUF_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
Reference in New Issue
Block a user