⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 si47xx_demo.c

📁 si47xx FM 收音机的程序,通过单片机来控制搜台灯功能
💻 C
字号:
/**************************************

Si47XX RX and TX demo example

***************************************/ 

#include "Si47xx_drv.h"


/**************************************

Si47XX_TX_DEMO()

***************************************/

T_ERROR_OP Si47XX_TX_DEMO(void)
{
	unsigned char Si47XX_REV_data[9];
	
	if(Si47XX_Power_Up(FM_TRNSMITTER) != OK) return ERROR;
	
	if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR;	//read REV data here if need {0x80,0x0A,0x30,0x43,0x00,0x00,0x30,0x42,0x41} for Si4710 firmware
	
	//Si47XX_Set_Property_REFCLK_FREQ();				//default is for 32KHz RCLK
	//Si47XX_Set_Property_RCLK_PRESCALE();				//default is for 32KHz RCLK
	if(Si47XX_Set_Property_INPUT_LEVEL() != OK) return ERROR;	//set input level
	if(Si47XX_Set_Property_TX_PREEMPHASIS() != OK) return ERROR;	//set tx preemphasis
	if(Si47XX_Set_Property_TX_ACOMP_ENABLE() != OK) return ERROR;	//set tx audio dynamic control enable
	//You also can set other Property here 
	if(Si47XX_Set_TX_Power(115) != OK) return ERROR;		//set tx power to 115dBuV
	if(Si47XX_Set_TX_Frequency(10000) != OK) return ERROR;		//set tx freq to 100.00MHz
	
	return OK;
}

/**************************************

Si47XX_TX_RPS_DEMO()

***************************************/

T_ERROR_OP Si47XX_TX_RPS_DEMO(void)
{
	unsigned char Si47XX_REV_data[9];
	unsigned short Min_RNL_Channel;
	
	if(Si47XX_Power_Up(FM_TRNSMITTER) != OK) return ERROR;
	
	if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR;	//read REV data here if need {0x80,0x0A,0x30,0x43,0x00,0x00,0x30,0x42,0x41} for Si4710 firmware
	
	//Si47XX_Set_Property_REFCLK_FREQ();				//default is for 32KHz RCLK
	//Si47XX_Set_Property_RCLK_PRESCALE();				//default is for 32KHz RCLK
	if(Si47XX_Set_Property_INPUT_LEVEL() != OK) return ERROR;	//set input level
	if(Si47XX_Set_Property_TX_PREEMPHASIS() != OK) return ERROR;	//set tx preemphasis
	if(Si47XX_Set_Property_TX_ACOMP_ENABLE() != OK) return ERROR;	//set tx audio dynamic control enable
	//You also can set other Property here 
	if(Si47XX_Min_RNL_Channel_RPS(8750,10800,&Min_RNL_Channel) != OK) return ERROR;		//find the min RNL channel
	if(Si47XX_Set_TX_Power(115) != OK) return ERROR;		//set tx power to 115dBuV
	if(Si47XX_Set_TX_Frequency(Min_RNL_Channel) != OK) return ERROR;		//set tx freq to min RNL channel
	
	return OK;
}
/**************************************

Si47XX_FM_Tune_DEMO()

***************************************/

T_ERROR_OP Si47XX_FM_Tune_DEMO(void)
{
	unsigned char Si47XX_REV_data[9];
	
	if(Si47XX_Power_Up(FM_RECEIVER) != OK) return ERROR;
	
	if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR;	//read REV data here if need {0x80,0x14,0x31,0x42,0x00,0x00,0x31,0x42,0x41} for Si4720/1B firmware
	
	//Si47XX_Set_Property_REFCLK_FREQ();				//default is for 32KHz RCLK
	//Si47XX_Set_Property_RCLK_PRESCALE();				//default is for 32KHz RCLK
	if(Si47XX_Set_Property_FM_DEEMPHASIS() != OK) return ERROR;	//set deemphasis
	//You also can set other Property here 
	if(Si47XX_Set_FM_Frequency(10230) != OK) return ERROR;  	//set to 102.3MHz
	
	return OK;
}

/**************************************

Si47XX_FM_Seek_DEMO()

***************************************/

T_ERROR_OP Si47XX_FM_Seek_DEMO(void)
{
	unsigned char Si47XX_REV_data[9];
	unsigned char SeekFail; 
	unsigned short Si47XX_fm_seek_channel_freq;
	
	if(Si47XX_Power_Up(FM_RECEIVER) != OK) return ERROR;
	
	if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR;	//read REV data here if need {0x80,0x14,0x31,0x42,0x00,0x00,0x31,0x42,0x41} for Si4720/1B firmware
	
	//Si47XX_Set_Property_REFCLK_FREQ();				//default is for 32KHz RCLK
	//Si47XX_Set_Property_RCLK_PRESCALE();				//default is for 32KHz RCLK
	//Si47XX_Set_Property_Seek_Space(); 				//default is for seek space 100KHz
	if(Si47XX_Set_Property_FM_DEEMPHASIS() != OK) return ERROR;	//set deemphasis
	if(Si47XX_Set_Property_FM_SNR_Threshold() != OK) return ERROR;	//set seek threshold SNR
 	if(Si47XX_Set_Property_FM_RSSI_Threshold() != OK) return ERROR;	//set seek threshold RSSI
	//You also can set other Property here 
	if(Si47XX_FM_Seek(SEEKUP_WRAP, &Si47XX_fm_seek_channel_freq, &SeekFail) != OK) return ERROR;  //store the channel freq in Si47XX_fm_seek_channel_freq after one seek
	
	return OK;
}

/**************************************

Si47XX_AM_Tune_DEMO()

***************************************/

T_ERROR_OP Si47XX_AM_Tune_DEMO(void)
{
	unsigned char Si47XX_REV_data[9];
	
	if(Si47XX_Power_Up(AM_RECEIVER) != OK) return ERROR;
		
	if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR;	//read REV data here if need {0x80,0x1E,0x31,0x42,0x00,0x00,0x31,0x42,0x41} for Si4730/1B firmware
	
	//Si47XX_Set_Property_REFCLK_FREQ();	//default is for 32KHz RCLK
	//Si47XX_Set_Property_RCLK_PRESCALE();	//default is for 32KHz RCLK
	if(Si47XX_Set_Property_AM_DEEMPHASIS() != OK) return ERROR;
	//You also can set other Property here 
	if(Si47XX_Set_AM_Frequency(1000) != OK) return ERROR;  //set to 1000KHz
	
	return OK;
}

/**************************************

Si47XX_AM_Seek_DEMO()

***************************************/

T_ERROR_OP Si47XX_AM_Seek_DEMO(void)
{
	unsigned char Si47XX_REV_data[9];
	unsigned char SeekFail; 
	unsigned short Si47XX_am_seek_channel_freq;
	
	if(Si47XX_Power_Up(AM_RECEIVER) != OK) return ERROR;
		
  if(Si47XX_Get_Rev(&Si47XX_REV_data[0], 9) != OK) return ERROR;	//read REV data here if need {0x80,0x1E,0x31,0x42,0x00,0x00,0x31,0x42,0x41} for Si4730/1B firmware
	
	//Si47XX_Set_Property_REFCLK_FREQ();	//default is for 32KHz RCLK
	//Si47XX_Set_Property_RCLK_PRESCALE();	//default is for 32KHz RCLK
	if(Si47XX_Set_Property_AM_Seek_Space() != OK) return ERROR;     //set seek space to 9KHz
	if(Si47XX_Set_Property_AM_DEEMPHASIS() != OK) return ERROR;     //set deemphasis 
	//if(Si47XX_Set_Property_AM_SNR_Threshold() != OK) return ERROR;	  //set seek threshold SNR,default is 5dB
 	//if(Si47XX_Set_Property_AM_RSSI_Threshold() != OK) return ERROR;	//set seek threshold RSSI, default is 25dBuV
	//You also can set other Property here 
	if(Si47XX_AM_Seek(SEEKUP_WRAP, &Si47XX_am_seek_channel_freq, &SeekFail) != OK) return ERROR;
	
	return OK;
}














⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -