本帖最后由 tpgf 于 2019-12-18 16:06 编辑
之前在做一个项目的时候通过stm32f103的spi2接口连接了一个eeprom,不过在调试的时候怎么也没办法对eeprom进行读写,找了好多原因也没找到,最后看了一篇官网的分析,
https://www.stmcu.com.cn/Designresource/design_resource_detail/file/494820/lang/ZH/token/bc9d5d7ac1f105e6d513e019868c6b41 SPI3 接口没有信号送出
在该**中,给了好多种建议,为了方便大家观看,我粘贴如下:
1. 检查 RCC 的 APB2ENR 寄存器中各个 GPIO 的时钟门控位,匀为允许状态;
2. 检查 RCC 的 APB2ENR 寄存器中 AFIO 的时钟门控位,状态为允许;
3. 检查 RCC 的 APB1ENR 寄存器中 SPI3 的时钟门控位,状态为允许;
4. 检查 GPIOB 的 CRL 寄存器中 PB3(SPI3 CLK)的模式设置,其模式为 AF 推拉输出,未见异 常;
5. 检查 GPIOB 的 CRL 寄存器中的 PB4(SPI3 MISO)的模式设置,其模式为 AF 推拉输出,正常 应为高阻输入;
6. 检查 GPIOB 的 CRL 寄存器中的 PB5(SPI3 MOSI)的模式设置,其模式为 AF 推拉输出,未见 异常;
7. 检查 AFIO 的 MAPR 寄存器中的 SWJ CFG 设置,其值为 000,应设为 010,禁止 JTAG DP 而保 留 SW DP;
8. 检查 SPI3 的初始化代码,如表(一)所示,未见异常:
由于我是用的jtag现在方式,所以忽略了对PB3、PB4进行相关设置,按照第七条进行了更改,就可以进行通讯了。
如果有网友和我有相同的困惑 ,我建议去看看这篇**。
|