打印
[STM32]

NRF24L01在STM32上发送老是突然停止

[复制链接]
669|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
飛饵|  楼主 | 2018-12-23 18:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前在51上用过完全没问题。现在在STM32上用,发送总是突然停止,复位也没用,要断开电源重新上电才能发送。
不清楚是硬件问题还是程序问题。
以前51上是经常丢包,在电源处加个200uF电容就正常了,现在32上也加了。看现象已经不是丢包的问题。

模拟SPI时序:
uchar spi_rw(uchar dat) //spi通信时序函数  能写入并接收8位数据
{
        uchar i;
        sck=0;
        for(i=0;i<8;i++)
        {
                mosi=(bool)(dat&0x80);
                dat=dat<<1;
                sck=1;
                dat=dat|miso;       
                sck=0;                  
        }                                  
                                          
        return dat;
}
发送函数:
void TXData(uchar *dat) //发送数据
{
        ce=0;//进入待机模式

        write_txfifo(nRF_WRITE_REG+TX_ADDR,TX_ADDR_WIDTH,(u8 *)TX_ADDRESS);  
        write_txfifo(nRF_WRITE_REG+RX_ADDR_P0,TX_ADDR_WIDTH,(u8 *)TX_ADDRESS)

        write_reg(EN_AA,0x01);//选择0通道自动应答
        write_reg(EN_RXADDR,0x01);//打开0通道自动应答
        write_reg(SETUP_RETR,0x0a);//自动重发
        write_reg(RF_CH,12);         //设置无线频率
        write_reg(RF_SETUP,0x07);//设置传输速率
        write_reg(CONFIG,0x0e); //发射模式

        ce=1;  //拉高后开始无线发送数据
        nrfdelay(25);
}


相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

117

帖子

1

粉丝