[STM32F0] 让 Si4703 收音机模块在 STM32F030K6T6 上工作

[复制链接]
720|11
Hitomi22 发表于 2025-10-18 22:38 | 显示全部楼层 |阅读模式
我正在 STM32CubeIDE 上开发STM32F030K6T6 与 Si4703 。我找到了一个示例在 https://github.com/LonelyWolf/stm32/tree/master/Si4703,但不能在 STM32CubeIDE 上跑起来。

那么,有没有可以在 STM32CubeIDE 上用的示例?

公羊子丹 发表于 2025-10-30 07:20 | 显示全部楼层
我之前在F030上搞过Si4703,主要问题是I2C初始化方式不同,那些老示例多用寄存器写法,你要改成HAL库的I2C读写函数就能跑。
周半梅 发表于 2025-10-30 07:21 | 显示全部楼层
如果你用的是ST的Motor Control SDK,在FOC算法里HSO模块是和PLL配合的,前者提供磁链估计,后者做角速度滤波。
帛灿灿 发表于 2025-10-30 07:24 | 显示全部楼层
我怀疑GitHub那个示例里用的系统时钟配置不兼容F0系列,改成内部HSI或者8MHz外部晶振后应该就能编译通过。
童雨竹 发表于 2025-10-30 07:25 | 显示全部楼层
其实这个模块挺挑复位时序的,RST脚要在VCC稳定后再拉高,否则I2C通信会不响应,很多人卡在这。
万图 发表于 2025-10-30 07:26 | 显示全部楼层
我在CubeIDE下直接建了个新工程,把初始化和寄存器配置那部分从示例里抄过来改成HAL写法,就能正常调频收台了。
Wordsworth 发表于 2025-10-30 07:27 | 显示全部楼层
你可以先试试I2C裸读写,看能不能读取寄存器0x00~0x02的版本号数据,读到说明总线通了。
Bblythe 发表于 2025-10-30 07:28 | 显示全部楼层
我建议调试时加点延时,特别是PowerUp命令后要延迟110ms左右,模块内部需要时间锁频。
Pulitzer 发表于 2025-10-30 07:29 | 显示全部楼层
如果你要听FM输出,别忘了Si4703的AUDIO输出不是数字的,要接模拟耳机口或者放大芯片才能出声音。
Uriah 发表于 2025-10-30 07:30 | 显示全部楼层
其实ST官方没出专门例程,但你可以参考他们的I2C EEPROM例程,逻辑差不多,只是寄存器地址不同。
Clyde011 发表于 2025-10-30 07:31 | 显示全部楼层
我遇到过一次类似问题,后来发现是CubeIDE工程的优化级太高,把延时函数优化掉了,改成-O1就恢复正常了。
yiy 发表于 2025-11-2 14:54 | 显示全部楼层
建议调试时加点延时
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

70

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部