FM的收音机制作比较简单,只用一个芯片就可以实现,代码也比较简单,芯片选用的RDA5807或者RDA5807M,两者稍有区别,主要在复位方面,RDA5807M少一个vio引脚,无法进行软件复位,在买芯片后厂家会提供51的库代码,我们只需要移植一下就可以使用了,在使用中,我们需要插上耳机插孔作为天线,下面贴上芯片外围和连接MCU的电路和操作的函数代码(比较简单,函数也比较易懂,只需要读懂寄存器就行),同时还需要加个功率放大器。

外围电路:

功放电路(比较随意),大部分用D类功放,功耗低

可以发现单片机就起个控制作用,使用的协议是IIC协议(给的库是模拟的),代码和电路都十分简单,下面把主函数的代码贴上:(通过按键来调节选频,可以用串口助手显示目前频段,厂家库中给的比较全)

int main(void)
{RDA5807_FM_Test();
}
void RDA5807_FM_Test(void)
{/* config the led */LED_GPIO_Config();LED1( ON );LED2( ON );/*config key*/Key_GPIO_Config();   SysTick_Init();USART1_Config();printf("\r\n rda5807m 测试实验 \r\n");if ( i2c_CheckDevice(RDA5807M_SLAVE_ADDRESS) == 0 ){printf("\r\n rda5807m 检测成功 \r\n");}else{printf("\r\n rda5807m 检测不成功 \r\n");}RDA5807_power();printf("\r\n 上电成功 \r\n");RDA_reg_data[7] = 140;  // 05H寄存器低四bit 改变音量RDA5807_write_reg();temp = RDA_reg_data[7] & 0xff; //取音量值  printf("当前音量为%d" , temp);RDA_reg_data[0] |= (1 << 1);  //SEEK UP   RDA5807_FM_seek();              //自动寻台while(1){ if( Key_Scan(GPIOC,GPIO_Pin_13) == KEY_ON  ){RDA_reg_data[0] &= ~(1 << 1);         //向下搜台RDA5807_FM_seek();              //自动寻台    /*反转*/GPIO_WriteBit(GPIOB, GPIO_Pin_0, (BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_0))));}  if( Key_Scan(GPIOA,GPIO_Pin_0) == KEY_ON  ){RDA_reg_data[0] |= (1 << 1);          //向上搜台 RDA5807_FM_seek();                 //自动寻台/*反转*/GPIO_WriteBit(GPIOF, GPIO_Pin_7, (BitAction)(1-(GPIO_ReadOutputDataBit(GPIOF, GPIO_Pin_7))));}}
}

其中的按键和定时函数不再写,比较好理解。

STM32笔记-FM收音机相关推荐

  1. 使用TEA5767和stm32制作一台数字FM收音机

    本节我们来使用stm32控制一款集成收音机芯片TEA5767,来制作一台FM收音机. TEA5767是一款低功耗立体声收音IC,接收频率76MHz-108MHz(适应日本/美国/欧洲各FM频段选择)并 ...

  2. RDA5807 FM收音机模块

    一. 简介   这是一个购自于淘宝网店的RDA5807调频接收模块,价格只有3块钱人民币.'   RDA5807是一颗调频广播单芯片接收调谐芯片.只需要外部非常少的元器件,便可以组成一个完整的调频广播 ...

  3. linux上听FM程序,安装和使用Odio在Linux上收听FM收音机的方法

    Linux平台上有一些很棒的无线电应用程序可用于在Linux上收听FM Radio(收音机),本文介绍Odio,包括安装和使用它来收听FM收音机的方法. 启用S​​nap支持和安装Odio 由于Sna ...

  4. FM收音机入门,以及Python实现FM调制解调

    FM收音机入门以及调制解调的实现 FM收音机基础知识 FM的调制和解调原理 PYthon 实现 FM调制与解调 FM调制 FM解调 FM收音机基础知识 调制分为三种:调幅(AM),调频(FM)和调相. ...

  5. gnuradio+b210实现FM收音机

    gnuradio+b210实现FM收音机 环境介绍 FM接收 1 Flow Graph 2 变量参数 FM发射 1 Flow Graph 2 变量参数 环境介绍 Name Version gnurad ...

  6. FM收音机ic FM发射模块SX6116

    原文地址::http://china.coovee.net/business1/detail/12753421.html 相关文章 1.HS6760 FM调频发射端芯片 SSOP-10封装----ht ...

  7. 基于RTL—SDR及Simulink的FM收音机仿真

    在有了一些rtl-sdr基础,并学习了一些通信系统建模与仿真原理后,便利用rtl-sdr模块在Simulink上进行FM收音机仿真. 目录 一.知识储备 SDR-Receiver模块原理 电台AM-D ...

  8. 【STM32笔记】HAL库低功耗STOP停止模式的串口唤醒(解决进入以后立马唤醒、串口唤醒和回调无法一起使用、接收数据不全的问题)

    [STM32笔记]HAL库低功耗STOP停止模式的串口唤醒(解决进入以后立马唤醒.串口唤醒和回调无法一起使用.接收数据不全的问题) [STM32笔记]低功耗模式配置及避坑汇总 前文: blog.csd ...

  9. 【STM32笔记】低功耗模式配置及避坑汇总

    [STM32笔记]低功耗模式配置及配置汇总 文章总结:(后续更新以相关文章为准) [STM32笔记]低功耗模式.WFI命令等进入不了休眠的可能原因(系统定时器SysTick一直产生中断) [STM32 ...

最新文章

  1. Maven学习总结(五)——聚合与继承
  2. ASVL_PAF_RGB24_B8G8R8 格式转换
  3. JBoss was unable to start within 50 seconds-JBoss启动超时
  4. 协议簇:TCP 解析: 基础
  5. thinkphp5 memcached 安装、调用、链接
  6. postgresql 计算时间差的秒数、天数
  7. 如何夺回Windows 10系统权限?一分钟就够
  8. Python使用twisted包进行网络通信
  9. 【求助】C# Charting控件 画散点图,当所有的点X=0时,X轴的位置画错了,代码如下...
  10. Pylot——跨平台的网站压力测试工具
  11. 简单的MQTT客户端工具
  12. 计算机测试英语词汇,英语听说测试-计算机专业英语词汇.pdf
  13. 简历制作-技术栈和项目经历如何写?
  14. 万能Ghost系统制作教程(龙帝国论坛)
  15. 计算机毕设 SpringBoot+Vue车辆租赁管理系统 网上汽车租赁系统 汽车租赁管理系统 汽车分时租赁系统Java Vue MySQL数据库 远程调试 代码讲解
  16. excel两个表格数据对比_表格技巧—Excel中如何查找相同的数据
  17. WinMerge的使用(代码相同却提示有差异)。
  18. 在文章右上角添加目录导航
  19. python-介绍泊松分布(poisson分布)
  20. (四十二)模态框的使用

热门文章

  1. 计算机操作与规范,计算机操作基础与汉字规范码拼音拼形训练
  2. 零售3.0时代,国民品牌都市丽人一次成功的变革
  3. 不给别人添麻烦是一种教养还是性格缺陷?
  4. WMS系统--移库逻辑
  5. 基于Java的亚马逊“手机”评论爬虫的情感分类分析
  6. androidspring!Android开发究竟该如何学习,薪资翻倍
  7. 消费金融及物流概念介绍
  8. 重大问题思考-2021年总结
  9. pptpd mysql_rhel6+pptpd+freeradius+mysql
  10. CSS3-文本样式、字体样式