STM32F030F4P6 NRF24L01调试心得体会

本文介绍了在使用STM32F030F4P6替代STM32F103以降低成本后,遇到NRF24L01无线模块无法通信的问题。经过排查,发现F030的SPI默认发送数据为16位,而NRF24L01需要8位。通过修改SPI发送函数为SPI_SendData8,成功解决了通信问题。提供初始化及读写函数代码供参考。
摘要由CSDN通过智能技术生成

在第一批设备中使用的是STM32F103产品,后来为了节省一点成本,打起了F030的主意,毕竟2块钱的东西,速度也可以,于是画板子,调程序,发现NRF2401就是不通讯,也是反复测试,抓波形,就是没有数据,后来在发现时钟是16位的,在回过来去网上找资料,发现SPI的发送数据默认是16位,所以找到库函数,发现有SPI_SendData8(SPI1,TxByte);这个,说明F030和103不一样,于是将发送函数改为这个,(SPI_PORT->DR = TxByte;    //发送数据)括号里是103的发送,改为8位发送之后,立马通讯成功,附代码如下,有需要的拿走,已经成功

void spi_init( void )
{
    GPIO_InitTypeDef    SpiGpioInitStructer;
    SPI_InitTypeDef        SpiInitStructer;
    
    /** SPI引脚配置 */
    RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA , ENABLE );    //打开端口时钟
    RCC_APB2PeriphClockCmd( SPI_PORT_CLK, ENABLE );    
    
    SpiGpioInitStructer.GPIO_Pin = SPI_CLK_GPIO_PIN;
    SpiGpioInitStructer.GPIO_Mode = GPIO_Mode_AF;//复用模式
    SpiGpioInitStructer.GPIO_OType=    GPIO_OType_PP;

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值