因为OLED需要显示的字很多,所以想把字库放到flash中调用;我通过PC端利用串口调试助手发送字库数据;处理方式如下: void USART2_IRQHandler(void) //接收字库专用 { uint8_t res; if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET) { res = USART_ReceiveData(USART2); W25QXX_Write(&res,Font_Star_Addr++,1); } } 串口调试助手我采用 的是XCOM; 然后,我测试的时候发现,显示出来的是OLED全亮; 然后,仿真是读取我存在flash中 的部分数据;发现有可能字库写入失败; 所以,想请教下,到底应该怎么做;我的FLASH只有1M的空间;所以只能选择GB2312的字库;我采用的点阵大小是16的 |
分割倒是不用;肯定是要存储在flash中的;我目前测试发现串口中断接收数据后,写入flash中会卡死;串口波特率是115200;SPI时钟速度是12M;我看网上好多接收一个Byte就写入一个 字节;有点奇怪
为了测试,你可以先写100个字节,然后再写个程序只读这100个字节,从串口输出,如果两者相同,那么以上判断错误,如果有数据丢失,那么上面判断正确,你得换个思路了
字库,我暂时写进去了;我换了串口上位机;然后,我读取一个字显示,发现字是躺下来的;然后,换了一种取模方式,结果也一样;我刚看到一种SD卡的字库方式,需要支持fatfs,但是我只有flash没有sd;这样行的通么
我之前用OLED显示过几个简单的汉字;通过取模放在片内的flash里面;然后,我刚用那个软件,生成字库是font格式的,貌似我不能用 串口助手去导入
我的CPU型号是STM32F030C8T6;另外,FON文件通过串口发送,我已经解决了;现在有新问题,我采用的字库是GB2312;我计算 出来的偏移量不对
{
u32 ch1,ch2,hzk_dot_addr;
ch2 = aword & 0xff;
ch1 = (aword>>8) & 0xff;
hzk_dot_addr = ((ch1-0xa1)*94 + ch2-0xa1) * 32 ;
SPI1_Flash_Read(dot,hzk_dot_addr,32);
}
你这个获取偏移量是基于GB2312的么?