feat: 完成按键、屏幕和蜂鸣器适配
This commit is contained in:
@@ -1,92 +0,0 @@
|
||||
#include "jj_blueteeth.h"
|
||||
#include "jj_motion.h"
|
||||
#include "by_fan_control.h"
|
||||
bool bt_rx_flag = false;
|
||||
uint8 bt_buffer; // 接收字符存入
|
||||
float bt_angle = 0.0f;
|
||||
uint32_t bt_run_flag = 0;
|
||||
uint8_t bt_flow_flag = 0;
|
||||
uint32_t bt_fly = 0;
|
||||
uint32_t bt_flow = 0;
|
||||
enum bt_order {
|
||||
Start_work = 0x01,
|
||||
Turn_Left = 0x02,
|
||||
Turn_Right = 0x03,
|
||||
Speed_up = 0x04,
|
||||
Speed_down = 0x05,
|
||||
Stop_fly = 0x06,
|
||||
Flow_on = 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_tx_interrupt(UART_2, 1);
|
||||
uart_rx_interrupt(UART_2, ENABLE);
|
||||
}
|
||||
/**
|
||||
*@brief 蓝牙中断回调函数
|
||||
*/
|
||||
void jj_bt_run()
|
||||
{
|
||||
if (bt_rx_flag) {
|
||||
switch (bt_buffer) {
|
||||
case Start_work:
|
||||
bt_angle = 0.0f;
|
||||
break;
|
||||
case Turn_Left:
|
||||
bt_angle = 10.0f;
|
||||
break;
|
||||
case Turn_Right:
|
||||
bt_angle = -10.0f;
|
||||
break;
|
||||
case Speed_down:
|
||||
bt_fly -= 10;
|
||||
break;
|
||||
case Speed_up:
|
||||
bt_fly += 10;
|
||||
break;
|
||||
case Stop_fly:
|
||||
bt_run_flag = !bt_run_flag;
|
||||
break;
|
||||
case Flow_on:
|
||||
bt_flow_flag = !bt_flow_flag;
|
||||
break;
|
||||
case Flow_up:
|
||||
bt_flow += 20;
|
||||
break;
|
||||
case Flow_down:
|
||||
bt_flow -= 20;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (bt_flow_flag == 0) {
|
||||
bt_flow = 0;
|
||||
}
|
||||
by_pwm_update_duty(bt_flow + 500, bt_flow + 500);
|
||||
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]);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user