打印

gd32 spi没有时钟信号,但是mosi输出正常

[复制链接]
1006|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tealer|  楼主 | 2022-4-13 14:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tealer 于 2022-4-13 14:51 编辑

如题,按照gd官方的例程,spi mosi发送的数据是正确的,但是sck时钟信号在发送和空闲时都一直为高,下面是代码
void spi_config(void)
{
    spi_parameter_struct spi_init_struct;

    /* SPI0 parameter config */
    spi_init_struct.trans_mode           = SPI_TRANSMODE_FULLDUPLEX;
    spi_init_struct.device_mode          = SPI_MASTER;
    spi_init_struct.frame_size           = SPI_FRAMESIZE_8BIT;
    spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_1EDGE; // spi mode 0
    spi_init_struct.nss                  = SPI_NSS_SOFT;
    spi_init_struct.prescale             = SPI_PSC_256;
    spi_init_struct.endian               = SPI_ENDIAN_MSB;
        
    spi_init(SPI0, &spi_init_struct);
}

void spi_gpio_config(void)
{
    /* SPI0 GPIO config:SCK/PA5, MISO/PA6, MOSI/PA7 */
    gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5 | GPIO_PIN_7);
    gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
    /* PA4 as NSS */
    gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_4);
   
}

void spi_clock_config(void)
{
        rcu_deinit();
        rcu_periph_clock_enable(RCU_GPIOA);
    rcu_periph_clock_enable(SPI0);
    rcu_periph_clock_enable(RCU_AF);
}

void gpioTask2(void* args)
{
        spi_clock_config();
        spi_gpio_config();
        spi_config();
        
        gpio_bit_set(GPIOA, GPIO_PIN_4); // nss high
        
        // spi enable
        spi_enable(SPI0);
        
        gpio_bit_reset(GPIOA, GPIO_PIN_4); // nss low

        // 任务2
        while(1)
        {
                /* clock freq 120mhz
                 * AHB freq 120mhz
                 * APB1 Freq 60mhz
                 * APB2 freq 120mhz
                */

                while(spi_i2s_flag_get(SPI0, SPI_FLAG_TBE) == RESET); // write
                spi_i2s_data_transmit(SPI0, (uint8_t)0x01);
               
        }

        gpio_bit_set(GPIOA, GPIO_PIN_4); // nss high
}


使用特权

评论回复
沙发
tealer|  楼主 | 2022-4-13 14:51 | 只看该作者
已经找到原因了 rcu_periph_clock_enable(RCU_SPI0);写错成了 rcu_periph_clock_enable(SPI0);

使用特权

评论回复
板凳
tpgf| | 2022-5-3 16:49 | 只看该作者
用的几线制的啊

使用特权

评论回复
地板
aoyi| | 2022-5-3 16:56 | 只看该作者
硬件连接检查了吗

使用特权

评论回复
5
nawu| | 2022-5-3 17:13 | 只看该作者
还得确认外部连接有没有问题

使用特权

评论回复
6
zljiu| | 2022-5-3 18:00 | 只看该作者
mosi信号和预期值一样吗

使用特权

评论回复
7
gwsan| | 2022-5-3 18:03 | 只看该作者
代码很正常啊

使用特权

评论回复
8
tfqi| | 2022-5-3 18:19 | 只看该作者
是不是模式设置的不对啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝