完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
void INit()
{ SPI_InitTypeDef SPI_InitStructure; //申明结构体 GPIO_InitTypeDef GPIO_InitStructure; //zhaodao 哪个模块,然后再开启对应的时钟,配置各个口的工作模式,调用 //////////////////////////////////////////////////////////////////////// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE); //因为A口为复用时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE); /////////////////////////////////////////////////////////////////////// GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_4; //CE 引脚控制模式选择,因为要用来控制它的 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //它的电平,所以选择输出方式((》》》)) GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; // GPIO_Init(GPIOA,&GPIO_InitStructure); // Set_NRF2401_CE; ///必须先拉高,因为不工作时为H // Set_nss; //先拉高,不让工作 ////////////////////////////////////////////////////////////////////// GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_6|GPIO_Pin_7; //用一个使能,先拉高 ((b)),把所有的片选都配置上了 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//因为用它来控制外面的,所以选择输出,上下拉随意 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;// GPIO_Init(GPIOB,&GPIO_InitStructure); Set_NRF2401_CS; // GPIO_SetBits(GPIOB,GPIO_Pin_6); // GPIO_SetBits(GPIOB,GPIO_Pin_7); // //////////////////////////////////////////////////////////////////// GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2; //IRQ 中断引脚 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;////上拉输入 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; // GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_SetBits(GPIOA,GPIO_Pin_2); //初始化时先拉高,因为触发时为L ////////////////////////////////////////////////////////////////////// ////////////////////设置俩处,1:GPIO 2:SPI那里的///////////////////// GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; //复用推挽输出 ,只有这样才可以区别不是普通IO口 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStructure); ////////////////设置SPI工作模式//////////////////////////////// SPI_Cmd(SPI1,DISABLE); //配置时先失能 SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex; //双工模式 ,其实没必要 SPI_InitStructure.SPI_Mode=SPI_Mode_Master; //SPI1为主模式 SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;//8位 SPI_InitStructure.SPI_CPOL=SPI_CPOL_Low; //平时时钟为低 SPI_InitStructure.SPI_CPHA=SPI_CPHA_1Edge;//第1个开始,<<4种(1,0,低,1)(1,1,低,2)(0,1,高,2)(0,0,高,1) >> SPI_InitStructure.SPI_NSS=SPI_NSS_Soft; // SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_8; //8>>72>>9M,主模式的时钟决定传输速率,suiyi SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB; //数据从MSB开始 ,高位开始 SPI_InitStructure.SPI_CRCPolynomial=7; //CRC多项式,校验位 SPI_Init(SPI1,&SPI_InitStructure); ///////////////////////////////////////////////////////////////////////////////////////// SPI_Cmd(SPI1,ENABLE); SPI_ReadWrite(0xff); //启动传输 ///////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2; //GPIO_pin_ALL,所有的IO口都配置了,LCD就这样配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; // /////////////////////////////////////////////////////////// GPIO_Init(GPIOB,&GPIO_InitStructure); ///////////////////////////////////////////////////////////////////////////////////////// Clr_NRF2401_CE; //模式选择 ,之后就不用设置了 Set_NRF2401_CS; //CS 是SPI 片选端,所以每次都要先使能CS,再写相关程序,再关闭 } 初始化的部分。 int main() { u8 buf[33]={0}; u8 temp1=' '; u8 t; STM32_clock_init(9);//72M,因为NRF 9M,所以用外部PLL // NRF24L01_Init(); INit(); //对GPIO和SPI配置 ,已经把CE拉低了,所以在后面的SPI作用时都不用配置了,好用 GPIO_SetBits(GPIOB,GPIO_Pin_2); while(nrf2401_check()) //如果没有, 返回值 { ///LED灯指示 ; GPIO_ResetBits(GPIOB,GPIO_Pin_2); // 一直亮 (A2) //delay_ms1(12000000); //GPIO_SetBits(GPIOB,GPIO_Pin_2); //delay_ms1(12000000); } 程序一直停在 while(nrf2401_check()) 说明没有检测到NRf,不知哪里的问题,大家帮帮忙、、、、、、 |
|
相关推荐
2 个讨论
|
|
问题设是?{:12:}
|
|
|
|
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-CAN编程示例之开发板测试
699 浏览 0 评论
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
2350 浏览 1 评论
809 浏览 0 评论
1573 浏览 1 评论
2357 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 23:55 , Processed in 0.547819 second(s), Total 48, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号