杰里UART1发送采集mic裸数据并解析播放出来方法
杰里UART1发送采集mic裸数据并解析播放出来方法1 逻辑分析仪导出数据选择16进制2 采集配置3 芯片手册的ADC是 24bit4 数据发送发送的数据是16bit,UART是每次发送1字节(8bit), 转换成wav 16bit 要合成。5 数据经过python程序进行转换这个文件有声音了。6 关键代码实现//zk 语音kws dump数据void voice_dump_uart_init(void){const struct uart_config debug_uart_config {.baud_rate 115200,.tx_pin IO_PORTG_08,//IO_PORTA_05,//IO_PORTG_08,//IO_PORTA_00,.rx_pin -1,.tx_wait_mutex 0,//1:不支持中断调用,互斥,0:支持中断,不互斥};uart_init(1, debug_uart_config);}/** 语音识别的KWS处理*/static int smart_voice_data_handler(struct smart_voice_context *sv){if (!config_jl_audio_kws_enable) {return 0;}#if SMART_VOICE_TEST_PRINT_PCMputchar(*);return 1;#endifif (!sv-mic) {return -EINVAL;}s16 data[SMART_VOICE_KWS_FRAME_LEN / 2]; // 语音识别采集的mic buf数据int rlen voice_mic_data_read(sv-mic, data, SMART_VOICE_KWS_FRAME_LEN);if (rlen SMART_VOICE_KWS_FRAME_LEN) {return -EINVAL;}if (sv-nn_vad) {#if AUDIO_NN_VAD_ENABLEaudio_nn_vad_data_handler(sv-nn_vad, data, sizeof(data));#endif}//zk mic数据发UART1#if 1// uart_send_bytes(1, data, len);//zk 把mic 音频数据发给串口,出错 [UART]uart dma buffer must used dma_malloc()void *dma_buf dma_malloc( rlen);if (dma_buf){memcpy(dma_buf, data, rlen);uart_send_bytes(1, dma_buf, rlen);dma_free(dma_buf);}#endif