- 博客(6)
- 收藏
- 关注
原创 STM32F103RCT6的I2S2收,I2S3发的“伪全双工”连接WM8978
由于需要给WM8978的接收发送音频数据增加延迟,所以将音频数据先通过WM8978的ADC发送给STM32F103,再让STM32F103发送音频数据到WM8978的DAC,进而实现延迟效果,但是由于STM32F103的I2S2是半双工,所以。配置STM32F103的I2S2接收音频数据,I2S3发送音频数据,音频数据的收发采用DMA以及双缓冲。这样声音的延时时长由双缓冲数组的大小即BUFFER_SIZE 所决定,数组越大声音的延迟时长越大。DMA中断处理,设置接收完成标志位和发送完成标志位。
2024-07-12 11:18:01
141
原创 STM32生成PWM波相关
PWM的占空比与CCRx和ARR寄存器有关,ARR决定CCRx的最大值,CCRx使用 TIM_SetComparex。PWM的频率 = 时钟频率 / (自动重装值 + 1)*(预分频值 + 1)PWM的频率 = 时钟频率 / (arr + 1)*(psc + 1)STM32F103RC的TIM5_CH3_PA2生成PWM波。占空比 = CCR / (ARR + 1)PWM的周期 = 1/PWM的频率。
2024-07-03 11:16:28
130
原创 stm32断电后外设状态不正常
最近使用STM32单片机接TTS语音模块进行声音输出,在程序初始化时STM32需要读取Flash中记录的上一次的TTS语音模块状态,并将其发送给TTS语音模块,即让TTS语音模块保持上一次用户设置的状态,程序烧录进去后STM32正常向TTS语音模块发送用户信息;但是断电重启后,TTS语音模块失去用户信息,重新烧录发现Flash中存放的用户信息正常,STM32发送正常。这就造成了stm32向外设发送的初始化信息丢失,即外设未获得初始化状态。那就应该是TTS语音模块未收到STM32发送的信息。
2023-10-31 18:47:07
225
1
原创 STM32 串口接收不定长数据 HAL_UART_Receive_IT (帧头帧尾)
最近使用sw4stm32调试串口时发现串口接收不定长数据很不方便,这里是帧头帧尾的接收方式,欢迎大佬指导。这里要用串口中断接收的数据帧帧头为0xEB,帧尾为0XBE。然后串口接收处理部分全都写在的回调函数中。主函数里打开串口接收中断。这里是其中定义的变量。
2023-07-28 17:05:08
3234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人