久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5982|回復: 7
打印 上一主題 下一主題
收起左側

對講機BK4811驅動程序 STM32

  [復制鏈接]
跳轉到指定樓層
樓主
ID:60158 發表于 2019-12-4 09:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
對講機芯片BK4811驅動程序,親測可用

單片機源程序如下:
  1. #include "BK4811.h"
  2. #include "delay.h"

  3. u8 chan_num;
  4. u16 freq_h,freq_l;
  5. UINT16 g_reg0_15_buff[16];
  6. CODE UINT16 reg0_18[]=
  7. {
  8. 0x9100,
  9. 0x0000,
  10. 0xB525,//2,updated
  11. 0x08CC,//3,updated
  12. 0x021D,//4,updated
  13. 0xB888,//5,updated
  14. 0x07E7,//6,updated
  15. 0xD051,//7,NOT read
  16. 0xFF40,//8,NOT read
  17. 0xA1FF,//9,updated
  18. 0x1C40,//10,updated
  19. 0x8130,//11,updated
  20. 0x0000,//12,NOT read
  21. 0x8030,//13,NOT read
  22. 0x08C0,//14,NOT read
  23. 0x0000,//15,NOT read
  24. 0x0000,
  25. 0x8800,
  26. 0x4068
  27. };



  28. CODE UINT16 ramp_table[]=
  29. {
  30. 0x0000,
  31. 0x0420,
  32. 0x083F,
  33. 0x0C5E,
  34. 0x107C,
  35. 0x149A,
  36. 0x18B7,
  37. 0x1CD4,
  38. 0x20F0,
  39. 0x250B,
  40. 0x2927,
  41. 0x2D41,
  42. 0x315C,
  43. 0x3575,
  44. 0x398F,
  45. 0x3DA7,
  46. 0x41C0,
  47. 0x45D7,
  48. 0x49EF,
  49. 0x4E05,
  50. 0x521B,
  51. 0x5631,
  52. 0x5A46,
  53. 0x5E5B,
  54. 0x626F,
  55. 0x6683,
  56. 0x6A96,
  57. 0x6EA9,
  58. 0x72BB,
  59. 0x76CD,
  60. 0x7ADE,
  61. 0x7EEF,
  62. 0x82FF,
  63. 0x870F,
  64. 0x8B1E,
  65. 0x8F2D,
  66. 0x933B,
  67. 0x9749,
  68. 0x9B56,
  69. 0x9F63,
  70. 0xA36F,
  71. 0xA77B,
  72. 0xAB86,
  73. 0xAF91,
  74. 0xB39B,
  75. 0xB7A5,
  76. 0xBBAE,
  77. 0xBFB7,
  78. 0xC3BF,
  79. 0xC7C7,
  80. 0xCBCE,
  81. 0xCFD5,
  82. 0xD3DB,
  83. 0xD7E1,
  84. 0xDBE6,
  85. 0xDFEB,
  86. 0xE3EF,
  87. 0xE7F3,
  88. 0xEBF6,
  89. 0xEFF9,
  90. 0xF3FB,
  91. 0xF7FD,
  92. 0xFBFE,
  93. 0xFFFF
  94. };
  95. /***************************
  96. return:
  97. default: 145
  98. ***************************/
  99. u16 Read_BK4811_DeviceID(void)
  100. {
  101.         u16 read_Value;
  102.         read_Value=BK_Read_Reg(0x00);
  103.         return ((read_Value&0xff00)>>8);
  104. }

  105. /***************************
  106. return:
  107. default: 66
  108. ***************************/
  109. u16 Read_BK4811_ChipID(void)
  110. {
  111.         u16 read_Value;
  112.         read_Value=BK_Read_Reg(0x01);
  113.         return (read_Value&0x00ff);
  114. }

  115. /***************************
  116. return:
  117. 1:25khz
  118. 0:12.5khz
  119. ***************************/
  120. u8 Read_BK4811_Channel(void)
  121. {
  122.         u16 read_Value;
  123.         read_Value=BK_Read_Reg(0x01);
  124.         if(read_Value&0x8000)
  125.                 return 1;
  126.         else
  127.                 return 0;
  128. }
  129. /***************************
  130. channel:
  131. 1:25khz
  132. 0:12.5khz
  133. ***************************/
  134. void Set_BK4811_Channel(u8 channel)
  135. {
  136.         u16 read_Value;
  137.        
  138.         if(0==channel)
  139.         {
  140.                 read_Value=BK_Read_Reg(0x01);
  141.                 read_Value&=0x7fff;
  142.                 BK_Write_Reg(0x01,read_Value);
  143.         }
  144.         else if(1==channel)
  145.         {
  146.                 read_Value=BK_Read_Reg(0x01);
  147.                 read_Value|=0x8000;
  148.                 BK_Write_Reg(0x01,read_Value);
  149.         }
  150. }

  151. /***************************
  152. return:
  153. 1:2.4kbps
  154. 0:1.2kbps
  155. ***************************/
  156. u8 Read_BK4811_FSK_AIR_DataRate(void)
  157. {       
  158.         u16 read_Value;
  159.         read_Value=BK_Read_Reg(0x01);
  160.         if(read_Value&0x4000)
  161.                 return 1;
  162.         else
  163.                 return 0;
  164. }

  165. /***************************
  166. return:
  167. 1:2.4kbps
  168. 0:1.2kbps
  169. ***************************/
  170. void Set_BK4811_FSK_AIR_DataRate(u8 data_rate)
  171. {       
  172.         u16 read_Value;
  173.        
  174.         if(0==data_rate)
  175.         {
  176.                 read_Value=BK_Read_Reg(0x01);
  177.                 read_Value&=0xBFFF;
  178.                 BK_Write_Reg(0x01,read_Value);
  179.         }
  180.         else if(1==data_rate)
  181.         {
  182.                 read_Value=BK_Read_Reg(0x01);
  183.                 read_Value|=0x4000;
  184.                 BK_Write_Reg(0x01,read_Value);
  185.         }
  186. }
  187. /*************************************************
  188.   Description:    ramp table initilaize
  189. *************************************************/
  190. void BK4811_Ramp_Table_Init(void)
  191. {
  192.         UINT8 i;
  193.         for(i=0;i<64;i++)
  194.                 BK_Write_Reg(42,ramp_table[i]);
  195. }
  196. /*************************************************
  197.   Description:    analog register initilaize
  198. *************************************************/
  199. void BK4811_Analog_Init(void)
  200. {
  201.         UINT8 i;
  202.         for(i=1;i<=15;i++)
  203.         {
  204.                 g_reg0_15_buff[i]=reg0_18[i];
  205.                 BK_Write_Reg(i, g_reg0_15_buff[i]);
  206.         }

  207.         BK4811_Ramp_Table_Init();

  208.         BK_Write_Reg(16, 0x3684);//0x3684:IF=88K,0x4B80: IF=121.875kHz, 0x05CF: IF=9.375kHz
  209.         BK_Write_Reg(17, 0x8800);//updated 4812
  210.         BK_Write_Reg(18, 0x406c);//updated 4812
  211.         BK_Write_Reg(19, 0x8000);//updated 4812
  212.         BK_Write_Reg(20, 0x0000);//updated

  213.         BK_Write_Reg(21, 0x0000);
  214.         BK_Write_Reg(22, 0x3200);//updated
  215.         BK_Write_Reg(23, 0x2000);//updated
  216.         BK_Write_Reg(24, 0x086c);
  217.         BK_Write_Reg(25, 0x13ba);
  218.         BK_Write_Reg(26, 0x0000);
  219.         BK_Write_Reg(27, 0x0000);
  220.         BK_Write_Reg(28, 0x0000);
  221.         BK_Write_Reg(29, 0x0000);
  222.         BK_Write_Reg(30, 0x0000);
  223. ……………………

  224. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
BK4811_FM.7z (220.31 KB, 下載次數: 73)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2019-12-4 15:57 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

板凳
ID:429522 發表于 2020-6-17 01:05 | 只看該作者
非常感謝,對我很有用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回復

使用道具 舉報

地板
ID:72990 發表于 2020-11-23 12:18 | 只看該作者
void BK_Set_Freq(UINT8 dir,  double frequency)  //frequencyP 這個參數為什么沒有使用
{
        UINT16         val = 0;
        if(DIR_TX==dir)
        {
                BK_RampDown_Enable();
        }
        if((chan_num == 1)||(chan_num == 2))  //chan_num 這個變量沒看到賦值,怎么做判斷
        {
                val = BK_Read_Reg(126);
                val |= 0x0010;
                BK_Write_Reg(126, val);
                if(chan_num == 1)
                        BK_Write_Reg(127, 0x4719);
                else
                        BK_Write_Reg(127, 0x1095);
        }
        if((chan_num == 3)||(chan_num == 4)||(chan_num == 5))
        {
                val = BK_Read_Reg(126);
                val &= 0xffef;
                BK_Write_Reg(126, val);
                if(chan_num == 3)
                        BK_Write_Reg(127, 0xDA11);

                else if(chan_num == 4)
                        BK_Write_Reg(127, 0xA38D);

                        else
                        BK_Write_Reg(127, 0x6D08);       

        }
       
        BK_Write_Reg(113, freq_h);//freq_h這個也沒見給賦值
        BK_Write_Reg(114, freq_l);//freq_l這個也沒見給賦值

        BK_SPI_Trigger();

        g_reg0_15_buff[3]&=0x1FFF;
        if(chan_num == 1)
        {       
                g_reg0_15_buff[3]|=0x8000;               
               
        }
        else if(chan_num == 2)
        {
                g_reg0_15_buff[3]|=0x6000;       
        }
        else if(chan_num == 3)
        {
                g_reg0_15_buff[3]|=0x4000;       
        }
        else if(chan_num == 4)
        {
                g_reg0_15_buff[3]|=0x2000;       
        }
        else if(chan_num == 5)
        {
                g_reg0_15_buff[3]|=0x0000;       
        }
       
        BK_Write_Reg(3, g_reg0_15_buff[3]);

        delay_ms(15);

        if(DIR_TX==dir)
        {
                BK_RampUp_Enable();
        }
}

求解 謝謝
回復

使用道具 舉報

5#
ID:758755 發表于 2021-3-2 12:10 來自手機 | 只看該作者
157442843 發表于 2020-11-23 12:18
void BK_Set_Freq(UINT8 dir,  double frequency)  //frequencyP 這個參數為什么沒有使用
{
        UINT16         val ...

請問怎樣取消發射時限??我們需要開機就一直發射!
回復

使用道具 舉報

6#
ID:622059 發表于 2021-3-11 21:48 | 只看該作者
小白一枚,想問問附件下載后那個文件是源碼啊
回復

使用道具 舉報

7#
ID:901572 發表于 2024-9-11 15:08 | 只看該作者
有用,感謝大佬分享
回復

使用道具 舉報

8#
ID:606120 發表于 2025-3-5 20:55 | 只看該作者
小白一枚
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国内精品久久久久久久影视简单 | 呦呦在线视频 | 久久精品久久精品 | 久久中文字幕av | 久草综合在线 | 精品美女久久久久久免费 | 午夜成人免费视频 | 啪啪精品 | 精品av | www.日韩| 久久精品国产一区二区电影 | 福利精品在线观看 | 国产一区二区成人 | 99精品久久久 | 日韩综合网 | 久久精品小视频 | 午夜看看| 国产精品免费在线 | 国产成人精品免费 | 中文字幕 视频一区 | 久久久一区二区 | 久久久久一区二区三区 | 国产精品久久久久久久久久久久冷 | 91免费观看视频 | 久久免费视频在线 | 请别相信他免费喜剧电影在线观看 | 欧美日韩中文字幕在线播放 | 精品在线免费观看视频 | 一级黄在线观看 | 欧美视频xxx | 毛色毛片免费看 | 国产精品久久二区 | 一区二区三区四区免费观看 | 欧美一区二区三区大片 | 欧美另类日韩 | 国产色网| 亚洲福利在线观看 | 毛片a级毛片免费播放100 | 天天综合久久 | 精品久久久久国产免费第一页 | 中文字幕一二三区 |