[PIC®/AVR®/dsPIC®产品] SPI的配置方式

[复制链接]
 楼主| 发表于 2024-7-23 21:38 | 显示全部楼层 |阅读模式
TE, ck, sy, spi, pi
  1.     /*---------------------------------------------------------------------------------------------------------*/
  2.     /* Init SPI                                                                                                */
  3.     /*---------------------------------------------------------------------------------------------------------*/
  4.     /* Configure as a master, clock idle low, 32-bit transaction, drive output on falling clock edge and latch input on rising edge. */
  5.     /* Set IP clock divider. SPI clock rate = 2 MHz */
  6.     SPI_Open(SPI0, SPI_MASTER, SPI_MODE_0, 32, 2000000);
  1.     /* Select HCLK as the clock source of SPI0 */
  2.     CLK_SetModuleClock(SPI0_MODULE, CLK_CLKSEL1_SPI0_S_HCLK, MODULE_NoMsk);

  3.     /* Enable SPI0 peripheral clock */
  4.     CLK_EnableModuleClock(SPI0_MODULE);

  1.     /* Setup SPI0 multi-function pins */
  2.     SYS->P0_MFP &= ~(SYS_MFP_P04_Msk | SYS_MFP_P05_Msk | SYS_MFP_P06_Msk | SYS_MFP_P07_Msk);
  3.     SYS->P0_MFP |= (SYS_MFP_P04_SPISS | SYS_MFP_P05_MOSI | SYS_MFP_P06_MISO | SYS_MFP_P07_SPICLK);



最后就可以用发送函数了
  1.             /* Write to TX register */
  2.             SPI_WRITE_TX0(SPI0, g_au32SourceData[u32DataCount]);
  3.             /* Trigger SPI data transfer */
  4.             SPI_TRIGGER(SPI0);
  5.             /* Check SPI0 busy status */
  6.             while(SPI_IS_BUSY(SPI0));
发送,触发,判断是否发送完成。
 楼主| 发表于 2024-7-23 21:46 | 显示全部楼层
本帖最后由 稳稳の幸福 于 2024-7-27 17:00 编辑

库函数真好用。
发表于 2025-6-23 23:18 | 显示全部楼层
SPI 配置使用库函数可大幅简化代码,减少底层操作,提升开发效率;同时增强兼容性与可维护性,降低出错风险。真是不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

203

主题

3409

帖子

8

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