25Q64字库,stm32正常显示,stm8就乱码或不显示

2019-07-19 21:02发布

本帖最后由 冬天的野狼 于 2016-6-24 19:14 编辑

RT,用原子哥程序改的,在STM32上显示完全没有问题,移植到STM8S上就不显示或乱码了,原因是什么呢啊?字库初始化正常,能够检测到有字库的存在。

/*===========================================================================
* 函数 :SPI_Initial() => 初始化SPI                                         *
============================================================================*/
void SPI_Initial()
{
        CLK_PeripheralClockConfig(CLK_PERIPHERAL_SPI, ENABLE);
        SPI_DeInit();
        // 配置SPI相关参数,2分频(8MHZ)

        SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_2,
                  SPI_MODE_MASTER, SPI_CLOCKPOLARITY_LOW,SPI_CLOCKPHASE_1EDGE,
                   SPI_DATADIRECTION_2LINES_FULLDUPLEX,SPI_NSS_SOFT,0X07);
        SPI_Cmd(ENABLE);

}

这是STM8s SPI的配置函数


//读取SPI FLASH  
//在指定地址开始读取指定长度的数据
//pBuffer:数据存储区
//ReadAddr:开始读取的地址(24bit)
//NumByteToRead:要读取的字节数(最大65535)
void SPI_Flash_Read(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead)   
{
         u16 i;                                                                                                        
        FLASH_CS_Clr();                            //使能器件   
    FLASH_SPI_ExchangeByte(W25X_ReadData);         //发送读取命令   
    FLASH_SPI_ExchangeByte((u8)((ReadAddr)>>16));  //发送24bit地址   
    FLASH_SPI_ExchangeByte((u8)((ReadAddr)>>8));   
    FLASH_SPI_ExchangeByte((u8)ReadAddr);   
    for(i=0;i<NumByteToRead;i++)
        {
        pBuffer= FLASH_SPI_ExchangeByte(0XFF);   //循环读数  
    }
        FLASH_CS_Set();                           //取消片选                  
}  



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。