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

標(biāo)題: PY32F403C驅(qū)動SPI液晶屏2.8寸LVGL8演示程序 [打印本頁]

作者: eyancool    時間: 2024-12-8 21:39
標(biāo)題: PY32F403C驅(qū)動SPI液晶屏2.8寸LVGL8演示程序

普冉的M4單片機系列,資源豐富,價格便宜。實在是太香了,用來驅(qū)動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, 下載次數(shù): 0, 下載積分: 黑幣 -5

Schematic_PY32F403C_KFB_V0.1.pdf

151.71 KB, 下載次數(shù): 0, 下載積分: 黑幣 -5


作者: cy009    時間: 2024-12-9 08:51
我用STC32驅(qū)動過這個屏,主屏上到30MHz,刷新速度非常快,不知樓主的這個案例速度如何?
作者: eyancool    時間: 2024-12-9 14:21
cy009 發(fā)表于 2024-12-9 08:51
我用STC32驅(qū)動過這個屏,主屏上到30MHz,刷新速度非常快,不知樓主的這個案例速度如何?

F403C 理論上SPI的頻率最高達到36M
作者: 0x00000000    時間: 2024-12-20 13:23
不知道是什么原因,普冉的單片機死活下載不進固件,研究了大半個月都沒成功
作者: eyancool    時間: 2024-12-23 09:21
0x00000000 發(fā)表于 2024-12-20 13:23
不知道是什么原因,普冉的單片機死活下載不進固件,研究了大半個月都沒成功

降低SWD下載速度改成500K試試
作者: 0x00000000    時間: 2024-12-23 17:51
換了三個DAP和ULINK都試過了,能識別得到芯片,但無法下載固件,嘗試問了店家,店家也不清楚
作者: zhxzhx    時間: 2024-12-31 17:16
eyancool 發(fā)表于 2024-12-23 09:21
降低SWD下載速度改成500K試試

下載器到 MCU 的線太長了,那個線 大于 5cm 下載就會不可靠
作者: makej    時間: 2025-4-15 11:48
請問一下你的py32F403能讀取內(nèi)存卡嗎?我用STM32能讀,但是用py32沒法讀取
作者: eyancool    時間: 2025-4-25 18:54
makej 發(fā)表于 2025-4-15 11:48
請問一下你的py32F403能讀取內(nèi)存卡嗎?我用STM32能讀,但是用py32沒法讀取

我沒用到PY32F403的SDIO功能,看一下PY32F403官方的開發(fā)注意事項說明.不能全照STM32來





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日本久久久久久 | 国产91精品久久久久久久网曝门 | 国产精品视频免费观看 | 欧美午夜精品理论片a级按摩 | www国产精品 | 伊人热久久 | 亚洲天堂久久 | 99久久久无码国产精品 | 精品一区二区在线看 | 美国一级片在线观看 | 成人羞羞国产免费视频 | 午夜免费网站 | 又黑又粗又长的欧美一区 | 中文亚洲视频 | 亚洲精品一区二区三区丝袜 | 黄色毛片网站在线观看 | 日本a v在线播放 | 国产精品视频在线播放 | 中文字幕日韩三级 | 久久久久久免费精品一区二区三区 | 国产视频一区在线观看 | 91视视频在线观看入口直接观看 | 欧美涩涩网 | 日韩中文字幕视频 | 一区二区三区国产 | 蜜月va乱码一区二区三区 | 久久在线 | 亚洲高清在线观看 | 成人毛片在线视频 | 久久精品成人热国产成 | 欧美一级片在线播放 | 色综久久 | 午夜影晥 | 国产精品久久视频 | 欧洲一级黄 | 精品九九九 | 亚洲精品视频一区 | 午夜爱爱毛片xxxx视频免费看 | 亚洲一区欧美 | 香蕉超碰| 国产精品久久久久久久久免费丝袜 |