完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
自己做的 F373 板子,SPI 出现奇怪现象:
位数设置为 ≤8bit 时,每往 DR 写入一次数据,SCK 会发出两倍的脉冲。SPI1 和 SPI3 都这样。 设置为 >8bit 时,波形正常。(但可惜没法利用。) 如图,黄色波形为 SCK,蓝色为 MOSI (DR = 0xCA)。 NSSP = 0 时: NSSP = 1 时: 程序配置如下: 硬件、软件都已经最小化,试过STMcube产生的配置程序,也试过多个官方例程,情况相同, 而且 SPI1 和 SPI3 情况完全一样。 很简单的事,折腾两天,近乎绝望。 目前只能认为芯片有问题。但愿是自己遇到特例了,而不是芯片本身的 bug 。 |
|
相关推荐
12个回答
|
|
|
|
|
|
|
|
|
本帖最后由 玄德 于 2018-2-12 11:05 编辑
@toofree 我把 IAR 工程和 MDK 工程都做了,cube 工程也包含在文件夹里。而且都下载、运行过。 先传 IAR : 再传 MDK:生成的工程包有 110M,算了不传了。 |
|
|
|
|
|
把你的STMcubeMX生成的配置文件和应用工程都传上来看看。
|
|
|
|
|
|
本帖最后由 wenyangzeng 于 2018-2-11 13:47 编辑
1、默认的SPI发送数据长度是16位: SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data); 你可以一次发送2个字节。 2、而设定发送数据位长度8位: #define SPI_DataSize_8b SPI_DataSizeConfig(SPI_TypeDef* SPIx, SPI_DataSize); 3、而在F3的STM32Cube里的函数也可以试试 HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size); |
|
|
|
|
|
多谢指点!
按你说的第三条,我直接用 STMcube 中的库函数 HAL_SPI_Transmit() 进行发送, 现在可以得到正常的波形。 我前面只用了官方的外设配置函数,发送过程是自己写的,直接操作 DR 寄存器,然后判断 RXNE 标志,结果波形错误。 虽然还不明白怎么回事,毕竟有进展了。我再继续摸索。 |
|
|
|
|
|
本帖最后由 toofree 于 2018-2-11 16:40 编辑
从你主楼贴中的程序配置发现不了问题,因为的确没问题,问题出在了其它地方。 所以,以后还是最好上传个工程。 |
|
|
|
|
|
|
|
|
|
|
|
@toofree
我用的是 STMcubeMX / v4.24,IAR / v7.20,MDK / 5.23 。 CPU 型号是 STM32F373RCT6 。 STM32cubeMX,只配置外设 SPI1,端口 PC7 - SCK,PC8 - MISO, PC9 - MOSI 。最关心的是 SCK 和 MOSI 。 端口配置: SPI配置: 生成工程以后,配置一下芯片型号、无优化、JLINK、SWD, 然后在原始 main 文件里、while (1)循环下,添加自己的应用语句。如下图: =================下面是实验结果========= 使用第一种方式,用官方发送函数循环发送 0xCA,可以得到正确、漂亮的波形: 使用第二种方式,常规的寄存器操作,写 DR、等待、清标志,波形位数就不对了: 情况就是这样。一会上传工程。 |
|
|
|
|
|
多谢帮助!基本搞清了,结论在 9 层。
|
|
|
|
|
|
|
|
|
|
|
|
看一下函数 HAL_SPI_Transmit() 的原型,里面有8位模式发送,见下图粉色框出来的部分。相信在用户指导手册中也应该说明。 这个是批量传输,当计数器内大于1的时候,按16位发送;当等于1的时候,按8位发送;等于0的时候不进来,直接结束了。 |
|
|
|
|
|
我就是仿照这个做的。这个F3居然与其他系列不一样。
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2797 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2403 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2276 浏览 0 评论
2388 浏览 1 评论
1637 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 20:17 , Processed in 0.881845 second(s), Total 64, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
6106