d78429eb8e
问题: 在使用硬件 I2C 驱动进行音频模块 WM8978 配置时,发现连续 rt_i2c_transfer 进行 I2C 传输时发现,连续多次调用 rt_i2c_transfer 会出现丢包现象;溯源发现是每次使用 rt_i2c_transfer 传输2字节,传输频率过高导致底层 HAL_I2C_Master_Seq_Transmit_DMA 报错 HAL_BUSY; 现象: rt_completion_wait超时等待完成之后,I2C仍处于HAL_I2C_STATE_BUSY_TX状态,且后续第二次运行至HAL_I2C_Master_Seq_Transmit_DMA时会直接返回HAL_BUSY,从而直接 goto out; 退出而不会再次进行超时等待; * drv_hard_i2c.c: 修复325行缺失'}'语法错误;更改HAL_I2C_xx_Transimt_xx调用中目标设备地址值;i2c_hard_config.h: 添加STM32F系列芯片xx_DMA_CONFIG宏定义; * 回溯I2C设备地址传参处(msg->addr<<1)修改; * fixup: 增加硬件I2C传输延时,解决连续传输导致HAL_BUSY状态;
RT-THREAD bsp company list
- Simulator
- STM32
- stm32 series
- NXP
- Renesas
- renesas series
- rx series
- upd70f3454
- m16c62p
- Nordic
- nrf5x series
- raspberry
- raspberry-pi series
- raspberry-pico
- TI
- Samsung
- Synopsys
- synopsys series
- Espressif
- MAXIM
- maxim series
- Microchip
- Infineon
- SiFive
- ADI
- Silicon Labs
- efm32 series
- Ambiq Micro
- Xilinx
- Altera
- Nuclei
- 灵动微MM32
- 兆易创新GD32
- gd32 series
- Realtek
- 国民科技N32
- 小华HC32
- 全志Allwinner
- allwinner series
- allwinner_tina
- 雅特力AT32
- at32 series
- rockchip
- rockchip serise
- 先楫
- hpmicro series
- 东软EastSoft
- essemi series
- 嘉楠canaan
- 沁恒WCH
- wch series
- 联德盛winnermicro
- 泰为
- Nuvoton
- nuvoton series
- 飞腾
- 合宙
- airm2m series
- ACM32 航芯
- acm32 series
- APM32 极海
- apm32 series
- 紫芯
- 博流
- bouffalo_lab series
- 航顺
- hk32 series
- 辉芒微
- ft32 series
- 华芯微特
- synwit series
- 龙芯
- loongson series
- 中科蓝讯
- bluetrum series
- 易兆微
- yichip series
- 杭州万高科技
- Vango series
- 平头哥
- 复旦微
- 无锡纳瓦特Navota
- 杭州中天微
- 中国航天科技集团
- 东南芯
- 京微雅格
- 好钜润 TIKY