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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

PY32F403C驅動SPI液晶屏2.8寸LVGL8演示程序

[復制鏈接]
跳轉到指定樓層
樓主

普冉的M4單片機系列,資源豐富,價格便宜。實在是太香了,用來驅動2.8寸SPI屏跑LVGL8超值劃算。
/**
******************************************************************************
* 文件名程: main.c
* 作    者: 東莞-鄧凱歌
* 功    能: 主程序
* 硬    件: PY32F403C_KFB_V0.1
* 說明:
* 軟件版本 V1.0.1(2024/4/7 16:02)
******************************************************************************
**/
#include "main.h"
#include "user_uart.h"
#include "user_dma.h"
#include "user_timer.h"
#include "user_gpio.h"
#include "user_spi.h"
#include "lcd_driver.h"
#include "user_touch.h"

#include "lv_port_disp.h"
#include "lv_port_indev.h"
#include "lvgl.h"

#include "gui_guider.h"
#include "events_init.h"
#include "custom.h"

lv_ui guider_ui;

uint8_t aRxBuffer,bRxBuffer;

/* Private define ------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private user code ---------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
static void APP_SystemClockConfig(void);


uint32_t senpwm = 120;
extern uint8_t pwmbit;
uint8_t lcdbit;
/**
  * @brief  Main program.
  * @retval int
  */
int main(void)
{
        /* Reset of all peripherals, Initializes the Systick. */
        HAL_Init();

        /* Configure the system clock */
        APP_SystemClockConfig();
        MX_DMA_Init();
        
        MX_SPI1_Init();
        MX_SPI2_Init();
        MX_GPIO_Init();
//        APP_GpioConfig();
//        MX_USART1_UART_Init();
        MX_TIM1_Init();
        MX_TIM2_Init();
//        MX_TIM6_Init();
//        HAL_UART_Receive_IT(&huart1,&aRxBuffer,1);
        
//        LCD_Init();
////        LCD_Fill(0,0,320,240,RED);
////        LCD_Fill(0,0,320,240,WHITE);
//        
//        LCD_DMA_Fill(0,0,320,240,RED);
//        LCD_DMA_Fill(0,0,320,240,WHITE);
        
        lv_init();
    lv_port_disp_init();
        lv_port_indev_init();
        
//        lv_example_textarea_1();
        
        
        custom_init(&guider_ui);         //自定義的功能要放在UI初始化前面,切記!!!!
        setup_ui(&guider_ui);
    events_init(&guider_ui);
        while (1)
        {
                if( tp_dev.calibit)
                {
                  TP_Adjust();
                }else{

                  lv_timer_handler();
                }               
        }
}

/**
  * @brief  System Clock Configuration
  * @param  None
  * @retval None
  */
static void APP_SystemClockConfig(void)
{
        RCC_OscInitTypeDef  OscInitstruct = {0};
        RCC_ClkInitTypeDef  ClkInitstruct = {0};

        OscInitstruct.OscillatorType  = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_LSE |
                                                                  RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_HSI48M;
        OscInitstruct.HSEState        = RCC_HSE_ON;                               /* Enable HSE */
        OscInitstruct.HSEFreq         = RCC_HSE_16_32MHz;                         /* HSE working frequency range: 16M~32M */
        OscInitstruct.HSI48MState     = RCC_HSI48M_OFF;                           /* Disable HSI48M */
        OscInitstruct.HSIState        = RCC_HSI_ON;                               /* Enable HSI */
        OscInitstruct.LSEState        = RCC_LSE_OFF;                              /* Disable LSE */
//        OscInitstruct.LSEDriver       = RCC_LSEDRIVE_HIGH;                     /* Drive capability level: High */
        OscInitstruct.LSIState        = RCC_LSI_OFF;                              /* Disable LSI */
        OscInitstruct.PLL.PLLState    = RCC_PLL_ON;                              /* Disable PLL */
        OscInitstruct.PLL.PLLSource   = RCC_PLLSOURCE_HSE;                    /* PLL clock source: HSE */
        OscInitstruct.PLL.PLLMUL      = RCC_PLL_MUL7;                         /* PLL multiplication factor: 6 */
        /* Configure Oscillators */
        if(HAL_RCC_OscConfig(&OscInitstruct) != HAL_OK)
        {
                Error_Handler();
        }

        ClkInitstruct.ClockType       = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
        ClkInitstruct.SYSCLKSource    = RCC_SYSCLKSOURCE_PLLCLK;                 /* SYSCLK source select as HSE */
        ClkInitstruct.AHBCLKDivider   = RCC_SYSCLK_DIV1;                      /* AHB clock not divided */
        ClkInitstruct.APB1CLKDivider  = RCC_HCLK_DIV1;                        /* APB1 clock not divided */
        ClkInitstruct.APB2CLKDivider  = RCC_HCLK_DIV2;                        /* APB1 clock divided by 2 */
        /* Configure Clocks */
        if(HAL_RCC_ClockConfig(&ClkInitstruct, FLASH_LATENCY_6) != HAL_OK)
        {
                Error_Handler();
        }
}




/**
  * @brief  This function is executed in case of error occurrence.
  * @param  None
  * @retval None
  */
void Error_Handler(void)
{
  /* Infinite loop */
  while (1)
  {
  }
}

#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 can add his own implementation to report the file name and line number,
     for example: printf("Wrong parameters value: file %s on line %d\r\n", file, line)  */
  /* Infinite loop */
  while (1)
  {
  }
}
#endif /* USE_FULL_ASSERT */


PY32F403C_KFB_LVGL028(V0.1).7z

5.52 MB, 下載次數: 0, 下載積分: 黑幣 -5

Schematic_PY32F403C_KFB_V0.1.pdf

151.71 KB, 下載次數: 0, 下載積分: 黑幣 -5

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

使用道具 舉報

沙發
ID:619259 發表于 2024-12-9 08:51 | 只看該作者
我用STC32驅動過這個屏,主屏上到30MHz,刷新速度非常快,不知樓主的這個案例速度如何?
回復

使用道具 舉報

板凳
ID:14088 發表于 2024-12-9 14:21 | 只看該作者
cy009 發表于 2024-12-9 08:51
我用STC32驅動過這個屏,主屏上到30MHz,刷新速度非常快,不知樓主的這個案例速度如何?

F403C 理論上SPI的頻率最高達到36M
回復

使用道具 舉報

地板
ID:691028 發表于 2024-12-20 13:23 | 只看該作者
不知道是什么原因,普冉的單片機死活下載不進固件,研究了大半個月都沒成功
回復

使用道具 舉報

5#
ID:14088 發表于 2024-12-23 09:21 | 只看該作者
0x00000000 發表于 2024-12-20 13:23
不知道是什么原因,普冉的單片機死活下載不進固件,研究了大半個月都沒成功

降低SWD下載速度改成500K試試
回復

使用道具 舉報

6#
ID:691028 發表于 2024-12-23 17:51 | 只看該作者
換了三個DAP和ULINK都試過了,能識別得到芯片,但無法下載固件,嘗試問了店家,店家也不清楚
回復

使用道具 舉報

7#
ID:378108 發表于 2024-12-31 17:16 | 只看該作者
eyancool 發表于 2024-12-23 09:21
降低SWD下載速度改成500K試試

下載器到 MCU 的線太長了,那個線 大于 5cm 下載就會不可靠
回復

使用道具 舉報

8#
ID:468456 發表于 2025-4-15 11:48 | 只看該作者
請問一下你的py32F403能讀取內存卡嗎?我用STM32能讀,但是用py32沒法讀取
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美啪啪| 黄色网址在线播放 | 九九国产| 国产精品久久久久久久久久免费看 | 18gay男同69亚洲网站 | 日韩一级欧美一级 | 亚洲成人免费在线 | 中文字幕亚洲一区 | 亚洲国产高清高潮精品美女 | 久久精品一区二区 | 亚洲精品99999 | 欧美一级免费黄色片 | 日韩在线视频一区 | 亚洲人在线观看视频 | 亚洲精品国产成人 | 鸡毛片 | 成人免费在线视频 | 午夜国产羞羞视频免费网站 | 国产综合在线视频 | 日韩三级 | 精品1区 | 欧美日韩电影一区二区 | 91资源在线 | 日韩精品三区 | 国产视频一二三区 | 久久久久久久久久久久久久国产 | 国产一区二区三区免费 | 99视频免费在线 | 羞羞视频免费观 | 欧美日韩一二三区 | 岛国一区 | 日韩成人免费视频 | 精品国产一区二区三区日日嗨 | av在线播放免费 | 99久久免费精品国产男女高不卡 | 四色永久 | 国产aⅴ精品| 日韩视频观看 | 国产欧美精品一区二区三区 | 精品伊人久久 | 国产一区二区三区免费观看在线 |