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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32f407使用SPI+DMA用LVGL作為GUI庫刷屏發生碎屏數據錯亂問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:1132556 發表于 2025-2-13 17:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在使用SPI刷屏時能夠完美實現刷屏效果。但加入DMA后效果就如視頻鏈接所示,數據產生錯位,但又能馬上恢復正常,以下是我的刷屏代碼,請求幫助.
  1. /**
  2. * @brief   指定區域進行顏色填充
  3. * @param   xs:起始列地址
  4. * @param   ys:起始行地址
  5. * @param   xe:結束列地址
  6. * @param   ye:結束行地址
  7. * @param   color:需要填充的顏色
  8. * @retval  無
  9. */
  10. void LCD_ColorFill(uint16_t xs, uint16_t ys, uint16_t xe, uint16_t ye, uint16_t *color)
  11. {
  12.     uint8_t count=0;    /* 定義傳輸次數 */
  13.     uint16_t t = 1;
  14.     uint32_t num, num1;
  15.     num = (xe - xs+1) * (ye - ys+1);
  16.     LCD_AddressSet(xs, ys, xe, ye);             /* 設置顯示窗口 */
  17.     SPI_Cmd(BSP_SPI_PORT, DISABLE);                     /* 失能SPI */
  18.     SPI_DataSizeConfig(BSP_SPI_PORT, SPI_DataSize_16b); /* 設置SPI數據傳輸寬度:16bit */
  19.     BSP_SPI_CS_Clr();
  20.     SPI_Cmd(BSP_SPI_PORT, ENABLE); /* 使能SPI */
  21.     while (t)
  22.     {
  23.         if (num > 25600)
  24.         {
  25.             num -= 25600;
  26.             num1 = 25600;
  27.             count++;
  28.         }
  29.         else
  30.         {
  31.             t = 0;
  32.             num1 = num;
  33.             if(count!=0)
  34.             {
  35.                 color += (25600*count); /* 地址跟隨自增 */
  36.             }
  37.         }
  38.         BSP_DMA_ConfigC(BSP_DMA_Channel, (uint32_t)&BSP_SPI_PORT->DR, (uint32_t)color, num1);
  39.         SPI_I2S_DMACmd(BSP_SPI_PORT, SPI_I2S_DMAReq_Tx, ENABLE);
  40.         BSP_DMA_Enable();
  41.         while (1)
  42.         {
  43.             if (DMA_GetFlagStatus(BSP_DMAy_Streamx, BSP_SPI_DMA_TX_FLAG) != RESET) /* 等待通道傳輸完成 */
  44.             {
  45.                 DMA_ClearFlag(BSP_DMAy_Streamx, BSP_SPI_DMA_TX_FLAG); /* 清除通道傳輸完成標志 */
  46.                 break;
  47.             }
  48.         }
  49.     }
  50.     while (SPI_I2S_GetFlagStatus(BSP_SPI_PORT, SPI_I2S_FLAG_BSY) == SET); /* 檢測發送完成SPI外設處于空閑狀態 */
  51.     BSP_SPI_CS_Set();
  52.     SPI_Cmd(BSP_SPI_PORT, DISABLE);                    /* 失能SPI */
  53.     SPI_DataSizeConfig(BSP_SPI_PORT, SPI_DataSize_8b); /* 設置SPI數據傳輸寬度:8bit */
  54.     SPI_Cmd(BSP_SPI_PORT, ENABLE);                     /* 使能SPI */
  55. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:301191 發表于 2025-2-14 15:37 | 只看該作者
頂一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产老头视频 | 三级在线播放 | 午夜爽爽影院 | 国产一区二区在线视频 | 看国产毛片 | 密乳av| 国产一区二区在线观看视频 | 亚洲欧美精品在线 | 成人黄色一级片 | 精品久久久一区二区 | 国产欧美成人 | 久久久免费观看 | 国产精品欧美精品 | 日韩精品不卡 | 中文字幕一区在线观看 | av免费播放 | 你懂的在线网站 | 一级黄毛片 | 免费黄网站 | 国产成人久久精品麻豆二区 | 日本三级韩国三级美三级91 | 色哟哟一区二区三区 | 国产无精乱码一区二区三区 | 精品一区在线 | 国产激情网站 | 精品一区在线播放 | 天天草夜夜草 | 三级网站在线播放 | 国产乱人伦 | 亚洲欧美精品 | 日韩精品第一页 | 欧美日韩国产一区二区 | 3p在线观看| 国产高清视频在线播放 | 依人在线 | 亚洲精品久久 | 欧美日韩中文字幕在线 | 国产精品自拍一区 | 五月开心激情网 | 国产一区二区免费看 | av在线中文 |