RISC-V MCU中文社区

【求助】 关于spi的相关配置

发表于 开源蜂鸟E203 2022-03-30 09:44:54
2
1666
0

int32_t spi_start_transaction(SPI_TypeDef *spi, uint32_t trans_type, uint32_t csnum) {

if (__RARELY(spi == NULL)) {
    return -1;
}

spi->STATUS = ((1 << (csnum + 8)) & 0xF00) | ((1 << trans_type) & 0xFF);

return 0;

}

下面的写数据通过spi_start_transaction(SPI1, SPI_CMD_WR, SPI_CSN0)把片选置1启用片选。
但我通过示波器观察在发完一个数据片选会被拉高,它在哪配置的?我想一直拉低应该可以怎么操作。

void SPI_WR_DATA8(uint8_t data)
{
uint32_t wdata = ((uint32_t) data) << 24;

spi_set_datalen(SPI1, 8);            
spi_write_fifo(SPI1, &wdata, 8);
spi_start_transaction(SPI1, SPI_CMD_WR, SPI_CSN0);
while ((spi_get_status(SPI1) & 0xFFFF) != 1);

}

喜欢0
用户评论 (2)
  • 2022-04-02 18:31:55 1#

    胡灿

    用SPI里面的CS引脚,这个是IP自动来调节CS的。

    如果想自己操作CS引脚,可以用一个GPIO来操作就行,很多SPI例子都是用gpio来操作cs

    知道了,谢谢老师

  • 胡灿

    2022-04-02 09:41:13 胡灿 2#

    用SPI里面的CS引脚,这个是IP自动来调节CS的。

    如果想自己操作CS引脚,可以用一个GPIO来操作就行,很多SPI例子都是用gpio来操作cs

未通过实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板