#include "jj_blueteeth.h" #include "jj_motion.h" #include "by_fan_control.h" bool bt_rx_flag = false; uint8_t bt_buffer; // 接收字符存入 uint8_t bt_run_flag = 0; uint8_t bt_fly_flag = 0; uint32_t bt_run = 0; float bt_fly = 250.f; enum bt_order { Fly_ctrl = 0x01, // 起飞转换 Fly_up = 0x02, // 起飞程度增加 Fly_dowm = 0x03, // 起飞程度减小 Speed_up = 0x04, // 加速 Speed_down = 0x05, // 减速 Speed_ctrl = 0x06, // 速度开关 Reset, }; /** * @brief 蓝牙初始化 * @retval 无 */ void jj_bt_init() { uart_init(BT_UART_INDEX, BT_UART_BAUDRATE, BT_UART_TX_PIN, BT_UART_RX_PIN); // uart_tx_interrupt(UART_2, 1); uart_rx_interrupt(UART_8, ENABLE); } /** *@brief 蓝牙中断回调函数 */ void jj_bt_run() { if (bt_rx_flag) { switch (bt_buffer) { case Fly_ctrl: bt_fly_flag = !bt_fly_flag; break; case Speed_ctrl: bt_run_flag = !bt_run_flag; break; case Fly_up: bt_fly += 25; break; case Fly_dowm: bt_fly -= 25; break; case Speed_up: bt_run += 50; break; case Speed_down: bt_run -= 50; break; case Reset: NVIC_SystemReset(); 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_8], USART_FLAG_TC) == RESET) ; USART_SendData((USART_TypeDef *)uart_index[UART_8], sbuf[i]); } }