完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
求解??我用示波器观察很久,MOSI一直是高电平,没有脉冲出现,CLK是一直有2Mhz的矩形波输出
还有个问题就是SPI1->DR=Data 异常,DR寄存器的值和Data完全不同 SPI的使能和初始化我仔细检查了很多遍,电路的连接也检查很多遍都没错 困扰好久了...求解 |
|
相关推荐
14个回答
|
|
不停的写DR,写0XAA,试试。
|
|
|
|
原子哥在吗
|
|
|
|
不想单机
|
|
|
|
看看CLK的时钟相位与时钟极性是否正确,时钟是不是太快。DR寄存器赋值时,看看总线状态标志位的BUSY和TXE的状态。
|
|
|
|
相位和极性我试了4中组合都不行呀
请问SPI时钟太快会有影响吗?我波特率预分频是256,SPI的速度SPI1_SetSpeed(SPI_BaudRatePrescaler_4); 不是很懂这两个的区别 关于TXE 这边有语句while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) { retry++; if(retry>200) return 0;} SPI1->DR=Data;//然后这一句的后面我用串口发送出SPI1->DR的值,和Data完全不一样,毫无规律 |
|
|
|
=====================main.c==================
while(1){ SPI1_ReadWriteByte(0xAA); } =====================spi.c==================== u8 SPI1_ReadWriteByte(u8 TxData) { u8 retry=0; while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) { retry++; if(retry>200)return 0; } SPI_I2S_SendData(SPI1, TxData); retry=0; while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET) { retry++; if(retry>200)return 0; } return SPI_I2S_ReceiveData(SPI1); } void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data) { assert_param(IS_SPI_ALL_PERIPH(SPIx)); SPI1->DR = 0xAA; USART_SendData(USART1,SPI1->DR);//=====串口发出的数据显示一直是0x00 while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); } 我通过串口返回的数据看,一直是0x00... 现在 CLK的波形正常,我设置的时钟是低速模式, MOSI也有输出波形 这是啥情况啊原子哥,卡在识别nrf24l01这里很久了 |
|
|
|
我发现我之前太依赖战舰开发板了...没有把知识搞透,把教程拿来跑的通就觉得自己会了,原来自己什么都不会...
|
|
|
|
我现在用的是stm32f103c8t6 最小系统
|
|
|
|
|
|
|
|
明天我瞧一瞧AA的波形...之前发的0XA5查询外设的,1个周期内MOSI波形看起来有3个毛刺,我不会上传图片,明天我把AA的波形调出来一起给原子哥看吧...感谢原子哥
MOSI输出有几个毛刺是正常情况吗? |
|
|
|
原子哥,我测试过0XAA的波形了,MOSI输出的是正确的方波;CLK波形也正常,只在发数据时才有波形
while(NRF24L01_Check()) { delay_ms(100); } //在空闲时MOSI输出一直是高电平的 但是仍然识别不出nrf24l01,SPI1->DR=Data后,串口发出的 SPI1->DR还是很奇怪,经常是0x00,检测RXNE位之后 读取SPI1->DR时的数据和上面串口返回的数据一致 电路检查过没问题啊,单片机MOSI 接 NFR24L01的MOSI 原子哥求解。。。 |
|
|
|
那就查其他问题了
|
|
|
|
找到问题了原子哥...终于把检测这一块给过了,归根结底来说是SPI速率设置的太快了,分频改成64,然后我把MISO设置成GPIO_Mode_IN_FLOATING ,SPI_CPOL = SPI_CPOL_High改成Low以后自检就通过了....感谢原子哥
|
|
|
|
原子哥,例程中,2个STM32都设置成Master主模式吗?只是一个发送一个接收?
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2537 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2322 浏览 5 评论
3136 浏览 3 评论
2791 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2753 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
595浏览 1评论
847浏览 0评论
954浏览 0评论
608浏览 0评论
433浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 04:16 , Processed in 1.174364 second(s), Total 72, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号