對講機芯片BK4811驅動程序,親測可用
單片機源程序如下:
- #include "BK4811.h"
- #include "delay.h"
- u8 chan_num;
- u16 freq_h,freq_l;
- UINT16 g_reg0_15_buff[16];
- CODE UINT16 reg0_18[]=
- {
- 0x9100,
- 0x0000,
- 0xB525,//2,updated
- 0x08CC,//3,updated
- 0x021D,//4,updated
- 0xB888,//5,updated
- 0x07E7,//6,updated
- 0xD051,//7,NOT read
- 0xFF40,//8,NOT read
- 0xA1FF,//9,updated
- 0x1C40,//10,updated
- 0x8130,//11,updated
- 0x0000,//12,NOT read
- 0x8030,//13,NOT read
- 0x08C0,//14,NOT read
- 0x0000,//15,NOT read
- 0x0000,
- 0x8800,
- 0x4068
- };
- CODE UINT16 ramp_table[]=
- {
- 0x0000,
- 0x0420,
- 0x083F,
- 0x0C5E,
- 0x107C,
- 0x149A,
- 0x18B7,
- 0x1CD4,
- 0x20F0,
- 0x250B,
- 0x2927,
- 0x2D41,
- 0x315C,
- 0x3575,
- 0x398F,
- 0x3DA7,
- 0x41C0,
- 0x45D7,
- 0x49EF,
- 0x4E05,
- 0x521B,
- 0x5631,
- 0x5A46,
- 0x5E5B,
- 0x626F,
- 0x6683,
- 0x6A96,
- 0x6EA9,
- 0x72BB,
- 0x76CD,
- 0x7ADE,
- 0x7EEF,
- 0x82FF,
- 0x870F,
- 0x8B1E,
- 0x8F2D,
- 0x933B,
- 0x9749,
- 0x9B56,
- 0x9F63,
- 0xA36F,
- 0xA77B,
- 0xAB86,
- 0xAF91,
- 0xB39B,
- 0xB7A5,
- 0xBBAE,
- 0xBFB7,
- 0xC3BF,
- 0xC7C7,
- 0xCBCE,
- 0xCFD5,
- 0xD3DB,
- 0xD7E1,
- 0xDBE6,
- 0xDFEB,
- 0xE3EF,
- 0xE7F3,
- 0xEBF6,
- 0xEFF9,
- 0xF3FB,
- 0xF7FD,
- 0xFBFE,
- 0xFFFF
- };
- /***************************
- return:
- default: 145
- ***************************/
- u16 Read_BK4811_DeviceID(void)
- {
- u16 read_Value;
- read_Value=BK_Read_Reg(0x00);
- return ((read_Value&0xff00)>>8);
- }
- /***************************
- return:
- default: 66
- ***************************/
- u16 Read_BK4811_ChipID(void)
- {
- u16 read_Value;
- read_Value=BK_Read_Reg(0x01);
- return (read_Value&0x00ff);
- }
- /***************************
- return:
- 1:25khz
- 0:12.5khz
- ***************************/
- u8 Read_BK4811_Channel(void)
- {
- u16 read_Value;
- read_Value=BK_Read_Reg(0x01);
- if(read_Value&0x8000)
- return 1;
- else
- return 0;
- }
- /***************************
- channel:
- 1:25khz
- 0:12.5khz
- ***************************/
- void Set_BK4811_Channel(u8 channel)
- {
- u16 read_Value;
-
- if(0==channel)
- {
- read_Value=BK_Read_Reg(0x01);
- read_Value&=0x7fff;
- BK_Write_Reg(0x01,read_Value);
- }
- else if(1==channel)
- {
- read_Value=BK_Read_Reg(0x01);
- read_Value|=0x8000;
- BK_Write_Reg(0x01,read_Value);
- }
- }
- /***************************
- return:
- 1:2.4kbps
- 0:1.2kbps
- ***************************/
- u8 Read_BK4811_FSK_AIR_DataRate(void)
- {
- u16 read_Value;
- read_Value=BK_Read_Reg(0x01);
- if(read_Value&0x4000)
- return 1;
- else
- return 0;
- }
- /***************************
- return:
- 1:2.4kbps
- 0:1.2kbps
- ***************************/
- void Set_BK4811_FSK_AIR_DataRate(u8 data_rate)
- {
- u16 read_Value;
-
- if(0==data_rate)
- {
- read_Value=BK_Read_Reg(0x01);
- read_Value&=0xBFFF;
- BK_Write_Reg(0x01,read_Value);
- }
- else if(1==data_rate)
- {
- read_Value=BK_Read_Reg(0x01);
- read_Value|=0x4000;
- BK_Write_Reg(0x01,read_Value);
- }
- }
- /*************************************************
- Description: ramp table initilaize
- *************************************************/
- void BK4811_Ramp_Table_Init(void)
- {
- UINT8 i;
- for(i=0;i<64;i++)
- BK_Write_Reg(42,ramp_table[i]);
- }
- /*************************************************
- Description: analog register initilaize
- *************************************************/
- void BK4811_Analog_Init(void)
- {
- UINT8 i;
- for(i=1;i<=15;i++)
- {
- g_reg0_15_buff[i]=reg0_18[i];
- BK_Write_Reg(i, g_reg0_15_buff[i]);
- }
- BK4811_Ramp_Table_Init();
- BK_Write_Reg(16, 0x3684);//0x3684:IF=88K,0x4B80: IF=121.875kHz, 0x05CF: IF=9.375kHz
- BK_Write_Reg(17, 0x8800);//updated 4812
- BK_Write_Reg(18, 0x406c);//updated 4812
- BK_Write_Reg(19, 0x8000);//updated 4812
- BK_Write_Reg(20, 0x0000);//updated
- BK_Write_Reg(21, 0x0000);
- BK_Write_Reg(22, 0x3200);//updated
- BK_Write_Reg(23, 0x2000);//updated
- BK_Write_Reg(24, 0x086c);
- BK_Write_Reg(25, 0x13ba);
- BK_Write_Reg(26, 0x0000);
- BK_Write_Reg(27, 0x0000);
- BK_Write_Reg(28, 0x0000);
- BK_Write_Reg(29, 0x0000);
- BK_Write_Reg(30, 0x0000);
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
BK4811_FM.7z
(220.31 KB, 下載次數: 73)
2019-12-4 15:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|