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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

QN8027資料與源碼匯總整理(調頻發射接收芯片)

  [復制鏈接]
跳轉到指定樓層
樓主




文件列表:
QN8027資料匯總整理。
QN8025_27軟件硬件開發疑難解答FAQ V0 12.pdf
qn8027_m1.rar
QN8027_SANB Hardware Application Note_V_0 25_102209.pdf
QN8027_SANC_Datasheet_v1.1_041810.pdf
QN8027常見問題解答2011.pdf
正確的QN8027初始化程序20090723.pdf

調頻發射接收芯片QN8027的單片機源程序如下:
  1. #include "qndriver.h"

  2. extern UINT8 QND_ReadReg(UINT8 adr);
  3. extern UINT8 QND_WriteReg(UINT8 adr, UINT8 value);


  4. #define R_TXRX_MASK    0x20
  5. UINT8   qnd_Crystal = QND_CRYSTAL_DEFAULT;
  6. UINT8   qnd_PrevMode;
  7. UINT8   qnd_Country  = COUNTRY_CHINA ;
  8. UINT16  qnd_CH_START = 7600;
  9. UINT16  qnd_CH_STOP  = 10800;
  10. UINT8   qnd_CH_STEP  = 1;




  11. /**********************************************************************
  12. void QNF_SetRegBit(UINT8 reg, UINT8 bitMask, UINT8 data_val)
  13. **********************************************************************
  14. Description: set register specified bit

  15. Parameters:
  16.     reg:        register that will be set
  17.     bitMask:    mask specified bit of register
  18.     data_val:    data will be set for specified bit
  19. Return Value:
  20.     None
  21. **********************************************************************/
  22. void QNF_SetRegBit(UINT8 reg, UINT8 bitMask, UINT8 data_val)
  23. {
  24.     UINT8 temp;
  25.     temp = QND_ReadReg(reg);
  26.     temp &= (UINT8)(~bitMask);
  27.     temp |= data_val & bitMask;
  28. //    temp |= data_val;
  29.     QND_WriteReg(reg, temp);
  30. }

  31. /**********************************************************************
  32. UINT16 QNF_GetCh()
  33. **********************************************************************
  34. Description: get current channel frequency

  35. Parameters:
  36.     None
  37. Return Value:
  38.     channel frequency
  39. **********************************************************************/
  40. UINT16 QNF_GetCh()
  41. {
  42.     UINT8 tCh;
  43.     UINT8  tStep;
  44.     UINT16 ch = 0;
  45.     // set to reg: CH_STEP
  46.     tStep = QND_ReadReg(CH_STEP);
  47.     tStep &= CH_CH;
  48.     ch  =  tStep ;
  49.     tCh= QND_ReadReg(CH);   
  50.     ch = (ch<<8)+tCh;
  51.     return CHREG2FREQ(ch);
  52. }

  53. /**********************************************************************
  54. UINT8 QNF_SetCh(UINT16 freq)
  55. **********************************************************************
  56. Description: set channel frequency

  57. Parameters:
  58.     freq:  channel frequency to be set
  59. Return Value:
  60.     1: success
  61. **********************************************************************/
  62. UINT8 QNF_SetCh(UINT16 freq)
  63. {
  64.     // calculate ch parameter used for register setting
  65.     UINT8 tStep;
  66.     UINT8 tCh;
  67.     UINT16 f;
  68.         f = FREQ2CHREG(freq);
  69.         // set to reg: CH
  70.         tCh = (UINT8) f;
  71.         QND_WriteReg(CH, tCh);
  72.         // set to reg: CH_STEP
  73.         tStep = QND_ReadReg(CH_STEP);
  74.         tStep &= ~CH_CH;
  75.         tStep |= ((UINT8) (f >> 8) & CH_CH);
  76.         QND_WriteReg(CH_STEP, tStep);

  77.     return 1;
  78. }

  79. /**********************************************************************
  80. void QNF_SetAudioMono(UINT8 modemask, UINT8 mode)
  81. **********************************************************************
  82. Description:    Set audio output to mono.

  83. Parameters:
  84.   modemask: mask register specified bit
  85.   mode
  86.         QND_RX_AUDIO_MONO:    RX audio to mono
  87.         QND_RX_AUDIO_STEREO:  RX audio to stereo   
  88.         QND_TX_AUDIO_MONO:    TX audio to mono
  89.         QND_TX_AUDIO_STEREO:  TX audio to stereo
  90. Return Value:
  91.   None
  92. **********************************************************************/
  93. void QNF_SetAudioMono(UINT8 modemask, UINT8 mode)
  94. {
  95.     QNF_SetRegBit(SYSTEM2,modemask, mode);
  96. }

  97. /**********************************************************************
  98. int QND_Delay()
  99. **********************************************************************
  100. Description: Delay for some ms, to be customized according to user
  101.              application platform

  102. Parameters:
  103.         ms: ms counts
  104. Return Value:
  105.         None
  106.             
  107. **********************************************************************/
  108. void QND_Delay(UINT16 ms)
  109. {
  110.     UINT16 i,k;
  111.     for(i=0; i<3000;i++)
  112.     {   
  113.         for(k=0; k<ms; k++)
  114.         {

  115.         }
  116.     }
  117. }

  118. /**********************************************************************
  119. void QN_ChipInitialization()
  120. **********************************************************************
  121. Description: chip first step initialization, called only by QND_Init()

  122. Parameters:
  123.     None
  124. Return Value:
  125.     None
  126. **********************************************************************/
  127. void QN_ChipInitialization()
  128. {
  129.     // reset
  130.     QND_WriteReg(0x00,0x80);
  131.     QND_Delay(20);
  132.     //to be customized: change the crystal setting, according to HW design
  133.     //.........
  134.     //recalibration
  135.     QNF_SetRegBit(0x00,0x40,0x40);
  136.     QNF_SetRegBit(0x00,0x40,0x00);
  137.     QND_Delay(20);                //delay 20 ms
  138.     QND_WriteReg(0x18,0xe4);        //reset
  139.     QND_WriteReg(0x1b,0xf0);   
  140.     //Done chip recalibration
  141. }

  142. /**********************************************************************
  143. int QND_Init()
  144. **********************************************************************
  145. Description: Initialize device to make it ready to have all functionality ready for use.

  146. Parameters:
  147.     None
  148. Return Value:
  149.     1: Device is ready to use.
  150.     0: Device is not ready to serve function.
  151. **********************************************************************/
  152. UINT8 QND_Init()
  153. {
  154.     QN_ChipInitialization();
  155. //    QND_WriteReg(0x00,  0x01); //resume original status of chip /* 2008 06 13 */
  156.     return 1;
  157. }

  158. /**********************************************************************
  159. void QND_SetSysMode(UINT16 mode)
  160. ***********************************************************************
  161. Description: Set device system mode(like: sleep ,wakeup etc)
  162. Parameters:
  163.     mode:  set the system mode , it will be set by  some macro define usually:
  164.    
  165.     SLEEP (added prefix: QND_MODE_, same as below):  set chip to sleep mode
  166.     WAKEUP: wake up chip
  167.     TX:     set chip work on TX mode
  168.     RX:     set chip work on RX mode
  169.     FM:     set chip work on FM mode
  170.     AM:     set chip work on AM mode
  171.     TX|FM:  set chip work on FM,TX mode
  172.     RX|AM;  set chip work on AM,RX mode
  173.     RX|FM:    set chip work on FM,RX mode
  174. Return Value:
  175.     None     
  176. **********************************************************************/
  177. void QND_SetSysMode(UINT16 mode)
  178. {   
  179.     UINT8 val;
  180.     switch(mode)        
  181.     {        
  182.     case QND_MODE_SLEEP:                       //set sleep mode        
  183.         QNF_SetRegBit(SYSTEM1, R_TXRX_MASK, 0);
  184.         break;        
  185.     default:   
  186.             val = (UINT8)(mode >> 8);        
  187.             if (val)
  188.             {
  189.                 val = val >> 1;
  190.                 if (val & 0x20)
  191.                 {
  192.                     // set to new mode if it's not same as old
  193.                     if((QND_ReadReg(SYSTEM1) & R_TXRX_MASK) != val)
  194.                     {
  195.                         QNF_SetRegBit(SYSTEM1, R_TXRX_MASK, val);
  196.                     }
  197.                     // make sure it's working on analog output
  198.                     QNF_SetRegBit(SYSTEM1, 0x08, 0x00);   
  199.                 }
  200.             }   
  201.         break;        
  202.     }   
  203. }

  204. /**********************************************************************
  205. void QND_TuneToCH(UINT16 ch)
  206. **********************************************************************
  207. Description: Tune to the specific channel. call QND_SetSysMode() before
  208. call this function
  209. Parameters:
  210.     ch
  211.     Set the frequency (10kHz) to be tuned,
  212.     eg: 101.30MHz will be set to 10130.
  213. Return Value:
  214.     None
  215. **********************************************************************/
  216. void QND_TuneToCH(UINT16 ch)
  217. {
  218.     QNF_SetCh(ch);
  219. }

  220. /**********************************************************************
  221. void QND_SetCountry(UINT8 country)
  222. ***********************************************************************
  223. Description: Set start, stop, step for RX and TX based on different
  224.              country
  225. Parameters:
  226. country:
  227. Set the chip used in specified country:
  228.     CHINA:
  229.     USA:
  230.     JAPAN:
  231. Return Value:
  232.     None     
  233. **********************************************************************/
  234. void QND_SetCountry(UINT8 country)
  235. {
  236.     qnd_Country = country;
  237.     switch(country)
  238.     {
  239.     case COUNTRY_CHINA:
  240.         qnd_CH_START = 7600;
  241.         qnd_CH_STOP = 10800;
  242.         qnd_CH_STEP = 1;
  243.         break;
  244.     case COUNTRY_USA:
  245.         qnd_CH_START = 8810;
  246.         qnd_CH_STOP = 10790;
  247.         qnd_CH_STEP = 2;
  248.         break;
  249.     case COUNTRY_JAPAN:
  250.         break;
  251.     }
  252. }

  253. /**********************************************************************
  254. UINT8 QND_TXSetPower( UINT8 gain)
  255. **********************************************************************
  256. Description:    Sets FM transmit power attenuation.

  257. Parameters:
  258.     gain: The transmission power attenuation value, for example,
  259.           setting the gain = 0x13, TX attenuation will be -6db
  260.           look up table see below
  261. BIT[5:4]
  262.             00    0db
  263.             01    -6db
  264.             10    -12db
  265.             11    -18db
  266. BIT[3:0]    unit: db
  267.             0000    124
  268.             0001    122.5
  269.             0010    121
  270.             0011    119.5
  271.             0100    118
  272.             0101    116.5
  273.             0110    115
  274.             0111    113.5
  275.             1000    112
  276.             1001    110.5
  277.             1010    109
  278.             1011    107.5
  279.             1100    106
  280.             1101    104.5
  281.             1110    103
  282.             1111    101.5
  283. for example:
  284.   0x2f,    //111111    89.5
  285.   0x2e,    //111110    91
  286.   0x2d,    //111101    92.5
  287.   0x2c,    //111100    94
  288.   0x1f,    //111011 95.5
  289.   0x1e,    //111010 97
  290.   0x1d,    //111001 98.5
  291.   0x1c,    //111000 100
  292.   0x0f,    //001111    101.5
  293.   0x0e,    //001110    103
  294.   0x0d,    //001101    104.5
  295.   0x0c,    //001100    106
  296.   0x0b,    //001011    107.5
  297.   0x0a,    //001010    109
  298.   0x09,    //001001    110.5
  299.   0x08,    //001000    112
  300.   0x07,    //000111    113.5
  301.   0x06,    //000110    115
  302.   0x05,    //000101    116.5
  303.   0x04,    //000100    118
  304.   0x03,    //000011    119.5
  305.   0x02,    //000010    121
  306.   0x01,    //000001    122.5
  307.   0x00     //000000    124
  308. **********************************************************************/
  309. void QND_TXSetPower( UINT8 gain)
  310. {
  311.     UINT8 value = 0;
  312.     value |= 0x40;  
  313. ……………………

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

所有資料51hei提供下載:
8027資料.zip (1.9 MB, 下載次數: 319)


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

使用道具 舉報

沙發
ID:128989 發表于 2020-3-10 23:56 | 只看該作者
很好的資料,學習了
回復

使用道具 舉報

板凳
ID:496493 發表于 2020-5-23 18:20 | 只看該作者
好,不錯,下來學習。樓主辛苦了!
回復

使用道具 舉報

地板
ID:337950 發表于 2020-9-12 09:18 | 只看該作者
正好用到,感謝樓主
回復

使用道具 舉報

5#
ID:48994 發表于 2021-5-18 09:12 | 只看該作者

不錯,正在用到這個芯片,下來學習。樓主辛苦了!
回復

使用道具 舉報

6#
ID:673525 發表于 2021-12-22 09:27 | 只看該作者
最近正好在搞這個芯片,感謝樓主的資料
回復

使用道具 舉報

7#
ID:1003842 發表于 2022-1-30 20:31 | 只看該作者
最近項目要用,謝謝分享
回復

使用道具 舉報

8#
ID:996292 發表于 2022-5-28 21:45 | 只看該作者
多謝樓主,非常好的資料,謝了!!!
回復

使用道具 舉報

9#
ID:333156 發表于 2022-8-28 19:39 | 只看該作者
正在找這個資料,感謝LZ!
回復

使用道具 舉報

10#
ID:1043739 發表于 2022-9-4 09:39 | 只看該作者
你好,QN8027壓縮包里面的文件有變量缺失,請發一份完整的,謝謝。
回復

使用道具 舉報

11#
ID:457471 發表于 2025-2-28 18:19 | 只看該作者
感謝分享 學習了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久久久冷 | 欧美日韩专区 | 亚洲精品一区二区 | 激情六月丁香婷婷 | 九色网址| 成人小视频在线观看 | 在线免费观看成人 | 91久久看片 | 免费能直接在线观看黄的视频 | 久久精品天堂 | 国产在线对白 | 久久免费精品 | 最新日韩在线 | 丁香婷婷综合激情五月色 | 麻豆hd | 成人国产精品视频 | 日本三级播放 | 日本一区二区在线视频 | 国产在线观看一区 | 成人欧美一区二区三区视频xxx | 久久99精品国产麻豆婷婷 | 成人二区| 国产有码 | 日本黄色一级视频 | 亚洲欧美aⅴ | 亚洲成人免费视频在线观看 | 可以免费观看的av | 色综合天天综合网国产成人网 | 午夜精品一区 | 国产黄色在线观看 | 男人久久天堂 | 一区二区三区四区在线视频 | 91麻豆精品国产91久久久更新资源速度超快 | 黑人久久| 免费的日批视频 | 亚洲免费人成在线视频观看 | 国产免费一区二区三区网站免费 | 日韩成人在线播放 | 亚洲精品视频二区 | 东京久久| 在线黄av|