st7735s SPI驱动显示图标

这篇博客详细介绍了如何使用STM32通过SPI接口驱动ST7735S LCD显示屏,并展示了如何显示图标。首先,文章列出了配置GPIO和SPI接口的代码,然后讲解了初始化LCD屏幕、发送命令和数据的函数,最后提供了显示图标的具体步骤和示例代码,包括蓝牙图标显示函数`show_bt()`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

st7735s SPI驱动代码如下:

#include "stm32f0xx.h"

#define LCD_SCK_PIN        GPIO_Pin_13
#define LCD_SCK_PORT       GPIOB
#define LCD_SCK_PIN_SCK    RCC_AHBPeriph_GPIOB
#define LCD_SCK_SOURCE     GPIO_PinSource13
#define LCD_SCK_AF         GPIO_AF_0


#define LCD_MISO_PIN       GPIO_Pin_14
#define LCD_MISO_PORT      GPIOB
#define LCD_MISO_PIN_SCK   RCC_AHBPeriph_GPIOB
#define LCD_MISO_SOURCE    GPIO_PinSource14
#define LCD_MISO_AF        GPIO_AF_0


#define LCD_MOSI_PIN       GPIO_Pin_15
#define LCD_MOSI_PORT      GPIOB
#define LCD_MOSI_PIN_SCK   RCC_AHBPeriph_GPIOB
#define LCD_MOSI_SOURCE    GPIO_PinSource15
#define LCD_MOSI_AF        GPIO_AF_0




#define LCD_SPI2               RCC_APB1Periph_SPI2
#define SPI_LCD_CS_LOW()       GPIO_ResetBits(GPIOB, GPIO_Pin_12)
#define SPI_LCD_CS_HIGH()      GPIO_SetBits(GPIOB, GPIO_Pin_12)
#define LCD_CS_PORT GPIOB
#define LCD_CS_PIN GPIO_Pin_12




#define SPI_LCD_REST()       GPIO_ResetBits(GPIOA, GPIO_Pin_6)
#define SPI_LCD_NO_REST()     GPIO_SetBits(GPIOA, GPIO_Pin_6)


#define SPI_LCD_DATA_W()       GPIO_ResetBits(GPIOA, GPIO_Pin_7)
#define SPI_LCD_DATA_R()       GPIO_SetBits(GPIOA, GPIO_Pin_7)




#define uchar unsigned char 
#define uint  unsigned int
#define Height 128
#define Width   128
#define RED     0xf800
#define GREEN   0x07e0
#define BLUE   0x001f
#define YELLOW 0xffe0
#define WHITE   0xffff
#define BLACK   0x0000
#define PURPLE 0xf81f




/*******************************************************************************
* Function Name  : SPI_FLASH_Init
* Description    : Initializes the peripherals used by the SPI FLASH driver.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void lcd_Init(void)
{
  GPIO_InitTypeDef  GPIO_InitStruct;
  SPI_InitTypeDef   SPI_InitStruct;




  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA| RCC_AHBPeriph_GPIOB, ENABLE);

  RCC_APB1PeriphClockCmd(LCD_SPI2, ENABLE); 

GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;                 
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; 
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; 
GPIO_Init(GPIOA, &GPIO_InitStruct);        


  /*!< Configure SD_SPI pins: SCK */
  GPIO_InitStruct.GPIO_Pin = LCD_SCK_PIN;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;
  GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_UP; 
  GPIO_Init(LCD_SCK_PORT, &GPIO_InitStruct);


  /*!< Configure SD_SPI pins: MISO */
  GPIO_InitStruct.GPIO_Pin = LCD_MISO_PIN;
  GPIO_Init(LCD_MISO_PORT, &GPIO_InitStruct);


  /*!< Configure SD_SPI pins: MOSI */
  GPIO_InitStruct.GPIO_Pin =LCD_MOSI_PIN;
  GPIO_Init(LCD_MOSI_PORT, &GPIO_InitStruct);
  
  /* Connect PXx to SD_SPI_SCK */
  GPIO_PinAFConfig(LCD_SCK_PORT, LCD_SCK_SOURCE, LCD_SCK_AF);


  /* Connect PXx to SD_SPI_MISO */
  GPIO_PinAFConfig(LCD_MISO_PORT, LCD_MISO_SOURCE, LCD_MISO_AF); 


  /* Connect PXx to SD_SPI_MOSI */
  GPIO_PinAFConfig(LCD_MOSI_PORT, LCD_MOSI_SOURCE, LCD_MOSI_AF);


/*!< Configure SD_SPI_CS_PIN pin: SD Card CS pin */
  GPIO_InitStruct.GPIO_Pin =LCD_CS_PIN;
  GPIO_InitStruct.GPIO_Mode =

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值