打印
[APM32F1]

SPI配置主模式 SCL可以输出时钟信号,SDA确没有数据

[复制链接]
413|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
你ONE了|  楼主 | 2024-9-29 15:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序配置如下,有哪位大佬有时间看下吗 ?
void SPI_FullDuplex_Init()
{
    GPIO_Config_T gpioConfig;
    SPI_Config_T spiConfig;

    /* Enable related Clock */
    RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_SPI1);
    RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_GPIOA);

    /* config PIN_6  MISO */
    gpioConfig.pin =  GPIO_PIN_6 ;
    gpioConfig.mode = GPIO_MODE_AF_PP;
    gpioConfig.speed = GPIO_SPEED_50MHz;
    GPIO_Config(GPIOA, &gpioConfig);

    /* config PIN_5->SCK , PIN_7->MOSI */
    gpioConfig.pin = GPIO_PIN_5 | GPIO_PIN_7;
    gpioConfig.mode = GPIO_MODE_AF_PP;
    gpioConfig.speed = GPIO_SPEED_50MHz;
    GPIO_Config(GPIOA, &gpioConfig);

    SPI_ConfigStructInit(&spiConfig);

    spiConfig.length = SPI_DATA_LENGTH_16B;

    spiConfig.baudrateDiv = SPI_BAUDRATE_DIV_32;
    /* 2 line full duplex */
    spiConfig.direction = SPI_DIRECTION_1LINE_TX;
    /* LSB first */
    spiConfig.firstBit = SPI_FIRSTBIT_MSB;
    /* Slave mode */
    spiConfig.mode = SPI_MODE_MASTER;
    /* Polarity is low */
    spiConfig.polarity = SPI_CLKPOL_LOW;
    /*  Software select slave enable  */
    spiConfig.nss = SPI_NSS_SOFT;
    /* Phase is 1 edge */
    spiConfig.phase = SPI_CLKPHA_1EDGE;
    /* SPI config */
    SPI_Config(SPI1, &spiConfig);

    SPI_ConfigDataSize(SPI1, SPI_DATA_LENGTH_16B);

    SPI_Enable(SPI1);
}

使用特权

评论回复
沙发
你ONE了|  楼主 | 2024-9-29 15:25 | 只看该作者
如图,1通道是单片机SDA;2通道是单片机SCL;每50ms调用一次函数,对应数据发送一次
void SpiTransmit (void)
{
       
        if(SET == SPI_I2S_ReadStatusFlag(SPI1, SPI_FLAG_TXBE))
        {
               
                SPI_I2S_TxData(SPI1, 0xaaaa);
        }
}

使用特权

评论回复
板凳
你ONE了|  楼主 | 2024-9-29 15:46 | 只看该作者
好了  已解决

使用特权

评论回复
地板
classroom| | 2024-10-8 15:18 | 只看该作者
你这解决速度挺快的嘛,广大网友还没来得及给你出谋划策了

使用特权

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

本版积分规则

2

主题

4

帖子

0

粉丝