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

STM32F1基于STM32CubeMX配置硬件SPI驅(qū)動1.8寸TFT LCD128X160 ST7735S屏幕

這篇具有很好參考價值的文章主要介紹了STM32F1基于STM32CubeMX配置硬件SPI驅(qū)動1.8寸TFT LCD128X160 ST7735S屏幕。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

STM32F1基于STM32CubeMX配置硬件SPI驅(qū)動1.8寸TFT LCD128X160 ST7735S屏幕


  • ??相關篇《【STM32CubeIDE】STM32F103硬件SPI驅(qū)動1.8寸TFT LCD128X160 ST7735S屏幕》

?驅(qū)動效果就不做演示了,和上面的相關篇一樣,主要是為了方便使用MDK Keil開發(fā)的使用。所以花了點時間從上面的工程當中做了分離,重新使用STM32CubeMX配置一個方便二次開發(fā)移植使用和配置的工程。本資源僅僅配置了SPI2的只發(fā)送主機模式。

st7735s數(shù)據(jù)選擇dc引腳對應屏的哪個引腳,STM32CubeMX自動配置工程系列,stm32,STM32CubeMX,ST7735S屏幕文章來源地址http://www.zghlxwxcb.cn/news/detail-773517.html

  • ??1.8寸TFT LCD128X160 ST7735S SPI屏
    st7735s數(shù)據(jù)選擇dc引腳對應屏的哪個引腳,STM32CubeMX自動配置工程系列,stm32,STM32CubeMX,ST7735S屏幕
  • ??工程架構(gòu)
    st7735s數(shù)據(jù)選擇dc引腳對應屏的哪個引腳,STM32CubeMX自動配置工程系列,stm32,STM32CubeMX,ST7735S屏幕

??引腳定義

  • ??采用的是硬件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       //復位引腳RES        PB12
#define LCD_BLK         8        //背光引腳 (可以不接,或接3.3V)      PA8

  • ??當然你也可以根據(jù)個人使用情況,除了硬件SPI引腳MOSI(SDA)、SCK時鐘信號引腳不可以隨意改動,其他引腳定義可以任意指定更換。

??主程序代碼

/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.c
  * @brief          : Main program body
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2023 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */
/* 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)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		  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 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 */

??工程源碼

鏈接: https://pan.baidu.com/s/1s-NId5mQ7bAabDe4E5ExGg
提取碼: jx7r

到了這里,關于STM32F1基于STM32CubeMX配置硬件SPI驅(qū)動1.8寸TFT LCD128X160 ST7735S屏幕的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • STM32F103硬件SPI驅(qū)動ADS1256

    STM32F103硬件SPI驅(qū)動ADS1256

    最近實驗室有幾個項目都需要用到高分辨率AD轉(zhuǎn)換,于是就開始了ADS1256的開發(fā)。 新手,焊得丑,見諒(能用就行) 二: 本以為很容易就能做完,結(jié)果被采樣速率的問題困擾了很久。 代碼如下,使用2.5V基準源進行測試,結(jié)果在讀ADS時經(jīng)常出現(xiàn)讀出0xFFFFFF的情況,只能忍住悲傷

    2024年02月12日
    瀏覽(112)
  • 單片機:STM32F4x HAL庫軟硬SPI驅(qū)動ST7735s 1.8寸LCD屏幕

    單片機:STM32F4x HAL庫軟硬SPI驅(qū)動ST7735s 1.8寸LCD屏幕

    說明:此篇為學習記錄??赡艽嬖阱e誤或者不足。如有問題請指出。 主控芯片:STM32F411CEU6 主控開發(fā)板:WeAct STM32F411CEU6最小系統(tǒng)板 TFT-LCD屏幕:合宙1.8寸TFT-LCD,驅(qū)動為ST7735s MDK版本:5,32 HAL庫版本:1.27.1 STM32CubeMX版本:6.7.0 ST7735s支持8080并口,3線和4線串行接口,模塊的驅(qū)動方

    2024年02月03日
    瀏覽(30)
  • 基于STM32F1以及STM32CubeMx實現(xiàn)串口中斷通訊(字符串發(fā)送與接收)

    基于STM32F1以及STM32CubeMx實現(xiàn)串口中斷通訊(字符串發(fā)送與接收)

    首先選好自己的板子并打開軟件設置,本實驗基于STM32F103ZET6實現(xiàn),打開軟件后如圖: 打開外部高速晶振,然后接著配置時鐘: 將時鐘頻率修改為72MHz,接著設置接線方式為SW 接下來需要使用串口中斷通訊,打開我們的串口設置并打開中斷 這里波特率設置為115200,數(shù)據(jù)位為

    2024年02月09日
    瀏覽(25)
  • 基于stm32F1的藍牙控制小車 全硬件代碼開源

    基于stm32F1的藍牙控制小車 全硬件代碼開源

    ? ?“基于stm32F1的藍牙控制小車”由L898N電機驅(qū)動模塊、電源管理模塊、stm32f1主控模塊、藍牙串口通信模塊。電機驅(qū)動模塊使用了兩個L298N芯片來驅(qū)動4路電機,使能端連接4路來自主控板的電平信號;電源管理模塊使用了LM2940-5.0芯片進行12V到5V的轉(zhuǎn)換,12V用于電機模塊的供電,

    2023年04月20日
    瀏覽(25)
  • 基于STM32F103ZET6使用STM32CubeMX配置FSMC模塊驅(qū)動LCD屏(基于正點原子歷程)

    基于STM32F103ZET6使用STM32CubeMX配置FSMC模塊驅(qū)動LCD屏(基于正點原子歷程)

    在學習STM32的過程中,剛好學到了LCD屏,我使用的是STM32F103ZET6,屏幕是正點原子的。但是在我自己新建工程點亮顯示LCD屏時遇到了很多問題。解決之后分享在此,希望能幫助到遇到此困惑的朋友。 想要快速驅(qū)動LCD屏請直接跳轉(zhuǎn)到CubeMX配置 FSMC全名叫可變靜態(tài)存儲控制器(Fle

    2024年02月15日
    瀏覽(50)
  • 【STM32】BLDC驅(qū)動&控制開發(fā)筆記 | 07_SPI通信測試 - STM32F407用SPI配置DRV8323驅(qū)動芯片

    【STM32】BLDC驅(qū)動&控制開發(fā)筆記 | 07_SPI通信測試 - STM32F407用SPI配置DRV8323驅(qū)動芯片

    最近在埋頭搞STM32 + 無刷直流電機控制,想實現(xiàn)用自己的STM32F407VGT6芯片板子,外加一塊驅(qū)動板(目前選用到TI的DRV8302或者DRV8323驅(qū)動芯片),搞定電機驅(qū)動,最后實現(xiàn)比較好的控制效果。如果不是同一塊芯片的同學也不用急著走,大體上都是可借鑒噠~ 本文主要實現(xiàn)使用SPI通信

    2024年02月08日
    瀏覽(34)
  • STM32F429IGT6使用CubeMX配置SPI通信(W25Q256芯片)

    STM32F429IGT6使用CubeMX配置SPI通信(W25Q256芯片)

    1、硬件電路 需要系統(tǒng)性的看一下W25Q256芯片手冊? 2、設置RCC,選擇高速外部時鐘HSE,時鐘設置為180MHz 3、配置SPI 4、生成工程配置 ? 5、讀寫流程圖 5、相關代碼 6、實驗現(xiàn)象 沒有問題!

    2024年02月12日
    瀏覽(41)
  • 【DRV8323】電機驅(qū)動芯片寄存器配置指南,通過STM32F407的SPI通信配置

    【DRV8323】電機驅(qū)動芯片寄存器配置指南,通過STM32F407的SPI通信配置

    筆者計劃使用一塊使用到STM32F407控制芯片與DRV8323s驅(qū)動芯片的板子,驅(qū)動BLDC。了解到需要使用SPI通信來配置DRV8323s驅(qū)動芯片,配置過程中涉及DRV8323數(shù)據(jù)手冊中提及的幾個寄存器,故寫此文做個記錄。 另外,DRV8323芯片和DRV8302、DRV8303、DRV8353都有極大的相似之處,可以相互參考

    2024年02月02日
    瀏覽(90)
  • 4針0.96寸OLED的HAL庫代碼(硬件I2C/全代碼/stm32f1/CubeMX配置/包含有正負浮點數(shù)/100%一次點亮)

    4針0.96寸OLED的HAL庫代碼(硬件I2C/全代碼/stm32f1/CubeMX配置/包含有正負浮點數(shù)/100%一次點亮)

    一、HC-SR04超聲波模塊的使用 二、4針OLED的HAL庫代碼介紹及使用(本篇) 三、7針OLED的HAL庫代碼介紹及使用 四、編碼電機以及雙電機驅(qū)動 更多有意思的文章點擊“我的主頁” --------?? 更多有意思的視頻 ----- B站 @想要億只獨角獸 --------?? 之前在做一些小項目時用到了OLED,到

    2024年02月10日
    瀏覽(30)
  • STM32CubeMX生成C代碼及時鐘樹配置(基于stm32f407)

    STM32CubeMX生成C代碼及時鐘樹配置(基于stm32f407)

    近來對于stm32單片機編程中,HAL庫逐漸取代標準庫成為主流的庫。標準庫支持的芯片型號有限,而且目前已經(jīng)停止支持,而HAL庫支持所有類型的芯片,可移植性也很高,再加上有神器STM32Cube可以生成工程模板,越來越多的編程開始從使用標準庫轉(zhuǎn)到使用HAL庫。 新建工程后,在

    2024年02月15日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包