[软件资料] cw32f003的spi参考初始化程序

[复制链接]
1067|10
 楼主| LOVEEVER 发表于 2024-11-14 17:16 | 显示全部楼层 |阅读模式
本帖最后由 LOVEEVER 于 2024-11-14 17:23 编辑

芯源cw32f003的spi参考初始化程序

  1. void SPI_FLASH_Init(void)
  2. {
  3.   SPI_InitTypeDef  SPI_InitStructure;
  4.   GPIO_InitTypeDef GPIO_InitStructure;
  5.        
  6. /************************GPIO Configuration***********************/
  7.   RCC_AHBPeriphClk_Enable(FLASH_SPI_SCK_GPIO_CLK | FLASH_SPI_MISO_GPIO_CLK | FLASH_SPI_MOSI_GPIO_CLK | FLASH_SPI_CS_GPIO_CLK, ENABLE);
  8.   RCC_APBPeriphClk_Enable2(RCC_APB2_PERIPH_SPI, ENABLE);

  9.   //SPI SCK MOSI MISO 复用
  10.   FLASH_SPI_AF_SCK;
  11.   FLASH_SPI_AF_MISO;  
  12.   FLASH_SPI_AF_MOSI;     

  13.   //CS
  14.   GPIO_InitStructure.Pins = FLASH_SPI_CS_GPIO_PIN;
  15.   GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
  16.   GPIO_Init(FLASH_SPI_CS_GPIO_PORT, &GPIO_InitStructure);

  17.   //SCK   
  18.   GPIO_InitStructure.Pins = FLASH_SPI_SCK_GPIO_PIN;
  19.   GPIO_Init(FLASH_SPI_SCK_GPIO_PORT, &GPIO_InitStructure);

  20.   //MOSI
  21.   GPIO_InitStructure.Pins = FLASH_SPI_MOSI_GPIO_PIN;
  22.   GPIO_Init(FLASH_SPI_MOSI_GPIO_PORT, &GPIO_InitStructure);

  23.   //MISO
  24.   GPIO_InitStructure.Pins = FLASH_SPI_MISO_GPIO_PIN;
  25.   GPIO_InitStructure.Mode = GPIO_MODE_INPUT;
  26.   GPIO_Init(FLASH_SPI_MISO_GPIO_PORT, &GPIO_InitStructure);

  27.   //拉高CS
  28.   FLASH_SPI_CS_HIGH();

  29.   /************************SPI Configuration***********************/
  30.   SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;    // 双线全双工
  31.   SPI_InitStructure.SPI_Mode = SPI_Mode_Master;                         // 主机模式
  32.   SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;                     // 帧数据长度为8bit
  33.   SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;                           // 时钟空闲电平为高
  34.   SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;                          // 第二个边沿采样
  35.   SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;                             // 片选信号由SSI寄存器控制
  36.   SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;    // 波特率为PCLK的8分频
  37.   SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;                    // 最高有效位 MSB 收发在前
  38.   SPI_InitStructure.SPI_Speed = SPI_Speed_Low;                          // 低速SPI
  39.   
  40.   SPI_Init(&SPI_InitStructure);
  41.   SPI_Cmd(ENABLE);
  42. }
小小蚂蚁举千斤 发表于 2024-11-22 09:31 来自手机 | 显示全部楼层
SPI参考程序学习
中国龙芯CDX 发表于 2024-11-24 19:25 | 显示全部楼层
SPI通讯了解一下
tpgf 发表于 2024-12-4 08:56 | 显示全部楼层
SPI采用主从模式架构,通常有一个主器件和一个或多个从器件,需要至少4根线:MISO、MOSI、SCK、CS
晓伍 发表于 2024-12-7 09:22 | 显示全部楼层
首先需要配置相关的IO口以及SPI的初始化,包括使能A端口时钟、设置GPIOA3,4,5为推挽输出模式、高速度输出,并初始化这些IO口
八层楼 发表于 2024-12-7 14:18 | 显示全部楼层
可以通过读取SPI的状态寄存器来监控通信状态,确保数据传输的正确性
观海 发表于 2024-12-7 18:29 | 显示全部楼层
SPI可用于连接外部存储器,如FLASH存储芯片,通过SPI接口进行数据的读写操作
guanjiaer 发表于 2024-12-7 20:45 | 显示全部楼层
在工业自动化领域,SPI常用于连接各种传感器,实现高速数据采集和传输
heimaojingzhang 发表于 2024-12-7 23:03 | 显示全部楼层
在复杂的嵌入式系统中,不同模块之间可以通过SPI接口进行高效的数据交换
AdaMaYun 发表于 2024-12-10 08:56 | 显示全部楼层
芯源的芯片SPI接口还是听普遍的,速率还是很快的
 楼主| LOVEEVER 发表于 2024-12-12 08:55 | 显示全部楼层
SPI的应用还是非常广泛的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

350

主题

2689

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部