[研电赛技术支持] GD32的spi作为slave端,无法读取数据

[复制链接]
2270|5
 楼主| tpgf 发表于 2024-3-12 15:43 | 显示全部楼层 |阅读模式
项目场景:
项目需要用到GD32的SPI0作为slave端来传输数据,以下为自测的demo
问题描述
以下为初始化代码

1925565f0079c0206f.png

硬件部分使用PA15,PB3,PB4,PB5引脚:
查看datasheet

2048965f007a280ddc.png

2788665f007a94cce8.png

原因分析:
由以上的datasheet可知,如果需要使用PA15,PB3,PB4,PB5作为spi0,那么需要用gpio_pin_remap_config(GPIO_SPI0_REMAP,ENABLE)来释放它,但是我加上去这句之后,还是无法接收数据,左思右想,想不通,上个厕所再捋。

解决方案:
在某个大佬贴中看到。它需要先释放gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP,ENABLE),再释放gpio_pin_remap_config(GPIO_SPI0_REMAP,ENABLE),才能正常使用,我认为这是一个坑。。。

3753965f00793571f8.png

加上,即可正常运行。。。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_35865280/article/details/136193690

菜鸟的第一步 发表于 2024-3-28 13:27 | 显示全部楼层
所以到底是个啥原因啊
probedog 发表于 2024-3-28 22:00 | 显示全部楼层
检查SPI的时钟频率是否在设备允许的范围内。如果时钟频率过高或过低,可能会导致数据传输不稳定或无法读取。
laocuo1142 发表于 2024-3-30 15:00 | 显示全部楼层
  • 检查SPI的硬件连接是否正确,包括线路连接、电源和地线等。确保没有物理损坏或接触不良的情况。

wangtaohui 发表于 2024-7-31 22:29 | 显示全部楼层
在GD32系列中,SPI外设的引脚(例如PA15, PB3, PB4, PB5)可能需要进行重映射配置。重映射是为了将外设引脚从默认的GPIO引脚重新配置到其他功能引脚。
gpio_pin_remap_config(GPIO_SPI0_REMAP, ENABLE) 是将引脚配置为SPI0功能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2384

主题

17636

帖子

21

粉丝
快速回复 在线客服 返回列表 返回顶部