Fm发射功能在车载android系统的应用

2024-02-15 23:58

本文主要是介绍Fm发射功能在车载android系统的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

FM发射功能在车载android系统的应用

 

       很久没有写android的文章了,今晚就写一篇FM发射功能在车载电子上的应用,以及软件需要注意的地方。所谓FM发射就是充当于FM电台,频率在76-108M之间都可以,我们选用的是QN8027。这个FM发射有什么意义呢?

      比如有些主机或者后座娱乐系统播放音乐,是没有喇叭或者喇叭比较差一点,用FM发射出去,在原厂配的FM里就可以搜到这个FM发射频点,听收音机一样来接受播放的音乐,再用原厂的音响放出来,整个在车上的人都可以享受这个音乐带来的高品质享受。那么这个系统怎么实现呢?

QN8027是用IIC控制的,对初始化有一定要求,参考时钟也有讲究,跟硬件电路设计很相关。初始化参考代码如下:

 

static void QN8027_init_setting(void) {
unsigned char value = 0;
int ret = -1;
/*reset all regs to default value*/
fm_radio_write_reg(gclient, 0x0, 0x81);
msleep(20);/*sleep 20ms*/
/*-----xtal--setup----------*/
fm_radio_write_reg(gclient, 0x3, 0x30);
/*osc=12M--0x33-40k 0x32--20k 0x31--10k TX digital gain=2dB*/ 
fm_radio_write_reg(gclient, 0x4, 0x12);
/*---recalibration-----*/
fm_radio_write_reg(gclient, 0x0,0x41);
fm_radio_write_reg(gclient, 0x0,0x01);
msleep(20);/*sleep 20ms*/
/*-----default---------*/
fm_radio_write_reg(gclient,0x18,0xe4);/*SNR improve*/
fm_radio_write_reg(gclient,0x1b,0xf0);/*Increase RF power output maximum*/
fm_radio_write_reg(gclient, 0x2, 0xb9);
/*enable transmit*/
ret = fm_radio_read_reg(gclient, 0x0, &value);
value |= 0x20;
fm_radio_write_reg(gclient, 0x00, value);/*No reset. FSM runs normally*/
}


       必须特别强调的一点是在切换FM发射频点的时候,会发现在高频点的时候,也就是0x0寄存器的存储FM频率的第8-9bit有值的情况下,发射天线电压幅度会降低,后面跟着发现这种高频率点,同时需要更改两个寄存器的值,后面笔者在调频率的时候,先让fm进入standby模式,设置好新的频点的时候再让fm处于transmit的模式,这样就有效解决这个输出幅度异常的问题。参考代码如下:

static int QN8027_set_frequency(unsigned int freq) {
int CH = 0, ret = -1;
unsigned char value = 0;
if(freq < 76000 || freq > 108000) {
printk("Error,wrong freq %d KHz, [76--108MHz]\n", freq);
return -1;
}
CH = (freq - 76000)/50;
printk("QN8027_set_frequency: freq = %d KHz, CH = 0x%x\n", freq, CH);
fm_radio_read_reg(gclient, 0X0, &value);
value = (value & 0xFC) | ((CH&0X300)>>8);
value &= 0xdf;/*set standby mode*/
ret = fm_radio_write_reg(gclient, 0x00, value);/*update CH[8:9]*/
if(ret <0)
return -1;
value = CH & 0xFF;
ret = fm_radio_write_reg(gclient, 0x01, value);/*update CH[0:7]*/
fm_radio_read_reg(gclient, 0X0, &value);
value |= 0x20;/*set transmit mode*/
ret = fm_radio_write_reg(gclient, 0x00, value);
return ret;
}


这篇关于Fm发射功能在车载android系统的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/712919

相关文章

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能