数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1888|回复: 15

[STM] 求助,调试STM32G030C8T6的硬件SPI1,无信号输出。

[复制链接]
发表于 2023-2-3 01:00:58 | 显示全部楼层 |阅读模式
STM32G030C8T6的硬件SPI1,对接TFT屏。SPI用的是单线双向模式,即用MOSI连接液晶屏的数据线。
SPI初始化后,调用TFT_WR函数,不论是时钟还是数据线上,示波器都测不到变化的信号,参考手册看了好几遍,都没有找出问题所在,请各位走过路过的大侠帮忙看看,谢谢。

#define LCD_CS      'A',4     //PA4
#define LCD_SCK     'A',5
#define LCD_SDA     'A',7
#define LCD_CD      'A',6
#define LCD_RST     'B',0

#define SPI_RX_MODE 0
#define SPI_TX_MODE 1

void GPIO_Config(u8 port,u8 pin,u8 mode,u8 altfun,u8 speed,u8 od,u8 pull,u8 level);

void SPI1_Init(void)
{
    RCC->IOPENR |= 0x1;             //Enable GPIO A Clock
    GPIO_Config(LCD_CS, GPIO_OutputMode, GPIO_AF0, GPIO_SpeedMedium, GPIO_PushPull, GPIO_PullNo, 1);
    GPIO_Config(LCD_SDA, GPIO_AltFunMode, GPIO_AF0, GPIO_SpeedMedium, GPIO_OD, GPIO_PullNo, 1);
    GPIO_Config(LCD_SCK, GPIO_AltFunMode, GPIO_AF0, GPIO_SpeedMedium, GPIO_OD, GPIO_PullNo, 1);
    RCC->APBENR2 |= 0x1000;         //Enable SPI1 Clock
    Delay(0x100);
    RCC->APBRSTR2 |= 0x1000;        //Reset SPI1
    Delay(0x100);
    RCC->APBRSTR2 &= 0xffffefff;    //Release Reset SPI1
    Delay(0x100);
    SPI1->CR1 = 0xc324;             //Bidi mode, Output enable, BaudRate=PCLK/32=2.25M, Master, PHASE0
    SPI1->CR2 = 0x1700;             //FIFO threshold: 8bit, Data size: 8bit, Motorola mode
    SPI1->CR1 |= 0x40;              //SPI enable
}

void SPI1_Dir_Sel(u8 mode)
{
    if(SPI_RX_MODE==mode)
    {
        SPI1->CR1 &= 0xbfff;
    }
    else        //TX mode
    {
        SPI1->CR1 |= 0x4000;
    }
}

u8 TFT_WR(u8 cmd, u8 *txdat, u16 len)
{
    u8 i;
    u16 cnt;
    ClrPin(LCD_CS);
    ClrPin(LCD_CD); //command
    /*cnt=0xffff;
    while((SPI1->SR)>=0xfff && cnt--);      //wait for TX FIFO empty
    if(0==cnt)
    {
        SetPin(LCD_CS);
        return FAIL;
    }*/
    SPI1->DR=cmd;   //send command
    Delay(20);
    SetPin(LCD_CD); //data
    for(i=0;i<len;i++)
    {
        /*cnt=0xffff;
        while((SPI1->SR)>=0xfff && cnt--);  //wait for TX FIFO empty
        if(0==cnt)
        {
            SetPin(LCD_CS);
            return FAIL;
        }*/
        Delay(20);
        SPI1->DR=*(txdat+i);
    }
    SetPin(LCD_CS);
    return OK;
}


u8 TFT_RD(u8 cmd, u8 *rxbuf, u16 len)
{
    u8 i;
    u16 cnt;
    /*cnt=0xffff;
    while((SPI1->SR)>=0xfff && cnt--);     //wait for TX FIFO empty
    if(0==cnt)
    {
        return FAIL;
    }*/
    ClrPin(LCD_CS);
    ClrPin(LCD_CD); //command
    Delay(0x100);
    SPI1->DR=cmd;                           //send read command
    /*while((SPI1->SR) & 0x600)               //wait untill RX FIFO empty
    {
        i=(u8)(SPI1->DR);
    }*/
    Delay(80);
    SPI1_Dir_Sel(SPI_RX_MODE);              //change direction for RX
    SetPin(LCD_CD); //data
    for(i=0;i<len;i++)
    {
        /*cnt=0xffff;
        while((SPI1->SR)>=0xfff && cnt--);  //wait for FIFO empty
        if(0==cnt)
        {
            SetPin(LCD_CS);
            SPI1_Dir_Sel(SPI_TX_MODE);      //change direction for TX(default)
            return FAIL;
        }*/
        Delay(80);
        SPI1->DR=0;
        *(rxbuf+i)=SPI1->DR;
    }
    SetPin(LCD_CS);
    SPI1_Dir_Sel(SPI_TX_MODE);              //change direction for TX(default)
    return OK;
}

SPI寄存器的值打出来如下:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
发表于 2023-2-3 08:49:56 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-3 09:50:38 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2023-2-8 22:21:56 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2023-9-26 23:50:36 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2023-9-27 08:26:37 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2023-9-27 08:41:30 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2023-9-27 09:38:14 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-27 12:47:01 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2023-9-27 14:35:52 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2023-9-27 18:48:35 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-27 22:57:08 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-27 22:59:20 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2023-9-28 09:10:34 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-28 12:40:24 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2023-9-30 22:13:47 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-12-17 05:56 , Processed in 0.249600 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表