使用CH573 SPI驱动LCD屏刷屏速度慢

之前用HC32F005的SPI(未使用DMA)系统频率24MHz,驱动LCD刷屏速度感觉很快。程序移植到CH573芯片,主频60MHz,使用SPI驱动LCD屏感觉刷屏速度慢,而且使用了DMA发送指令数据感觉速度也没有明显的提升,这是为什么?

因为芯片有片外Flash,速度实际是主频的Fsys/8。
如果需要跑的运行达到60MHz,可以把相应的函数放到RAM中运行,加上定义
__attribute__((section(".highcode")))


比如

image.png

该定义仅适用于当前函数,不含上一级函数或者该函数里面调用的函数。
缺点是当前函数需要在RAM中运行,需注意RAM的消耗。



是把LCD显示函数前加上__attribute__((section(".highcode")))就可以提高刷屏速度吗


       楼主的SPI的初始化设置函数能够共享下不,初始化SPI的时候,需要对SPI的IO口状态做初始化不,我按照示例初始化程序,好像没看到对IO的状态做初始化,楼主帮忙看下。

/*******************************************************************************

* Function Name  : SPI1_MasterDefInit

* Description    : 主机模式默认初始化

* Input          : None

* Return         : None

*******************************************************************************/

void SPI1_MasterDefInit( void )

{

    R8_SPI1_CLOCK_DIV = 4;                                   //主频时钟4分频

    R8_SPI1_CTRL_MOD = RB_SPI_ALL_CLEAR;

    R8_SPI1_CTRL_MOD = RB_SPI_MOSI_OE | RB_SPI_SCK_OE ;

    R8_SPI1_CTRL_CFG |= RB_SPI_AUTO_IF;

    R8_SPI1_CTRL_CFG &= ~RB_SPI_DMA_ENABLE;                  //不启动DMA方式

    //R8_SPI1_CTRL_CFG |= RB_SPI_DMA_ENABLE;                 //启动DMA方式

}



看你发了很多回复,这个CH569中的代码,GPIO初始化是直接操作R32_PB_XXX寄存器实现的

image.png


楼主,问题最后解决了吗?是通过给显示相关函数加常驻ram属性解决的吗?


只有登录才能回复,可以选择微信账号登录