Files
QDAC-firmware/app/jj_blueteeth.c
2024-03-03 16:20:25 +08:00

84 lines
1.9 KiB
C

#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]);
}
}