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-03-28 19:55:43 +08:00
|
|
|
uint8_t bt_buffer; // 接收字符存入
|
|
|
|
|
uint8_t bt_run_flag = 0;
|
|
|
|
|
uint8_t bt_fly_flag = 0;
|
2024-03-02 16:05:24 +08:00
|
|
|
uint32_t bt_run = 0;
|
2024-05-05 19:15:51 +08:00
|
|
|
uint32_t bt_fly = 300;
|
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-03-24 18:24:32 +08:00
|
|
|
Reset,
|
2024-01-07 16:58:53 +08:00
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* @brief 蓝牙初始化
|
|
|
|
|
* @retval 无
|
|
|
|
|
*/
|
|
|
|
|
void jj_bt_init()
|
|
|
|
|
{
|
2024-03-11 20:25:14 +08:00
|
|
|
uart_init(BT_UART_INDEX, BT_UART_BAUDRATE, BT_UART_TX_PIN, BT_UART_RX_PIN);
|
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-05-05 19:15:51 +08:00
|
|
|
bt_fly += 25;
|
2024-01-07 16:58:53 +08:00
|
|
|
break;
|
2024-03-02 16:05:24 +08:00
|
|
|
case Fly_dowm:
|
2024-05-05 19:15:51 +08:00
|
|
|
bt_fly -= 25;
|
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;
|
2024-03-24 18:24:32 +08:00
|
|
|
case Reset:
|
|
|
|
|
NVIC_SystemReset();
|
|
|
|
|
break;
|
2024-01-07 16:58:53 +08:00
|
|
|
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
|
|
|
}
|