官方有SPI1的demo例程,但是我因为使用了RGMII接口,所以只能使用SPI3来操作外部SPI Flash。根据CH32V307VCT6的datasheet:SPI3需要使用重映射功能。重映射后,SPI3_NSS为PA4,SPI3_SCK为PC10,SPI3_MISO为PC11,SPI3_MOSI为PC12。配置如下图:
我也使用的SPI_NSS_SOFT模式,人为控制PA4的拉低拉高。
通过修改demo例程的代码后,我在while(1)中每1秒读取一次SPI FLASH的ID,均为0,使用示波器发现NSS为高电平,SCK一直无时钟信号,感觉SPI3没有配置一样。初始化SPI3有问题吗?还望赐教,谢谢。我把修改后的几个关键的SPI FLASH的函数也贴进来,便于分析问题。