发 帖  
[问答]

如何使用SPI1链接NRF24L01

651 SPI

        
[C] 纯文本查看 复制代码
// SPI1 用于访问 NRF24L01void SPI1_Init(void){  GPIO_InitTypeDef GPIO_InitStructure;  SPI_InitTypeDef SPI_InitStructure;  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOE, ENABLE); // PORTA,E 时钟使能   RCC_APB1PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);                // SPI1 时钟使能     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; // 分别对应 SCK、MISO、MOSI 三个引脚  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                     // PA5/6/7复用推挽输出   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  GPIO_Init(GPIOA, &GPIO_InitStructure);                              // 初始化GPIOA  GPIO_SetBits(GPIOA, GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);          // PA5/6/7上拉    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;                           // PE6,VS1053 复位  GPIO_Init(GPIOE, &GPIO_InitStructure);  GPIO_ResetBits(GPIOE, GPIO_Pin_6);                                  // 复位 VS1053  SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  // SPI设置为双线双向全双工  SPI_InitStructure.SPI_Mode = SPI_Mode_Master;                       // SPI主机  SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;                   // 发送接收8位帧结构  SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;                          // 时钟悬空低  SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;                        // 数据捕获于第1个时钟沿  SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;                           // NSS信号由软件控制  SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16; // 定义波特率预分频的值:波特率预分频值为16  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;                  // 数据传输从MSB位开始  SPI_InitStructure.SPI_CRCPolynomial = 7;                            // CRC值计算的多项式  SPI_Init(SPI1, &SPI_InitStructure);                                 // 根据SPI_InitStruct中指定的参数初始化外设SPIx寄存器  SPI_Cmd(SPI1, ENABLE); // 使能SPI外设  SPI1_ReadWrite(0xFF);  // 启动传输     }

               


main 方法里涉及到 NRF 初始化的部分
               


               
[C] 纯文本查看 复制代码
  SPI1_Init(); // 被 WIRELESS_Init 依赖  WIRELESS_Init();  oDebug("初始化:无线射频...");  if(WIRELESS_CheckDevice() == TRUE)    oDebug("成功rn");  else    oDebug("失败rn");
               
始终报失败
               


                        

               

0
2020-6-9 04:35:34   评论 分享淘帖 邀请回答 举报
2个回答
2020-6-9 09:12:38 评论

举报

2020-6-9 09:46:23 评论

举报

只有小组成员才能发言,加入小组>>

464个成员聚集在这个小组

加入小组

创建小组步骤

快速回复 返回顶部 返回列表
关注微信公众号

电子发烧友网

电子发烧友论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@huaqiu.com
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表