21ic问答首页 - 有人用过C96xx收音芯片么
有人用过C96xx收音芯片么
本帖最后由 tyw 于 2025-6-24 15:30 编辑
我想知道C9650收音芯片用IIC该怎么驱动啊,如果有Demo的话就更好了,希望各路大神能帮忙解答一下
C9650 收音芯片佰泰盛世.pdf
(635.64 KB)
tyw 注
我想知道C9650收音芯片用IIC该怎么驱动啊,如果有Demo的话就更好了,希望各路大神能帮忙解答一下


tyw 注
赞0
评论
2025-06-25
赞0
麻烦大师也给我一份
评论
2025-06-24
赞0
评论
2025-06-24
赞0
评论
2025-06-24
赞0
你这个代码五颜六色的,看得人肝儿颤啊,可以用代码模块回复么
评论
2025-06-24
赞0
复制
下载
启动I2C → 发送设备地址(写) → 发送寄存器地址 → 发送数据 → 停止I2C
频率计算公式(FM频段)[size=12.573px][size=12.573px]c
复制
下载
// 示例:设置FM 101.1 MHzfloat freq = 101.1;uint16_t f_reg = (freq - 70.0) * 20 + 0.4; // 70-108MHz范围uint8_t reg_high = f_reg >> 8;uint8_t reg_low = f_reg & 0xFF;
Arduino驱动示例代码[size=12.573px][size=12.573px]cpp
复制
下载
#include <Wire.h>#define C9650_ADDR 0x40 // 根据实际地址修改// 向寄存器写数据void writeReg(uint8_t reg, uint8_t val) { Wire.beginTransmission(C9650_ADDR); Wire.write(reg); // 寄存器地址 Wire.write(val); // 数据 Wire.endTransmission();}// 初始化芯片void radioInit() { // 电源开启配置 (参考数据手册) writeReg(0x00, 0b10000001); // 开启PLL和音频输出 // 设置FM模式 writeReg(0x01, 0b00000010); // FM频段选择 // 设置音量 (最大) writeReg(0x05, 0x0F);}// 设置FM频率void setFMFrequency(float freq) { if (freq < 70.0) freq = 70.0; if (freq > 108.0) freq = 108.0; uint16_t f_reg = (uint16_t)((freq - 70.0) * 20 + 0.4); writeReg(0x02, f_reg >> 8); // 高8位 writeReg(0x03, f_reg & 0xFF); // 低8位 // 触发调谐 writeReg(0x04, 0b00010000); // SEEK=1开始搜索 delay(100); writeReg(0x04, 0); // 清除SEEK}void setup() { Wire.begin(); radioInit(); setFMFrequency(101.1); // 设置初始频率}void loop() { // 可添加按键扫描/频率切换逻辑}
评论
2025-06-24
您需要登录后才可以回复 登录 | 注册