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

📄 无线nrf905(ptr8000模块)源程序+原理图ddb.htm

📁 51对RF905的操作程序,已经调通过,可以用的
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      <BR>------------------------------------------------*/ 
      <BR>#define&nbsp;WC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;configuration&nbsp;register&nbsp;command 
      <BR>#define&nbsp;RC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;&nbsp;configuration&nbsp;register&nbsp;command 
      <BR>#define&nbsp;WTP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;TX&nbsp;Payload&nbsp;&nbsp;command 
      <BR>#define&nbsp;RTP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;&nbsp;TX&nbsp;Payload&nbsp;&nbsp;command 
      <BR>#define&nbsp;WTA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;TX&nbsp;Address&nbsp;&nbsp;command 
      <BR>#define&nbsp;RTA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;&nbsp;TX&nbsp;Address&nbsp;&nbsp;command 
      <BR>#define&nbsp;RRP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;&nbsp;RX&nbsp;Payload&nbsp;&nbsp;command 
      <BR>&nbsp; <BR><BR>//配置nRF905 <BR>void&nbsp;nrf905_Config(void) <BR>{ 
      <BR>&nbsp;&nbsp;CLR(PORTB,CSN);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Spi&nbsp;片选开 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(WC);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;config&nbsp;command 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(CH_NO_BYTE);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//中心频率低8位 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(PA_PWR_10dBm&nbsp;|&nbsp;HFREQ_PLL_433MHz);&nbsp;//发射+10dBm,发射频率433MHz,中心频率第9位=0 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(TX_AFW_4BYTE&nbsp;|&nbsp;RX_AFW_4BYTE);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//接收地址宽度4字节,发送地址宽度4字节 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(RX_PW_32BYTE);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//接收数据宽度32字节 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(TX_PW_32BYTE);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//发送数据宽度32字节 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(RX_ADDRESS_0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//接收有效地址第1字节 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(RX_ADDRESS_1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//接收有效地址第2字节 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(RX_ADDRESS_2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//接收有效地址第3字节 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(RX_ADDRESS_3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//接收有效地址第4字节 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(CRC16_EN&nbsp;|&nbsp;XOF_16MHz);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//CRC16模式使能,晶体振荡器频率16MHz 
      <BR>&nbsp;&nbsp;SET(PORTB,CSN);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Disable&nbsp;Spi 
      <BR>} <BR><BR>uchar&nbsp;nrf905_SpiRW(uchar&nbsp;val)&nbsp; 
      <BR>{uchar&nbsp;temp; <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;SPDR=val; 
      <BR>&nbsp;&nbsp;&nbsp;while&nbsp;((SPSR&amp;(1&lt;&lt;SPIF))==0); 
      <BR>&nbsp;&nbsp;&nbsp;temp=SPDR; <BR>&nbsp;&nbsp;&nbsp;return&nbsp;temp; 
      <BR>} <BR><BR>//PwrDown-&gt;StandBy <BR>void&nbsp;nrf905_StandBy() <BR>{ 
      <BR>&nbsp;&nbsp;&nbsp;SET(PORTB,PWR); 
      <BR>&nbsp;&nbsp;&nbsp;CLR(PORTB,TRXCE); 
      <BR>&nbsp;&nbsp;&nbsp;CLR(PORTB,TX_EN); <BR>} <BR><BR>//-&gt;PwrDown 
      <BR>void&nbsp;nrf905_Off() <BR>{ <BR>&nbsp;&nbsp;CLR(PORTB,PWR); <BR>} 
      <BR><BR>//-&gt;ShockBurst&nbsp;Send <BR>void&nbsp;nrf905_TxOn() <BR>{ 
      <BR>&nbsp;&nbsp;SET(PORTB,PWR); <BR>&nbsp;&nbsp;SET(PORTB,TX_EN); 
      <BR>&nbsp;&nbsp;CLR(PORTB,TRXCE); <BR>} 
      <BR><BR>//-&gt;ShockBurst&nbsp;Send <BR>void&nbsp;nrf905_TxSend() <BR>{ 
      <BR>&nbsp;&nbsp;SET(PORTB,TRXCE); <BR>&nbsp;&nbsp;DelayUs(20);//&gt;10us 
      <BR>&nbsp;&nbsp;CLR(PORTB,TRXCE);//只发送一次 <BR>} 
      <BR><BR>//-&gt;ShockBurst&nbsp;Recv <BR>void&nbsp;nrf905_RxOn() <BR>{ 
      <BR>&nbsp;&nbsp;SET(PORTB,PWR); 
      <BR>&nbsp;&nbsp;CLR(PORTB,TX_EN);//maybe&nbsp;first 
      <BR>&nbsp;&nbsp;SET(PORTB,TRXCE); <BR>} <BR><BR>//初始化nrf905 
      <BR>void&nbsp;nrf905_Init() <BR>{ <BR>&nbsp;&nbsp;&nbsp;nrf905_StandBy(); 
      <BR>&nbsp;&nbsp;&nbsp;DelayMs(10);//!!!must&nbsp;&gt;3ms 
      <BR>&nbsp;&nbsp;&nbsp;nrf905_Config(); <BR>&nbsp;&nbsp;&nbsp; 
      <BR>&nbsp;&nbsp;&nbsp;nrf905_SpiTest();//test... 
      <BR>&nbsp;&nbsp;&nbsp;nrf905_RxOn(); <BR>} <BR><BR>//测试:通过读配置,判断SPI操作是否正确 
      <BR>void&nbsp;nrf905_SpiTest() <BR>{uchar&nbsp;i; 
      <BR>&nbsp;&nbsp;CLR(PORTB,CSN);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(RC);&nbsp;&nbsp;//读配置 
      <BR>&nbsp;&nbsp;for&nbsp;(i=0;i&lt;10;i++) <BR>&nbsp;&nbsp;{&nbsp; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;RxBuf[i]=&nbsp;&nbsp;nrf905_SpiRW(0);//read&nbsp;from&nbsp;nrf905 
      <BR>&nbsp;&nbsp;} <BR>&nbsp;&nbsp;SET(PORTB,CSN);&nbsp;&nbsp; <BR>} 
      <BR><BR>//写Tx地址 <BR>void&nbsp;nrf905_SetTxAddr() <BR>{ 
      <BR>&nbsp;&nbsp;CLR(PORTB,CSN);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(WTA);&nbsp;&nbsp;//写Tx地址&nbsp;&nbsp; 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(TX_ADDRESS_0); 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(TX_ADDRESS_1); 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(TX_ADDRESS_2); 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(TX_ADDRESS_3); 
      <BR>&nbsp;&nbsp;SET(PORTB,CSN);&nbsp;&nbsp; <BR>} <BR><BR>//写Tx数据 
      <BR>void&nbsp;nrf905_SetData() <BR>{uchar&nbsp;i; 
      <BR><BR>&nbsp;&nbsp;CLR(PORTB,CSN);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(WTP);&nbsp;&nbsp;//写TxPayload&nbsp; 
      <BR>&nbsp;&nbsp;for&nbsp;(i=0;i&lt;SIZE;i++) <BR>&nbsp;&nbsp;{&nbsp; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;nrf905_SpiRW(TxBuf[i]); <BR>&nbsp;&nbsp;} 
      <BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;SET(PORTB,CSN);&nbsp;&nbsp; <BR>} 
      <BR><BR>//等待发送结束 <BR>void&nbsp;nrf905_WaitSended() <BR>{ 
      <BR>&nbsp;&nbsp;&nbsp;while&nbsp;((PIND&amp;(1&lt;&lt;DR))==0); <BR>} 
      <BR><BR>//发送TxBuf中的数据 <BR>void&nbsp;nrf905_SendData() <BR>{ 
      <BR>&nbsp;&nbsp;&nbsp;nrf905_TxOn();//切换到发送模式 
      <BR>&nbsp;&nbsp;&nbsp;nrf905_SetTxAddr();//写发送地址 
      <BR>&nbsp;&nbsp;&nbsp;nrf905_SetData();//写数据 
      <BR>&nbsp;&nbsp;&nbsp;nrf905_TxSend();//启动发送 
      <BR>&nbsp;&nbsp;&nbsp;nrf905_WaitSended();//等待发送结束 <BR>&nbsp;&nbsp;&nbsp; 
      <BR>} <BR><BR>//测试直接重新发送上次写入的数据 <BR>void&nbsp;nrf905_SendAgain() <BR>{ 
      <BR>&nbsp;&nbsp;&nbsp;nrf905_TxOn(); 
      <BR>&nbsp;&nbsp;&nbsp;nrf905_TxSend(); 
      <BR>&nbsp;&nbsp;&nbsp;nrf905_WaitSended(); <BR>&nbsp;&nbsp;&nbsp; <BR>} 
      <BR><BR>//读出接收到的数据 <BR>void&nbsp;nrf905_ReadData() <BR>{ 
      <BR>&nbsp;&nbsp;uchar&nbsp;i; 
      <BR><BR>&nbsp;&nbsp;CLR(PORTB,CSN);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <BR>&nbsp;&nbsp;nrf905_SpiRW(RRP);&nbsp;&nbsp;//读RxPayload&nbsp; 
      <BR>&nbsp;&nbsp;for&nbsp;(i=0;i&lt;SIZE;i++) <BR>&nbsp;&nbsp;{&nbsp; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;RxBuf[i]=nrf905_SpiRW(0);//read... 
      <BR>&nbsp;&nbsp;} <BR>&nbsp;&nbsp; 
      <BR>&nbsp;&nbsp;SET(PORTB,CSN);&nbsp;&nbsp; <BR><BR>} <BR><BR>-----<FONT 
      color=blue>此内容被pei99888于2006-04-05,12:28:28编辑过</FONT><BR></FONT></TD></TR>
  <TR>
    <TD bgColor=#e8e8e8 class=f03 
    style="BORDER-BOTTOM: #bbbbbb 0.5pt solid; BORDER-LEFT: medium none; BORDER-RIGHT: #bbbbbb 0.5pt solid; BORDER-TOP: medium none" 
    vAlign=bottom>  </TD></TR>
  <TR>
    <TD align=left bgColor=#e8e8e8 class=f03 
    style="BORDER-BOTTOM: #bbbbbb 0.5pt solid; BORDER-LEFT: #bbbbbb 0.5pt solid; BORDER-RIGHT: #bbbbbb 0.5pt solid; BORDER-TOP: medium none" 
    width="19%"><IMG height=1 
      src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" 
      width=7>2006-04-05,12:27:13 </TD>
    <TD bgColor=#e8e8e8 class=f03 
    style="BORDER-BOTTOM: #bbbbbb 0.5pt solid; BORDER-LEFT: medium none; BORDER-RIGHT: #bbbbbb 0.5pt solid; BORDER-TOP: medium none" 
    vAlign=top width="81%" ?>
      <TABLE width="100%">
        <TBODY>
        <TR>
          <TD align=left><IMG height=1 
            src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" width=7> <A 
            class=tt4 
            href="http://www.ouravr.com/bbs/user_information.jsp?user_name=pei99888" 
            target=_blank>资料</A> <IMG height=1 
            src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" width=7> <A 
            class=tt4 href="mailto:pei99888@126.com">邮件</A> <IMG height=1 
            src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" width=7> </TD>
          <TD align=right><IMG height=1 
            src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" width=2> <IMG 
            height=1 src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" 
            width=2> <IMG height=1 
            src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" width=2> <IMG 
            height=1 src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" 
            width=2> <IMG height=1 
            src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" width=2> <IMG 
            height=1 src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" 
            width=2> <SPAN class=f01>编辑</SPAN> <IMG height=1 
            src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" width=7> <SPAN 
            class=f01>删除</SPAN> <IMG height=1 
            src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" width=7> <IMG 
            height=1 src="无线nrf905(PTR8000模块)源程序+原理图DDB.files/pixel.GIF" 
            width=7> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=6 cellSpacing=0 
style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" width="100%">
  <TBODY>
  <TR>
    <TD align=left bgColor=#d1d9e2 class=f03 rowSpan=2 
    style="BORDER-BOTTOM: #ffffff 0.5pt solid; BORDER-LEFT: #bbbbbb 0.5pt solid; BORDER-RIGHT: #ffffff 0.5pt solid; BORDER-TOP: #ffffff 0.5pt solid" 
    vAlign=top width="19%">【2楼】 <FONT color=#000000>mutoudonggua 
      </FONT><BR>积分:<FONT color=#000000>91</FONT><BR>派别:<FONT 
      color=#000000></FONT><BR>等级:<FONT color=#000000>------</FONT><BR>来自:<FONT 
      color=#000000>湖南长沙</FONT><BR></TD>

⌨️ 快捷键说明

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