久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3029|回復: 0
打印 上一主題 下一主題
收起左側

STM32F429 GT811觸摸芯片驅動源碼

[復制鏈接]
跳轉到指定樓層
樓主
Project Settings :
Project Name : STM32F746I
Project Folder : C:\Users\Administrator\Desktop\3.touch 1024x600 GT811
Toolchain / IDE : MDK-ARM V5
Firmware Package Name and Version : STM32Cube FW_F7 V1.3.0

touch 1024x600 GT811源碼包:


單片機源程序如下:
  1. /**
  2.   ******************************************************************************
  3.   * File Name          : main.c
  4.   * Description        : Main program body
  5.   ******************************************************************************
  6.   *
  7.   * COPYRIGHT(c) 2016 STMicroelectronics
  8.   *
  9.   * Redistribution and use in source and binary forms, with or without modification,
  10.   * are permitted provided that the following conditions are met:
  11.   *   1. Redistributions of source code must retain the above copyright notice,
  12.   *      this list of conditions and the following disclaimer.
  13.   *   2. Redistributions in binary form must reproduce the above copyright notice,
  14.   *      this list of conditions and the following disclaimer in the documentation
  15.   *      and/or other materials provided with the distribution.
  16.   *   3. Neither the name of STMicroelectronics nor the names of its contributors
  17.   *      may be used to endorse or promote products derived from this software
  18.   *      without specific prior written permission.
  19.   *
  20.   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21.   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22.   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  23.   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  24.   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25.   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  26.   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  27.   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  28.   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  29.   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  30.   *
  31.   ******************************************************************************
  32.   */
  33. /* Includes ------------------------------------------------------------------*/
  34. #include "stm32f7xx_hal.h"
  35. #include "dma.h"
  36. #include "dma2d.h"
  37. #include "i2c.h"
  38. #include "ltdc.h"
  39. #include "usart.h"
  40. #include "gpio.h"
  41. #include "fmc.h"

  42. /* USER CODE BEGIN Includes */
  43. #include "stm32746g_sdram.h"
  44. #include "stm32746g_LCD.h"
  45. #include "GT811.h"
  46. /* USER CODE END Includes */

  47. /* Private variables ---------------------------------------------------------*/

  48. /* USER CODE BEGIN PV */
  49. /* Private variables ---------------------------------------------------------*/
  50. TS_StateTypeDef  TS_State={0};
  51. uint8_t TS_flag ;
  52. uint8_t TouchPoit;
  53. TS_StateTypeDef  TS_BKState;
  54. uint8_t value = 0;
  55. uint16_t i;
  56. uint32_t PointColor[]={LCD_COLOR_BLUE,LCD_COLOR_GREEN,LCD_COLOR_RED,LCD_COLOR_MAGENTA,LCD_COLOR_YELLOW};
  57. /* USER CODE END PV */

  58. /* Private function prototypes -----------------------------------------------*/
  59. void SystemClock_Config(void);

  60. /* USER CODE BEGIN PFP */
  61. /* Private function prototypes -----------------------------------------------*/

  62. /* USER CODE END PFP */

  63. /* USER CODE BEGIN 0 */

  64. /* USER CODE END 0 */

  65. int main(void)
  66. {

  67.   /* USER CODE BEGIN 1 */
  68.         
  69.   /* USER CODE END 1 */

  70.   /* Enable I-Cache-------------------------------------------------------------*/
  71.   SCB_EnableICache();

  72.   /* Enable D-Cache-------------------------------------------------------------*/
  73.   SCB_EnableDCache();

  74.   /* MCU Configuration----------------------------------------------------------*/

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

  77.   /* Configure the system clock */
  78.   SystemClock_Config();

  79.   /* Initialize all configured peripherals */
  80.   MX_GPIO_Init();
  81.   MX_DMA_Init();
  82.   MX_DMA2D_Init();
  83.   MX_FMC_Init();
  84. //  MX_I2C4_Init();
  85.   MX_LTDC_Init();
  86.   MX_USART1_UART_Init();

  87.   /* USER CODE BEGIN 2 */
  88.         /* Program the SDRAM external device */
  89.         HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_RESET);
  90.   BSP_SDRAM_Init();   
  91.         BSP_LCD_Init();
  92.         GT811_Init();
  93.         
  94.         BSP_LCD_SetLayerVisible(1,DISABLE);
  95.         BSP_LCD_SelectLayer(0);
  96.         BSP_LCD_SetTextColor(LCD_COLOR_BLUE);
  97.         BSP_LCD_SetBackColor(LCD_COLOR_BLACK);
  98.         BSP_LCD_Clear(BSP_LCD_GetBackColor());
  99.         BSP_LCD_SetFont(&Font24);
  100.         BSP_LCD_DisplayStringAt(0,0, (uint8_t*)"Capacitive touch screen test",CENTER_MODE);
  101.         BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
  102.         BSP_LCD_DrawHLine(0, 30, 1024);        
  103.         
  104.   /* USER CODE END 2 */

  105.   /* Infinite loop */
  106.   /* USER CODE BEGIN WHILE */
  107.   while (1)
  108.   {
  109.   /* USER CODE END WHILE */

  110.   /* USER CODE BEGIN 3 */
  111.                 if(TS_flag == 1)
  112.                 {
  113.                         GT811_GetState(&TS_State);        
  114.                         if(TS_State.touchDetected != 0)
  115.                         {
  116.                                 TouchPoit = TS_BKState.touchDetected;
  117.                                 for(i = 0;i < 5;i++)
  118.                                 {
  119.                                         if(TouchPoit & 0x01)
  120.                                         {
  121.                                                 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
  122.                                                 BSP_LCD_FillCircle(TS_BKState.touchX[i],TS_BKState.touchY[i],20);
  123.                                                 BSP_LCD_DrawVLine(TS_BKState.touchX[i], 55, 580);
  124.                                                 BSP_LCD_DrawHLine(5, TS_BKState.touchY[i], 1004);        
  125.                                         }
  126.                                         TouchPoit >>= 1;
  127.                                 }
  128.                                 
  129.                                 TouchPoit = TS_State.touchDetected;
  130.                                 for(i = 0;i < 5;i++)
  131.                                 {
  132.                                         if(TouchPoit & 0x01)
  133.                                         {
  134.                                                 if(TS_State.touchY[i] <  75)TS_State.touchY[i] =  75;
  135.                                                 if(TS_State.touchY[i] > 580)TS_State.touchY[i] = 580;
  136.                                                 if(TS_State.touchX[i] <  20)TS_State.touchX[i] =  20;
  137.                                                 if(TS_State.touchX[i] > 1004)TS_State.touchX[i] = 1004;
  138.                                        
  139.                                                 BSP_LCD_SetTextColor(PointColor[i]);
  140.                                                 BSP_LCD_FillCircle(TS_State.touchX[i],TS_State.touchY[i],20);
  141.                                                 BSP_LCD_DrawVLine(TS_State.touchX[i], 55, 580);
  142.                                                 BSP_LCD_DrawHLine(5, TS_State.touchY[i], 1004);
  143.                                                 TS_BKState.touchX[i] = TS_State.touchX[i];
  144.                                                 TS_BKState.touchY[i] = TS_State.touchY[i];
  145.                                         }
  146.                                         TouchPoit >>= 1;
  147.                                 }
  148.                                 TS_BKState.touchDetected = TS_State.touchDetected;
  149.                         }
  150.                         TS_flag = 0;
  151.                 }

  152.   }
  153.   /* USER CODE END 3 */

  154. }

  155. /** System Clock Configuration
  156. */
  157. void SystemClock_Config(void)
  158. {

  159.   RCC_OscInitTypeDef RCC_OscInitStruct;
  160.   RCC_ClkInitTypeDef RCC_ClkInitStruct;
  161.   RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;

  162.   __PWR_CLK_ENABLE();

  163.   __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

  164.   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  165.   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  166.   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  167.   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  168.   RCC_OscInitStruct.PLL.PLLM = 8;
  169.   RCC_OscInitStruct.PLL.PLLN = 432;
  170.   RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  171.   RCC_OscInitStruct.PLL.PLLQ = 2;
  172.   HAL_RCC_OscConfig(&RCC_OscInitStruct);

  173.   HAL_PWREx_ActivateOverDrive();

  174.   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  175.                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  176.   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  177.   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  178.   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
  179.   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
  180.   HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7);

  181.   PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC|RCC_PERIPHCLK_USART1
  182.                               |RCC_PERIPHCLK_I2C4;
  183.   PeriphClkInitStruct.PLLSAI.PLLSAIN = 192;
  184.   PeriphClkInitStruct.PLLSAI.PLLSAIR = 3;
  185.   PeriphClkInitStruct.PLLSAI.PLLSAIQ = 2;
  186.   PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV2;
  187.   PeriphClkInitStruct.PLLSAIDivQ = 1;
  188.   PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;
  189.   PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
  190.   PeriphClkInitStruct.I2c4ClockSelection = RCC_I2C4CLKSOURCE_SYSCLK;
  191.   HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);

  192.   HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

  193.   HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

  194.   /* SysTick_IRQn interrupt configuration */
  195.   HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
  196. }

  197. /* USER CODE BEGIN 4 */
  198. /**
  199.   * @}
  200.   */
  201. void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
  202. {
  203.         if(GPIO_Pin == GPIO_PIN_7)
  204.         {
  205.                 TS_flag = 1;
  206.                 printf("ok\r\n");
  207.         }
  208. }
  209. /* USER CODE END 4 */

  210. ……………………

  211. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
代碼.7z (2.48 MB, 下載次數: 27)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品在线播放 | 国产黄色大片在线免费观看 | 久久久免费观看视频 | 国产影音先锋 | 日韩中文字幕2019 | 欧美精品久久 | h视频免费观看 | 亚洲国产精品一区二区第一页 | 日本久久精 | 天天操网 | 自拍视频精品 | 日韩欧美一区二区三区免费观看 | 在线成人免费视频 | 亚洲va在线va天堂va狼色在线 | 国产精品无码专区在线观看 | 日本人爽p大片免费看 | 国产在线精品一区二区 | 婷婷色婷婷 | 91人人视频在线观看 | 黄色免费观看 | 欧美福利精品 | 日韩欧美综合 | 99re6在线视频精品免费 | 久久国产综合 | 奇米四色影视 | 成年人精品视频在线观看 | 91精品久久久久久久久久入口 | 日韩av在线一区 | 久久不卡 | 中文字幕一区在线 | 久在线| 99久久免费精品国产免费高清 | 国产精品18久久久 | 久久精品久久久久久 | 一道本不卡视频 | 午夜小电影 | 日本精品一区二区 | 国产亚洲区 | 日本天天操 | 7777在线视频免费播放 | 成人在线播放 |