Files
QD4C-firmware/app/jj_blueteeth.c

73 lines
1.9 KiB
C
Raw Normal View History

2024-01-07 16:58:53 +08:00
#include "jj_blueteeth.h"
2024-01-16 20:03:21 +08:00
#include "jj_motion.h"
#include "by_fan_control.h"
2024-01-07 16:58:53 +08:00
bool bt_rx_flag = false;
2024-01-16 20:03:21 +08:00
uint8 bt_buffer; // 接收字符存入
uint32_t bt_run_flag = 0;
2024-03-02 16:05:24 +08:00
uint8_t bt_fly_flag = 0;
uint32_t bt_run = 0;
uint32_t bt_fly = 500;
2024-01-07 16:58:53 +08:00
enum bt_order {
2024-03-02 16:05:24 +08:00
Fly_ctrl = 0x01, // 起飞转换
Fly_up = 0x02, // 起飞程度增加
Fly_dowm = 0x03, // 起飞程度减小
Speed_up = 0x04, // 加速
Speed_down = 0x05, // 减速
Speed_ctrl = 0x06, // 速度开关
2024-01-07 16:58:53 +08:00
};
/**
* @brief
* @retval
*/
void jj_bt_init()
{
2024-03-04 22:33:43 +08:00
uart_init(UART_8, 115200, UART8_MAP0_TX_C4, UART8_MAP0_RX_C5);
2024-01-16 20:03:21 +08:00
// uart_tx_interrupt(UART_2, 1);
2024-03-04 22:33:43 +08:00
uart_rx_interrupt(UART_8, ENABLE);
2024-01-07 16:58:53 +08:00
}
/**
*@brief
*/
void jj_bt_run()
{
if (bt_rx_flag) {
switch (bt_buffer) {
2024-03-02 16:05:24 +08:00
case Fly_ctrl:
bt_fly_flag = !bt_fly_flag;
2024-01-07 16:58:53 +08:00
break;
2024-03-02 16:05:24 +08:00
case Speed_ctrl:
bt_run_flag = !bt_run_flag;
2024-01-07 16:58:53 +08:00
break;
2024-03-02 16:05:24 +08:00
case Fly_up:
2024-03-04 22:33:43 +08:00
bt_fly += 50;
2024-01-07 16:58:53 +08:00
break;
2024-03-02 16:05:24 +08:00
case Fly_dowm:
2024-03-04 22:33:43 +08:00
bt_fly -= 50;
2024-01-07 16:58:53 +08:00
break;
case Speed_up:
2024-03-04 22:33:43 +08:00
bt_run += 50;
2024-01-16 20:03:21 +08:00
break;
2024-03-02 16:05:24 +08:00
case Speed_down:
2024-03-04 22:33:43 +08:00
bt_run -= 50;
2024-01-07 16:58:53 +08:00
break;
default:
break;
}
bt_rx_flag = false;
}
2024-01-16 20:03:21 +08:00
}
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++) {
2024-03-04 22:33:43 +08:00
while (USART_GetFlagStatus((USART_TypeDef *)uart_index[UART_8], USART_FLAG_TC) == RESET)
2024-01-16 20:03:21 +08:00
;
2024-03-04 22:33:43 +08:00
USART_SendData((USART_TypeDef *)uart_index[UART_8], sbuf[i]);
2024-01-16 20:03:21 +08:00
}
2024-01-07 16:58:53 +08:00
}