|
Si24R1各種工作模式示例代碼
1.關斷模式:不再接收或發送數據,是功耗最低的模式,低至0.7uA。可以通過SPI接口喚醒并切換到待機模式。
代碼如下(示例):
/********************************************************
函數功能:關斷模式
入口參數:void
返回 值:void
*********************************************************/
void ST24R1Shotoff(void)
{
IO_CE_LOW();
SI24R1_Write_Reg(WRITE_REG+ CONFIG, 0x0c); // 關斷模式
}
2.待機模式:時鐘處于工作,也不再接收或發送數據,功耗較低,大概在15uA。可以通過拉高CE引腳進入發送空閑模式或接收模式。
代碼如下(示例):
/********************************************************
函數功能:將CE引腳拉低,使SI24R1進入待機模式
入口參數:void
返回 值:void
*********************************************************/
void ST24R1EnterStandby(void)
{
IO_CE_LOW();
}
/********************************************************
函數功能:將CE引腳拉高,使SI24R1退出待機模式
入口參數:void
返回 值:void
*********************************************************/
void ST24R1ExitStandby(void)
{
IO_CE_HIGH();
}
3.發送模式:模塊被配置為發送數據的設備。它使用無線電信道將數據傳輸給一個或多個接收設備,發射電流為12mA。
代碼如下(示例):
/********************************************************
函數功能:SI24R1發送模式
入口參數:void
返回 值:void
*********************************************************/
void SI24R1_TX_Mode(void)
{
IO_CE_LOW();
SI24R1_Write_Buf(WRITE_REG+ TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 寫入發送地址
SI24R1_Write_Buf(WRITE_REG+ RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 為了應答接收設備,接收通道0地址和發送地址相同
SI24R1_Write_Reg(WRITE_REG+ EN_AA, 0x01); // 使能接收通道0自動應答
SI24R1_Write_Reg(WRITE_REG+ EN_RXADDR, 0x01); // 使能接收通道0
SI24R1_Write_Reg(WRITE_REG+ SETUP_RETR, 0x0A); // 自動重發延時等待250us+86us,自動重發30次
SI24R1_Write_Reg(WRITE_REG+ RF_CH, DEFAULT_FREQUENCY); // 選擇射頻通道0x40
SI24R1_Write_Reg(WRITE_REG+ RF_SETUP, TX_TRANSMIT_POWER | RF_DATA_RATE); // 數據傳輸率2Mbps,發射功率7dBm
SI24R1_Write_Reg(WRITE_REG+ CONFIG, 0x0e); // CRC使能,16位CRC校驗,上電,發送模式
SI24R1_Write_Reg(WRITE_REG+ STATUS, 0xff); // 清除所有的中斷標志位
SI24R1_Write_Reg(FLUSH_TX,0xff); // 清除TX FIFO寄存器
IO_CE_HIGH();
}
4.接收模式:模塊被配置為接收數據的設備。它通過無線電信道接收來自發送設備的數據,接收電流為15mA。
代碼如下(示例):
/********************************************************
函數功能:SI24R1接收模式
入口參數:void
返回 值:void
*********************************************************/
void SI24R1_RX_Mode(void)
{
IO_CE_LOW();
SI24R1_Write_Buf(WRITE_REG+ RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 接收設備接收通道0使用和發送設備相同的發送地址
SI24R1_Write_Reg(WRITE_REG+ EN_AA, 0x01); // 使能接收通道0自動應答
SI24R1_Write_Reg(WRITE_REG+ EN_RXADDR, 0x01); // 使能接收通道0
SI24R1_Write_Reg(WRITE_REG+ RF_CH, DEFAULT_FREQUENCY); // 選擇射頻通道0x40
SI24R1_Write_Reg(WRITE_REG+ RX_PW_P0, TX_PLOAD_WIDTH); // 接收通道0選擇和發送通道相同有效數據寬度
SI24R1_Write_Reg(WRITE_REG+ RF_SETUP, TX_TRANSMIT_POWER | RF_DATA_RATE); // 數據傳輸率2Mbps,發射功率7dBm
SI24R1_Write_Reg(WRITE_REG+ CONFIG, 0x0f); // CRC使能,16位CRC校驗,上電,接收模式
SI24R1_Write_Reg(WRITE_REG+ STATUS, 0xff); // 清除所有的中斷標志位
IO_CE_HIGH(); // 拉高CE啟動接收設備
}
|
-
-
si24r1.pdf
2024-4-24 14:41 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.58 MB, 下載次數: 2, 下載積分: 黑幣 -5
中文手冊
|