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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 444|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费视频一区二区三区在线观看 | 国产三级一区二区三区 | 国产精品久久片 | 亚洲视频一区在线播放 | 亚洲欧美国产精品一区二区 | 国产福利在线 | 国产人久久人人人人爽 | 精品九九九 | 国产精品自拍视频网站 | 麻豆视频国产在线观看 | 久久久久久免费免费 | 91精品一区二区三区久久久久 | 日本福利视频免费观看 | 国产精品视频播放 | 国产国产精品久久久久 | 夜夜爽夜夜操 | 精品无码久久久久久国产 | 成人视屏在线观看 | 在线中文字幕亚洲 | 一二三四在线视频观看社区 | 91国内精精品久久久久久婷婷 | 91在线第一页 | 欧美久久久久久久久 | 国产日韩一区二区三区 | 免费在线黄色av | 国久久 | 视频一区 亚洲 | 玖玖精品视频 | 一级免费看| 91久久国产精品 | 中文字幕一区二区三区四区 | 欧美日韩综合 | 国产激情在线 | 日本成年免费网站 | 欧美精三区欧美精三区 | 国产免费一级片 | 亚洲一区精品在线 | 国产精品一区二区av | 亚洲视频在线一区 | 亚洲精品久久久一区二区三区 | 欧美理论片在线 |