博士
最后登录1970-1-1
在线时间 小时
注册时间2014-10-31
|
本帖最后由 11kxmx 于 2015-3-23 08:58 编辑
想把SD卡上的字库复制到FLASH中去,自己编了个程序 根据int GetGBKCode_from_sd(unsigned char* pBuffer,const unsigned char * c)改写
本来可以不要任何参数,但读SD卡和写FLASH需一个缓冲数组,
于是定义局部变量unsigned char pBuffer[128](改成uint8_t pBuffer[128]也不行) ,但编译通不过,
只好在主程序前申请全局变量unsigned char pBuffer[128],并仿照int GetGBKCode_from_sd(unsigned char* pBuffer,const unsigned char * c)
也给一个指针形式的参数 可达到实验目的,不知是什么原因?求火哥指点
void save32GBKCode_to_flash(unsigned char* pBuffer) /*從SD卡取字模数据存入FLASH */
//参数unsigned char* pBuffer完全可以不用 但 {
//unsigned char pBuffer[128]; 函数内部读写缓冲用,数组符合指针的性质
unsigned int i;
f_mount(0, &myfs[0]);
myres = f_open(&myfsrc , "0:/GB31232x32.FON", FA_OPEN_EXISTING | FA_READ);
if ( myres == FR_OK )
{
for (i=0;i<6773;i++)
{
f_lseek (&myfsrc, i*128); //指针偏移
myres = f_read( &myfsrc, pBuffer,128,&mybr ); //32*32大小的汉字 其字模 占128个字节 pBuffer是读出数据临时存储 场所
//原来程序就是这么写的 结果编译时本句和下一句报错,好象是参数不兼容
SPI_FLASH_BufferWrite(pBuffer, i*128, 128);
}
f_close(&myfsrc);
}
}
|
|