#include "CH57x_common.h"
#include "CH57x_BLE.h"
// 蓝牙接收回调:收到数据后转发到串口
void BLE_RecvCB(uint8_t *pBuf, uint8_t len) {
UART1_SendData(pBuf, len); // 串口1转发蓝牙数据
}
// 串口接收回调:收到数据后转发到蓝牙
void UART1_IRQHandler(void) {
if(UART1_GetITStatus(UART_IT_RX_DONE)) {
uint8_t buf[32], len = UART1_RecvData(buf, 32);
BLE_SendData(buf, len); // 蓝牙转发串口数据
UART1_ClearITFlag(UART_IT_RX_DONE);
}
}
int main(void) {
SetSysClock(CLK_SOURCE_PLL_60MHz); // 配置系统时钟
UART1_Init(115200); // 初始化串口1(波特率115200)
UART1_ITCfg(UART_IT_RX_DONE, ENABLE); // 使能串口接收中断
NVIC_EnableIRQ(UART1_IRQn); // 开启串口中断优先级
BLE_Init(); // 初始化BLE(默认从机模式)
BLE_RegisterRecvCB(BLE_RecvCB); // 注册蓝牙接收回调
while(1) {
BLE_MainLoop(); // BLE协议栈主循环
}
}
|