码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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; 
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    但是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

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

  • 相关阅读:
    C语言---单身狗问题
    VQGAN理论加代码一对一详解,小白向解析
    RabbitMQ(八) 关于用户与虚拟主机的问题
    【狂神说Java】SpringSecurity+shiro
    使用数据增强从头开始训练卷积神经网络(CNN)
    基于sklearn的集成学习实战
    C++pimer第2章基础
    【Bun1.0】使用 Bun.js 构建快速、可靠和安全的 JavaScript 应用程序
    Python | GUI | tinker不完全总结
    Solidity快速入门之函数输出
  • 原文地址:https://blog.csdn.net/changsic/article/details/125434525
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号