#include "jj_blueteeth.h" bool bt_rx_flag = false; bool bt_run_flag = false; bool bt_flow_flag = false; uint8_t bt_buffer; // 接收字符存入 uint32_t bt_run = 0; uint32_t bt_flow = 0; float bt_angle = 0.0f; enum bt_order { Start_work = 0x01, Turn_Left = 0x02, Turn_Right = 0x03, Speed_up = 0x04, Speed_down = 0x05, Run_flag = 0x06, Flow_flag = 0x08, Flow_up = 0x09, Flow_down = 0x10, }; /** * @brief 蓝牙初始化 * @retval 无 */ void jj_bt_init() { uart_init(UART_2, 115200, UART2_MAP1_TX_D5, UART2_MAP1_RX_D6); uart_rx_interrupt(UART_2, ENABLE); } /** * @brief 蓝牙中断回调 * */ void jj_bt_run() { if (bt_rx_flag) { switch (bt_buffer) { case Start_work: break; case Turn_Left: break; case Turn_Right: break; case Speed_down: bt_run -= 10; break; case Speed_up: bt_run += 10; break; case Run_flag: bt_run_flag = !bt_run_flag; break; case Flow_flag: bt_flow_flag = !bt_flow_flag; break; case Flow_up: bt_flow += 20; break; case Flow_down: bt_flow -= 20; break; default: break; } bt_rx_flag = false; } } void bt_printf(const char *format, ...) { char sbuf[40]; va_list args; va_start(args, format); vsnprintf(sbuf, 40, format, args); va_end(args); for (uint16_t i = 0; i < strlen(sbuf); i++) { while (USART_GetFlagStatus((USART_TypeDef *)uart_index[UART_2], USART_FLAG_TC) == RESET) ; USART_SendData((USART_TypeDef *)uart_index[UART_2], sbuf[i]); } }