打印

GD32F303 SPI 通信问题

[复制链接]
1132|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yeku|  楼主 | 2021-1-29 17:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yeku 于 2021-1-29 17:50 编辑

两个平台, ST 和 GD 平台, ST平台的通信完全没有问题,而GD平台偶然性会出现通信失败, 失败时MISO波形如下:

C:\Users\qizhang\Desktop\index.png

硬件应该没有问题, 是从外设到MCU直接连接的,没有并联电容或者电阻。
初始化配置如下:


MISO的配置,配置为IN_FLOATING时,问题更经常发生, 而配置为上拉,问题发生的概率降低了很多,但还是不能完全解决。
请问有遇到类似情况的吗?原因是什么?


使用特权

评论回复
沙发
93162555| | 2021-2-9 17:09 | 只看该作者
/* SPI0 clock enable */
                rcu_periph_clock_enable(RCU_SPI0);

                /* SPI0 GPIO config */
                gpio_af_set(GPIOB, GPIO_AF_5, GPIO_PIN_5);
                gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_5);
                gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5);

                gpio_af_set(GPIOA, GPIO_AF_5, GPIO_PIN_5 | GPIO_PIN_6);
                gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_5 | GPIO_PIN_6);
                gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5 | GPIO_PIN_6);

使用特权

评论回复
板凳
lvben5d| | 2021-2-11 10:08 | 只看该作者
居然可以抓到通信失败时刻得波形,帅, 这种抖动如果不是空间辐射干扰,可以降低SPI主频一半试试?保险起见,可以串联1个小电阻 做阻抗匹配  

使用特权

评论回复
地板
1035178231| | 2021-4-26 11:14 | 只看该作者
这波形抓的太帅了,楼主大大,找到解决办法了吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝