打印
[学习资料]

SPI的DC和CS讲解

[复制链接]
490|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huahuagg|  楼主 | 2024-7-20 15:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CS, spi, pi, dc
先看一段代码

void ST7735_Reset(void)
{
  HAL_GPIO_WritePin(ST7735_RST_GPIO_Port, ST7735_RST_Pin, GPIO_PIN_RESET);
  HAL_Delay(100);
  HAL_GPIO_WritePin(ST7735_RST_GPIO_Port, ST7735_RST_Pin, GPIO_PIN_SET);
  HAL_Delay(100);
}

void ST7735_WriteCommand(uint8_t cmd)
{
  HAL_GPIO_WritePin(ST7735_DC_GPIO_Port, ST7735_DC_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_RESET);
       
//  HAL_SPI_Transmit(&ST7735_SPI_INSTANCE, &cmd, 1, HAL_MAX_DELAY);
        ST7735_SPI_SendByte(cmd);

  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_SET);
}

void ST7735_WriteByte(uint8_t data)
{
  HAL_GPIO_WritePin(ST7735_DC_GPIO_Port, ST7735_DC_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_RESET);

//  HAL_SPI_Transmit(&ST7735_SPI_INSTANCE, &data, 1, HAL_MAX_DELAY);
        ST7735_SPI_SendByte(data);
       
  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_SET);
}

void ST7735_WriteData(uint8_t *data, size_t data_size)
{
  HAL_GPIO_WritePin(ST7735_DC_GPIO_Port, ST7735_DC_Pin, GPIO_PIN_SET);       
  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_RESET);
       
//  HAL_SPI_Transmit(&ST7735_SPI_INSTANCE, data, data_size, HAL_MAX_DELAY);
       
        for(int i=0;i<data_size;i++) ST7735_SPI_SendByte(*(data+i));
       
  HAL_GPIO_WritePin(ST7735_CS_GPIO_Port, ST7735_CS_Pin, GPIO_PIN_SET);
}
注意到这里面多次出现的DC和CS。
CS是片选,拉低有效,在操作时候先拉低。操作结束在拉高。
DC呢,就是数据与命令选择的意思,注意D和C,Data;C,Command
DC对应高低电平
当DC为高电平时候表示当前发送数据(D)
当DC为低电平时候表示当前发送命令(C)
这么一说是不是很容易理解了。

使用特权

评论回复
沙发
mintspring| | 2024-7-21 20:17 | 只看该作者
那么发送数据该用哪个函数呢

使用特权

评论回复
板凳
dongnanxibei| | 2024-7-24 21:59 | 只看该作者
看着像32的代码。

使用特权

评论回复
地板
LEDyyds| | 2024-7-25 10:27 | 只看该作者
有DC这玩意吗,只听过CS

使用特权

评论回复
5
小明的同学| | 2024-7-27 17:22 | 只看该作者
CS其实直接拉低就行了,根本不用浪费一个IO。

使用特权

评论回复
6
小明的同学| | 2024-7-27 17:22 | 只看该作者
DC就是切换数据和指令的

使用特权

评论回复
7
小明的同学| | 2024-7-27 17:23 | 只看该作者
所以我有个建议,就是可以给CS一个预留直接拉低的选项。
放给0电阻位置到地。

使用特权

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

本版积分规则

133

主题

1230

帖子

2

粉丝