123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- #include "include.h"
- #include "api.h"
- #if HUART_EN
- void sco_huart_tx_done(void);
- AT(.com_huart.text)
- void huart_tx_done_cb(void)
- {
- #if ANC_ALG_DUMP_EN || BT_SCO_DUMP_TX_EN
- sco_huart_tx_done();
- #endif
- }
- AT(.com_huart.text)
- void huart_rx_done_cb(void)
- {
- if(eq_rx_buf[0] == 0xF5 && eq_rx_buf[1] == 0xA0 && eq_rx_buf[2] == 0xA5 && eq_rx_buf[3] == 0x96 && eq_rx_buf[4] == 0x87 && eq_rx_buf[5] == 0x5A){
- WDT_RST();
- while(1);
- }
- #if EQ_DBG_IN_UART
- if(bsp_eq_rx_done(eq_rx_buf)){
- return;
- }
- #endif
- #if ANC_ALG_DBG_EN
- if (bsp_anc_alg_dbg_rx_done(eq_rx_buf, 0)) {
- return;
- }
- #endif // ANC_ALG_DBG_EN
- #if (CHARGE_BOX_INTF_SEL == INTF_HUART)
- charge_box_packet_huart_recv(eq_rx_buf);
- #endif
- #if QTEST_EN /*&& (TEST_INTF_SEL == INTF_HUART)*/
- if(QTEST_IS_ENABLE()) {
- qtest_packet_huart_recv(eq_rx_buf);
- }
- #endif
- #if IODM_TEST_EN && (TEST_INTF_SEL == INTF_HUART)
- iodm_packet_huart_recv(eq_rx_buf);
- #endif
- #if ONEMORE_SPP_TEST_EN
- onemore_hq51_uart_reveice_data_handle(eq_rx_buf);
- #endif
- }
- void bsp_huart_init(void)
- {
- huart_t huart0;
- #if IODM_TEST_EN
- u32 baud_rate = 9600;
- #else
- u32 baud_rate = 1500000;
- #endif // IODM_TEST_EN
- #if (BT_DUMP_6M_EN && BT_SCO_DUMP_TX_EN)
- baud_rate = 6000000;
- #endif
- if (xcfg_cb.huart_sel == HUART_TR_PA7) {
- if (UART0_PRINTF_SEL == PRINTF_PA7) {
- FUNCMCON0 = 0x0f << 8;
- }
- } else if (xcfg_cb.huart_sel == HUART_TR_PB2) {
- if (UART0_PRINTF_SEL == PRINTF_PB2) {
- FUNCMCON0 = 0x0f << 8;
- }
- } else if (xcfg_cb.huart_sel == HUART_TR_PB3) {
- if (UART0_PRINTF_SEL == PRINTF_PB3) {
- FUNCMCON0 = 0x0f << 8;
- }
- }
- if((xcfg_cb.huart_sel == HUART_TR_VUSB)){
- if(!sys_cb.vusb_uart_flag){
- PWRCON0 |= BIT(30); //Enable VUSB GPIO
- #if (CHARGE_BOX_INTF_SEL == INTF_HUART) || (QTEST_EN /*&& (TEST_INTF_SEL == INTF_HUART)*/)
- baud_rate = 9600;
- #endif
- xcfg_cb.chg_inbox_pwrdwn_en=0; //入仓耳机关机
- sys_cb.vusb_uart_flag = 1;
- }else{
- return;
- }
- }
- memset(eq_rx_buf, 0, EQ_BUFFER_LEN);
- memset(&huart0, 0x00, sizeof(huart0));
- huart0.rx_port = xcfg_cb.huart_sel;
- huart0.tx_port = xcfg_cb.huart_sel;
- huart0.rxisr_en = 1;
- huart0.txisr_en = 1;
- huart0.rxbuf = eq_rx_buf;
- huart0.rxbuf_size = EQ_BUFFER_LEN;
- huart_init(&huart0, baud_rate);
- }
- #else
- void bsp_huart_init(void) {}
- #endif
- u8* huart_get_rxbuf(u16 *len)
- {
- *len = EQ_BUFFER_LEN;
- return eq_rx_buf;
- }
- #if BT_FCC_TEST_EN || LE_BQB_RF_EN
- ALIGNED(4)
- u8 huart_buffer[128];
- void bt_uart_init(void)
- {
- huart_t huart0;
- memset(&huart0, 0x00, sizeof(huart0));
- #if LE_BQB_RF_EN
- huart0.rx_port = HUART_TR_PB3;
- huart0.tx_port = HUART_TR_PB4;
- huart0.rxbuf_loop = 1;
- huart0.rxbuf = huart_buffer;
- huart0.rxbuf_size = 128;
- huart_init(&huart0, 9600);
- #else
- huart0.rx_port = xcfg_cb.huart_sel;
- huart0.tx_port = xcfg_cb.huart_sel;
- huart0.txisr_en = 0;
- huart0.rxbuf_loop = 1;
- huart0.rxbuf = huart_buffer;
- huart0.rxbuf_size = 128;
- huart_init(&huart0, 1500000);
- #endif
- }
- void bt_uart_exit(void)
- {
- }
- #endif
|