STM32F411 SPI2输出错误,PB15无脉冲调试记录【最后发现PB15与PB14短路】

昨晚上调试TFT时,由于硬件问题将TFT的SDA 和SCL接口用在了SPI2 的PB15(SPI_MOSI) 与PB13(SPI2_SCK)上。
程序中逻辑应该没有问题,而且也在SPI1 端口上检验过,正常运行,但是接到SPI2上就无输出了,
以为是硬件SPI的原因,换成了软件SPI,

void LCD_SPIx_WriteByte(u8 data)
{   
//	HAL_SPI_Transmit(&LCD_SPI_CH,&data,1,0xffff);
	
	unsigned char i=0;
    for ( i = 8; i > 0; i --)
    {
        LCD_SCL_CLR;
        if ( data & 0x80)   
            LCD_SDA_SET; //输出数据
        else 
            LCD_SDA_CLR;    
        LCD_SCL_SET;
        data <<= 1; 
    }
}

但是TFT还是没有显示。
上一篇blog:STM32F4-TFT-SPI时序逻辑分析仪调试记录
已经通过逻辑分析仪抓取了正常的时序,唯独换到PB15 和PB13上就没有输出。
逻辑分析仪查看之后发现:
在这里插入图片描述
SCL–PB13引脚是正常发送脉冲的,但是SDA–PB15硬件始终是高电平,所以问题可能出在PB15上,
而且现在用是软件SPI,不排除PB15在硬件SPI模式下也是常高,检测一下。
换成硬件SPI:
在这里插入图片描述
输出依然有问题,现在可以定位根本原因应该是SPI_MOSI也就是PB15有问题。
在这里插入图片描述
硬件检查一下,看看是否有短路
发现PB15与PB14短路!!!!
坑人啊。。。。
含泪换上另一片芯片
之后再测
在这里插入图片描述
时序基本都是错的,怪不得无法显示。。。
改用软件SPI试试,看看是不是硬件有问题;
在这里插入图片描述
还是不对,TFT也不显示
换个SDA引脚到PB2:
在这里插入图片描述
这个会貌似对了,但是TFT不显示,检查发现DC引脚接错了,反过来,显示正常
那换SDA到PB15:
显示正常!!!!
可怜的深圳打工人,排队做核酸去。。。。

--------------------------------------分割线--------------------------------------------

做核酸回来,
那换成硬件SPI呢?
在这里插入图片描述

时序看着不对,但是正常显示。。。突然想起来

在这里插入图片描述
在这里插入图片描述

这就尴尬了。。。采样率才高一倍。。。况且已经是逻辑分析仪的最高采样率了!!!。
无奈只能调小硬件SPI波特率

在这里插入图片描述
在这里插入图片描述
终于显示正常了!!!!
佩服我自己!!!

然而我又想起了之前的另一个bug:
【STM32-USB-MSC问题求助】STM32F411CEU6 (WeAct)+w25q64+USB-MSC Flash用SPI2 读出容量只有520KB

这个也是用的同一块开发板,,,,莫非??后背发凉。。明天测试一下。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请叫我常思聪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值