国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【STM32CubeIDE】STM32F103硬件SPI驅(qū)動(dòng)1.8寸TFT LCD128X160 ST7735S屏幕

這篇具有很好參考價(jià)值的文章主要介紹了【STM32CubeIDE】STM32F103硬件SPI驅(qū)動(dòng)1.8寸TFT LCD128X160 ST7735S屏幕。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【STM32CubeIDE】STM32F103硬件SPI驅(qū)動(dòng)1.8寸TFT LCD128X160 ST7735S


?雖然STM32CubeIDE也是基于HAL庫(kù),但是還是不能直接轉(zhuǎn)Keil MDK工程,本驅(qū)動(dòng)案例從GitHub下載來(lái)的,原始工程使用的是較老版本的STM32CubeIDE配置的,沒(méi)法在繼續(xù)在新版本上程序配置,工程只是做了初始化配置。程序并不能直接被點(diǎn)亮,重新配置了lcd初始化函數(shù)以及復(fù)位函數(shù)后,才點(diǎn)被亮屏幕,同時(shí)調(diào)整好了屏幕顯示像素便宜的問(wèn)題。點(diǎn)亮屏幕是關(guān)鍵,后續(xù)可以很方便移植到Keil MDK環(huán)境下開(kāi)發(fā)使用。
  • ??Github原工程地址:https://github.com/cat-bear-get/LCD_SPI

  • ??驅(qū)動(dòng)顯示效果
    st7735s驅(qū)動(dòng),STM32CubeMX自動(dòng)配置工程系列,stm32,ST7735S屏幕,1.8寸屏幕

  • ??1.8寸TFT LCD128X160 ST7735S SPI屏
    st7735s驅(qū)動(dòng),STM32CubeMX自動(dòng)配置工程系列,stm32,ST7735S屏幕,1.8寸屏幕文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-517075.html

??引腳定義

  • ??采用的是硬件SPI2:MOSI(SDA):PB15,SCK:PB13
//引腳定義
#define GPIO_TYPE    GPIOB
#define LCD_CS          11       //片選CS引腳        PB11
#define LCD_RS          10        //寄存器/數(shù)據(jù)選擇DC引腳 PB10
#define LCD_RST         12       //復(fù)位引腳RES        PB12
#define LCD_BLK         8        //背光引腳 (可以不接,或接3.3V)      PA8

??主程序代碼

/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.c
  * @brief          : Main program body
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
  * All rights reserved.</center></h2>
  *
  * This software component is licensed by ST under BSD 3-Clause license,
  * the "License"; You may not use this file except in compliance with the
  * License. You may obtain a copy of the License at:
  *                        opensource.org/licenses/BSD-3-Clause
  *
  ******************************************************************************
  */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "spi.h"
#include "gpio.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "lcd.h"
/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */

/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */

/* USER CODE END PM */

/* Private variables ---------------------------------------------------------*/

/* USER CODE BEGIN PV */

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_SPI2_Init();
  /* USER CODE BEGIN 2 */
  LCD_Init();
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
      LCD_Clear(WHITE);
      HAL_Delay(1000);
      LCD_Draw_Circle(50,50,45,RED);
      HAL_Delay(1000);
      LCD_Clear(RED);
      HAL_Delay(1000);
      Demo_Menu();
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */
}

/**
  * @brief System Clock Configuration
  * @retval None
  */
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Initializes the RCC Oscillators according to the specified parameters
  * in the RCC_OscInitTypeDef structure.
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }
  /** Initializes the CPU, AHB and APB buses clocks
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  {
    Error_Handler();
  }
}

/* USER CODE BEGIN 4 */

/* USER CODE END 4 */

/**
  * @brief  This function is executed in case of error occurrence.
  * @retval None
  */
void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */
  __disable_irq();
  while (1)
  {
  }
  /* USER CODE END Error_Handler_Debug */
}

#ifdef  USE_FULL_ASSERT
/**
  * @brief  Reports the name of the source file and the source line number
  *         where the assert_param error has occurred.
  * @param  file: pointer to the source file name
  * @param  line: assert_param error line source number
  * @retval None
  */
void assert_failed(uint8_t *file, uint32_t line)
{
  /* USER CODE BEGIN 6 */
  /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  /* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

??工程源碼

  • ??修改后能被點(diǎn)亮的代碼,不是github原工程。

鏈接: https://pan.baidu.com/s/1Sujpt7QbbkKZyyofeU0xEg
提取碼: jnep

到了這里,關(guān)于【STM32CubeIDE】STM32F103硬件SPI驅(qū)動(dòng)1.8寸TFT LCD128X160 ST7735S屏幕的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用STM32F103的SPI+DMA驅(qū)動(dòng)ws2812 LED

    使用STM32F103的SPI+DMA驅(qū)動(dòng)ws2812 LED

    目錄 前言 一、WS2812協(xié)議 1.1 數(shù)據(jù)傳輸編碼方式: ?1.2 傳輸?shù)臄?shù)據(jù)結(jié)構(gòu) 二、驅(qū)動(dòng)方式:SPI+DMA 2.1 原理介紹 2.2 SPI+DMA操作 ?2.3 編寫(xiě)代碼 2.4 使用 三 總結(jié) 參考文章 主要使用的STM32F103C8T6芯片的SPI+DMA方式實(shí)現(xiàn)WS2812的驅(qū)動(dòng)協(xié)議,總體可以看作是使用SPI來(lái)實(shí)現(xiàn)一種通信協(xié)議來(lái)發(fā)送信號(hào)。

    2024年02月09日
    瀏覽(30)
  • STM32F103硬件SPI控制6針/7針0.96寸OLED顯示屏

    STM32F103硬件SPI控制6針/7針0.96寸OLED顯示屏

    OLED主要參數(shù) 1、高分辨率:128 64(和12864LCD相同分辨率,但該OLED屏的單位面積像素點(diǎn)多)。 2、廣可視角度:大于160°。 3、低功耗:正常顯示時(shí)0.04W。 4、寬供電范圍:直流3.3V-5V。 5、工業(yè)級(jí):工作溫度范圍-30°℃~70°℃。 6、體積?。?8.8mm 28.5mm。 7、通信方式:lIC、SPI。 8、亮

    2024年02月17日
    瀏覽(23)
  • GD32F103 硬件SPI通信

    GD32F103 硬件SPI通信

    SPI既可以做主機(jī)也可以做從機(jī)。 當(dāng)做主機(jī)時(shí)。MOSI,SCK,CS都是作為輸出。?而作為從機(jī)時(shí)。MOSI,SCK,CS都是作為輸入。 ?所以SPI的硬件電路應(yīng)該實(shí)現(xiàn)這樣的功能。 1. GD32框圖 如下圖做主機(jī)的數(shù)據(jù)流向: ? 如下圖做從機(jī)的數(shù)據(jù)流向:? ? 2. STM32框圖? 通過(guò)一些寄存器的配置來(lái)控制

    2024年02月02日
    瀏覽(24)
  • STM32F103C8T6—庫(kù)函數(shù)應(yīng)用I2C/SPI驅(qū)動(dòng)OLED顯示中文、字符串

    STM32F103C8T6—庫(kù)函數(shù)應(yīng)用I2C/SPI驅(qū)動(dòng)OLED顯示中文、字符串

    I2C(Inter-Integrated Circuit) SPI(Serial Peripheral Interface) 傳輸方式 半雙工 全雙工 傳輸速度 低速,100Kbps----4Mbps 高速,30Mbps以上 幾線制 4線制:VCC,GND,SCL,SDA 6/7線制:VCC,GND,SCLK(D0),MOSI(D1/SDA),DC,CS/SS 主從模式 多主機(jī)總線,通過(guò)SDA上的地址信息鎖定從機(jī) 只有一個(gè)主機(jī),主

    2024年02月02日
    瀏覽(26)
  • STM32開(kāi)發(fā)(二十三)STM32F103 高級(jí)外設(shè) —— TFT_LCD屏框架以及填充顏色 詳解

    ??《上一篇》 ???《主目錄》 ???《下一篇》

    2024年02月06日
    瀏覽(33)
  • STM32開(kāi)發(fā)(十)STM32F103 通信 —— SPI通信編程詳解

    ??《上一篇》 ???《主目錄》 ???《下一篇》 本實(shí)驗(yàn)通過(guò)STM32F103 的SPI功能,實(shí)現(xiàn)對(duì)W25Q64JVSSIQ (Flash芯片)芯片擦除,讀數(shù)據(jù),寫(xiě)數(shù)據(jù)等操作。 本實(shí)驗(yàn)內(nèi)容知識(shí)點(diǎn): 1、SPI通信協(xié)議介紹 2、

    2024年02月07日
    瀏覽(25)
  • STM32CubeIDE + HAL + STM32f103C8T6 系列教程1 ---板載PC13LED閃爍

    STM32CubeIDE + HAL + STM32f103C8T6 系列教程1 ---板載PC13LED閃爍

    之前的系列教程都是基于Arduino的,但是公司招聘51和stm32的開(kāi)發(fā)還是多些,所以特別開(kāi)了一個(gè)stm32的系列。 這個(gè)系列特點(diǎn)是注重了 Arduino 編程思維和習(xí)慣下向STM32開(kāi)發(fā)的過(guò)渡 。前期沒(méi)有涉及到太多寄存器相關(guān)的知識(shí),利用HAL庫(kù)和STM32CubeIDE快速入手STM32的數(shù)字輸入/輸出、模擬輸

    2024年02月16日
    瀏覽(20)
  • 嵌入式硬件——stm32F103C8T6

    嵌入式硬件——stm32F103C8T6

    如下圖:? ? 處理器核心:STM32F103C8T6內(nèi)置了ARM Cortex-M3處理器,這是一種高性能、低功耗的32位RISC處理器,適用于嵌入式系統(tǒng)。 時(shí)鐘速度:它可以工作在不同的時(shí)鐘速度,最高主頻可達(dá)72 MHz。 存儲(chǔ)器:包括64KB的Flash程序存儲(chǔ)器用于存儲(chǔ)程序代碼,以及20KB的SRAM用于存儲(chǔ)數(shù)據(jù)和

    2024年02月05日
    瀏覽(125)
  • STM32F103驅(qū)動(dòng)oled顯示屏

    STM32F103驅(qū)動(dòng)oled顯示屏

    oled顯示屏和其他顯示屏類(lèi)似,不過(guò)他只有0.96英寸,屏幕較小,但是使用起來(lái)比較方便。有二種驅(qū)動(dòng)方式,分別為IIC,和SPI驅(qū)動(dòng)。驅(qū)動(dòng)方式比較簡(jiǎn)單。IIC驅(qū)動(dòng)的話只需要4根線,電源,地線,數(shù)據(jù)線,和時(shí)鐘線。 我這里使用的是IIC協(xié)議驅(qū)動(dòng)oled顯示屏,如果想了解IIC協(xié)議的可以看

    2024年02月11日
    瀏覽(40)
  • 【開(kāi)源硬件篇】STM32F103C8T6核心板

    【開(kāi)源硬件篇】STM32F103C8T6核心板

    一、STM32F103C8T6芯片 1.1 STM32F103C8T6簡(jiǎn)介 ? STM32F103C8T6是一款由意法半導(dǎo)體公司(ST)推出的基于Cortex-M3內(nèi)核的32位微控制器,硬件采用LQFP48封裝。 ? 具體參數(shù)為: 64K x 8bit的Flash 20K x 8bit的SRAM 37個(gè)GPIO,分別為PA0-PA15、PB0-PB15、PC13-PC15、PD0-PD1 2個(gè)12bit ADC合計(jì)12路通道,外部通道:

    2024年02月03日
    瀏覽(86)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包