新手上路
- 积分
- 33
- 金钱
- 33
- 注册时间
- 2014-8-16
- 在线时间
- 0 小时
|
5金钱
<div style="background-color:#E8E8E8;">
[mw_shl_code=c,true]u8 NRF24L01_TxPacket(u8 *txbuf)
{
u8 sta;
SPI2_SetSpeed(SPI_BaudRatePrescaler_8);
NRF24L01_CE=0;
NRF24L01_Write_Buf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);
NRF24L01_CE=1;
while(NRF24L01_IRQ!=0);
sta=NRF24L01_Read_Reg(STATUS);
NRF24L01_Write_Reg(WRITE_REG_NRF+STATUS,sta);
if(sta&MAX_TX)
{
NRF24L01_Write_Reg(FLUSH_TX,0xff); return MAX_TX;
}
if(sta&TX_OK)//·????ê??
{
return TX_OK;
}
return 0xff;
[/mw_shl_code]
</div>
函数先读取状态寄存器的值,这个能够理解,但是后来为什么又把状态寄存器的值写进去:<span style="line-height:1.5;">NRF24L01_Write_Reg(WRITE_REG_NRF+STATUS,sta);尤其是在写进去的这个过程中怎么可以清除中断标志位。这个sta就是之前读取出来的,又写进去不还是和之前的寄存器状态一样啊,怎么会清除中断位呢?</span> |
|