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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 13238|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

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

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主




文件列表:
QN8027資料匯總整理。
QN8025_27軟件硬件開發(fā)疑難解答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

調(diào)頻發(fā)射接收芯片QN8027的單片機(jī)源程序如下:
  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. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

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


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

使用道具 舉報(bào)

沙發(fā)
ID:128989 發(fā)表于 2020-3-10 23:56 | 只看該作者
很好的資料,學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

板凳
ID:496493 發(fā)表于 2020-5-23 18:20 | 只看該作者
好,不錯(cuò),下來學(xué)習(xí)。樓主辛苦了!
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

不錯(cuò),正在用到這個(gè)芯片,下來學(xué)習(xí)。樓主辛苦了!
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

11#
ID:457471 發(fā)表于 2025-2-28 18:19 | 只看該作者
感謝分享 學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频免费在线观看 | 成人精品系列 | 国产 日韩 欧美 中文 在线播放 | 91人人看| 成人在线视频免费观看 | 亚洲视频免费一区 | 午夜电影一区 | www.9191.com | 成人 在线 | 女女百合av大片一区二区三区九县 | 国产激情在线播放 | 你懂的av| 一区二区三区免费在线观看 | www.精品一区 | 国产日韩一区 | 久久成人一区 | 亚洲一区二区在线播放 | 蜜桃在线播放 | 久久久久国 | 91看片官网 | 日韩一级精品视频在线观看 | 美女福利网站 | 欧美白人做受xxxx视频 | 亚洲精品久久久一区二区三区 | 麻豆久久久9性大片 | 一级欧美黄色片 | 精品国产乱码久久久久久果冻传媒 | 亚洲精品视频网站在线观看 | 亚洲午夜精品视频 | 羞羞视频在线网站观看 | 色综合色综合色综合 | 91精品在线播放 | 久久69精品久久久久久国产越南 | 国产在视频一区二区三区吞精 | 成人免费观看视频 | 亚洲一区二区精品视频 | 最新中文字幕在线 | 亚洲精品欧洲 | 欧美色综合一区二区三区 | 国产日韩一区二区三免费高清 | 九九热在线观看 |