你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f072 使用cubemx生成spidma方式控制彩屏

[复制链接]
阿莫西林 提问时间:2017-8-2 13:54 /
不采用dma,HAL_SPI_Transmit刷屏正常。使用dma方式,使用HAL_SPI_Transmit_DMA每次发一个点16位数据,颜色不对。使用HAL_SPI_Transmit_DMA单色刷整屏,没颜色。
dma设置如下:
    hdma_spi1_tx.Instance = DMA1_Channel3;
    hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
    hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
    hdma_spi1_tx.Init.MemInc = DMA_MINC_DISABLE;
    hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
    hdma_spi1_tx.Init.MemDataAlignment = DMA_PDATAALIGN_HALFWORD;
    hdma_spi1_tx.Init.Mode = DMA_NORMAL;
    hdma_spi1_tx.Init.Priority = DMA_PRIORITY_LOW;
        
    if (HAL_DMA_Init(&hdma_spi1_tx) != HAL_OK)
    {
      _Error_Handler(__FILE__, __LINE__);
    }

收藏 评论2 发布时间:2017-8-2 13:54

举报

2个回答
阿莫西林 回答时间:2017-8-2 20:43:30
上面问题已解决。但是有个疑问,在使用HAL_SPI_Transmit_DMA(&hspi1, (uint8_t *)&Colour, i);后需要等状态位while(HAL_DMA_STATE_READY != HAL_DMA_GetState(&hdma_spi1_tx));这样才正常。如果不等待,即使我延时1s发下一次数据,spi仍然出错。如果一定要cpu等待发送完毕,那和使用轮询方式发送没有区别啊!!!如果是这样的话,我为什么要使用dma,求指点
Ericezhang5 回答时间:2017-9-5 13:42:56
这个片子没用过,上次帮人家做工程时用过F1和F4驱动串口屏,主芯片是ILI9341的,用DMA方式没什么问题,效果还不错,F4驱动并口屏一秒刷点可以达到1200万个左右,串口屏试了下,可以达到240万个点,是并口屏的1/5,一般用用也够了。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版