搜索
bottom↓
楼主: fk2011

采用SPI Flash存储中文字符库(莫大哥可删之前酷贴)

  [复制链接]

出0入0汤圆

发表于 2012-7-3 13:02:50 | 显示全部楼层
支持一下  ,哈哈  不错

出0入0汤圆

发表于 2012-7-3 13:37:51 | 显示全部楼层
写得不错

出0入0汤圆

发表于 2012-7-3 14:10:47 | 显示全部楼层
用的usbdfu文件烧写也可以实现。

出0入0汤圆

发表于 2012-7-3 23:07:31 | 显示全部楼层
mark正好最新需要!

出0入0汤圆

发表于 2012-7-4 08:33:04 | 显示全部楼层
学习了·

出0入0汤圆

发表于 2012-7-4 08:38:47 | 显示全部楼层
关注度一级

出0入0汤圆

发表于 2012-7-4 08:48:15 | 显示全部楼层
开发板例程比你这详细多了,直接拷贝就可以了。

出0入0汤圆

发表于 2012-7-12 11:57:43 | 显示全部楼层
好东西,不过我搞不懂把字库下载到flash里面以后,到时候需要读取字模数据的时候是按什么方式读取的。

出0入0汤圆

发表于 2012-7-12 14:22:59 | 显示全部楼层
请问楼主有没有那个串口调试助手,能不能发我一个,我现在使用的那个调试助手发送文件也是出现问题,有的话麻烦发到我的qq邮箱:837859162@qq.COM

出0入0汤圆

发表于 2012-7-13 09:43:17 | 显示全部楼层
麻烦上传一下串口助手软件,我的串口助手软件发送文件的功能也是有问题,谢谢

出0入0汤圆

发表于 2012-7-13 09:48:37 | 显示全部楼层
麻烦楼主传一个串口助手软件我,我的邮箱:837859162@qq.com

出0入0汤圆

发表于 2012-7-13 10:24:10 | 显示全部楼层
很有创意哦

出0入0汤圆

发表于 2012-7-13 10:33:58 | 显示全部楼层
楼主有没有串口助手软件,下载不了,麻烦传我一个,谢谢,我的qq邮箱:837859162@qq.com

出0入0汤圆

发表于 2012-7-13 13:35:01 | 显示全部楼层
急需串口助手软件,麻烦楼主传一个,邮箱837859162@qq.com

出0入0汤圆

 楼主| 发表于 2012-7-13 18:51:52 | 显示全部楼层
chuntianhuihui 发表于 2012-7-13 13:35
急需串口助手软件,麻烦楼主传一个,邮箱

这个帖子可以下载啊!

出0入4汤圆

发表于 2012-7-13 19:40:45 | 显示全部楼层
Good job!!!

出0入0汤圆

发表于 2012-7-14 00:49:10 | 显示全部楼层
太好了,最近也在尝试。提供了一种思路。谢谢

出0入0汤圆

发表于 2012-7-15 16:52:10 | 显示全部楼层
顶一个

出0入0汤圆

发表于 2012-7-16 16:36:34 | 显示全部楼层
谢谢您的回复,还有一个问题想请教您,我使用串口把字库文件收录进去之后,又把FLASH的内容通过串口读回来,发现开始数据是对的,但是中间会读回来很多0X00,之后的数据又是正确的,就中间部分数据会变成0X00,您觉得可能是哪里出问题呢?

出0入0汤圆

发表于 2012-7-17 00:03:36 | 显示全部楼层
绝对的强大mark

出0入0汤圆

 楼主| 发表于 2012-7-17 18:39:38 | 显示全部楼层
chuntianhuihui 发表于 2012-7-16 16:36
谢谢您的回复,还有一个问题想请教您,我使用串口把字库文件收录进去之后,又把FLASH的内容通过串口读回来 ...

我之前遇到的问题主要有:1、串口软件不对,开辟内存不够,导致数据写部分丢失;2、写字库的单片机软件不对,波特率等串口设置问题,接收中断问题,SPI芯片驱动问题;3、读取字库单片机软件不对,不同字号的字体读取方式不同(也是取内码不一样,但是都大同小异);

出0入54汤圆

发表于 2012-7-17 19:31:35 | 显示全部楼层
保存下来看看

出0入0汤圆

发表于 2012-7-22 21:50:23 | 显示全部楼层
最近正好做字库,我发现工程文件中的串口地址没有增加?

void USART1_IRQHandler(void)
{
       
        if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)          //直接发送十六进制花费时间70S          发送字符花费140S        (baud 115200)
        {
       
                result = USART_ReceiveData(USART1);       
               
        //        i++;
        //        if(i==2)
        //        {               
        //                result = change(RxBuff);
                        W25X_Write_Bytes(pAddr,&result,1);
                        //for(j=0;j<1000;j++);
                        //printf("%x",result);                 
                          
        //                pAddr++;
        //                i=0;
        //        }
                USART_ClearITPendingBit(USART1, USART_IT_RXNE);   /* Clear the USART Receive interrupt*/                
        }
}

出0入0汤圆

发表于 2012-7-22 21:51:31 | 显示全部楼层
有做成功的吗?
我试了,只下载一部分。

出0入0汤圆

发表于 2012-8-4 22:51:54 | 显示全部楼层
正打算用SPI FLASH保存波形文件,实现任意信号发生器。

出0入0汤圆

发表于 2012-8-5 12:01:22 | 显示全部楼层
犀利、、、   

出0入0汤圆

发表于 2012-8-5 13:53:45 | 显示全部楼层
这个要MARK

出0入0汤圆

发表于 2012-8-6 20:27:52 | 显示全部楼层
准备下手实验下

出0入0汤圆

发表于 2012-8-7 09:43:12 | 显示全部楼层
看到别人用ARM9下载程序时,直接将字库文件+程序文件下载至FLASH中(字库在外部FLASH),LZ知道怎么实现的么?

出0入0汤圆

发表于 2012-8-7 10:23:21 | 显示全部楼层
先顶了再下

出0入0汤圆

发表于 2012-8-7 10:33:15 | 显示全部楼层
mark                  

出0入0汤圆

发表于 2012-8-7 12:21:09 | 显示全部楼层
pldjn 发表于 2012-4-3 14:26
如果有GB18030字库转C的工具就好了,GB2312字数太少,用起来有局限。

GB18030它的字库应该是现在汉字最多的了。
不知道新的字库,有没有出现呢?

出0入0汤圆

发表于 2012-8-7 12:32:13 | 显示全部楼层
     这上位机做的不错,我原来采取的方案是 将字库存在SD卡,通过文件系统索引,然后将字库数据存到SPI flash,并且写入标志位,以后不用烧写 直接调用,也挺方便的!
   我用的字库芯片是 W25Q16价格便宜 擦写速度也快 大爱!!!

出0入0汤圆

发表于 2012-8-7 12:35:20 | 显示全部楼层
MARK...以后会用的到的

出0入0汤圆

发表于 2012-8-7 15:33:56 | 显示全部楼层
学习了,呵呵

出0入0汤圆

发表于 2012-8-14 15:59:55 | 显示全部楼层
正好要用

出0入0汤圆

发表于 2012-8-14 16:53:46 | 显示全部楼层
再顶一次

出0入0汤圆

发表于 2012-8-14 18:03:09 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2012-8-22 18:35:51 | 显示全部楼层
我按你说的做,第五步怎么转为OutHzLib后,文件为空!

出0入0汤圆

发表于 2012-8-22 18:37:35 | 显示全部楼层
frc272727 发表于 2012-4-24 08:46
第五步:接着将“temp.txt”改名为“HzLib.txt”,然后运行“整理字库.exe”,此时将得到整理好的字库“Out ...

运行完.exe后,OutHzLib文件为空!

出0入0汤圆

发表于 2012-8-22 20:09:43 | 显示全部楼层
mark 好东西

出0入0汤圆

 楼主| 发表于 2012-8-22 21:58:52 | 显示全部楼层
chengying 发表于 2012-8-22 18:37
运行完.exe后,OutHzLib文件为空!

1、检查temp.txt是否改名为HzLib.txt;2、确定在同一个目录下;3、确定第四步生成temp.txt成功

出0入0汤圆

发表于 2012-8-23 08:27:01 | 显示全部楼层
fk2011 发表于 2012-8-22 21:58
1、检查temp.txt是否改名为HzLib.txt;2、确定在同一个目录下;3、确定第四步生成temp.txt成功 ...

谢谢,成功了

出0入0汤圆

发表于 2012-9-25 21:27:55 | 显示全部楼层
好帖,mark!

出0入46汤圆

发表于 2012-9-26 17:16:51 | 显示全部楼层
好帖子,记下

出0入0汤圆

发表于 2012-10-22 16:22:12 | 显示全部楼层
MARK,谢谢LZ的热心分享!

出0入0汤圆

发表于 2012-10-22 17:12:18 来自手机 | 显示全部楼层
支持一下

出0入0汤圆

发表于 2012-10-23 08:26:55 | 显示全部楼层
以后备用

出0入0汤圆

发表于 2012-10-23 10:29:39 | 显示全部楼层
好资料,再次支持下,
头像被屏蔽

出0入0汤圆

发表于 2012-11-10 23:12:32 来自手机 | 显示全部楼层
明天电脑上看

出0入0汤圆

发表于 2012-11-12 13:49:53 | 显示全部楼层
谢谢分享。

出0入0汤圆

发表于 2012-11-12 14:22:06 | 显示全部楼层
好资料呀,火钳留名!

出0入0汤圆

发表于 2012-11-12 15:42:53 | 显示全部楼层
标注备用

出0入0汤圆

发表于 2012-11-13 16:50:45 | 显示全部楼层
好东西,有空研究一下

出0入4汤圆

发表于 2012-12-6 11:30:59 | 显示全部楼层
收藏了,好资料

出0入0汤圆

发表于 2012-12-6 17:02:39 | 显示全部楼层
你好,请问汉字的大小怎么样才能够进行修改啊??????   我修改后好像没有反应哦,望指教!!!

出0入0汤圆

发表于 2012-12-6 21:59:24 | 显示全部楼层
收藏了,谢谢

出0入0汤圆

发表于 2012-12-7 10:04:26 | 显示全部楼层
曾经为此烦恼过!!哎。。感谢楼主,自己试试!

出0入0汤圆

发表于 2012-12-15 10:58:26 | 显示全部楼层
我使用STM32 SPI也使用2分频
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;

但是返回乱码了。

在64分频的时候读写正常。

请问这个是什么问题呀?

跟这个有关吗?DUMMY BYTE是什么值?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-12-15 11:38:08 | 显示全部楼层
我也试试看

出0入0汤圆

发表于 2012-12-20 17:33:51 | 显示全部楼层
mark 中文字库

出0入0汤圆

发表于 2012-12-20 18:00:09 | 显示全部楼层
Excellence 发表于 2012-7-22 21:50
最近正好做字库,我发现工程文件中的串口地址没有增加?

void USART1_IRQHandler(void)

你好,请问你的成功了没有啊,我按照楼主的方法,在用pc机发送数据给单片机接收时,我的串口软件提示的字符数量与实际的数量大了一倍,

究其原因是因为串口吧每个字符都当成了一个字节来发送的,这样的话,那16*16/8*6768 = 216576 这么多个字节为正常的,但是我现在发送的却是216576*2个字符,

你是用它提供的串口软件吗?? 他提供的串口软件我电脑包病毒,直接给干掉了,我目前使用的ssom32的串口软件来发送的

出0入0汤圆

发表于 2012-12-21 14:56:46 | 显示全部楼层
好资料。动手做了一遍,成功了。我用的是不带字库的12864

出0入0汤圆

发表于 2012-12-24 08:34:49 | 显示全部楼层
hpdell 发表于 2012-12-20 18:00
你好,请问你的成功了没有啊,我按照楼主的方法,在用pc机发送数据给单片机接收时,我的串口软件提示的字 ...

没成功。
后来,我先把字库放MCU FLASH里,然后写到SPI FLASH
.

出0入0汤圆

发表于 2012-12-24 09:09:02 | 显示全部楼层
本帖最后由 hpdell 于 2012-12-24 11:08 编辑
Excellence 发表于 2012-12-24 08:34
没成功。
后来,我先把字库放MCU FLASH里,然后写到SPI FLASH
.


我这两天终于搞成功了,通过串口做字库,我制作了16*16、24*24、32*32的字库都以成功,不过串口软件还是使用楼主提供的,楼主提供的串口软件我的杀毒软件提示病毒,在开启串口软件前先关闭杀毒软件。。。  

波特率设置为38400

pc吧HzLib。txt 发送给单片机,单片机接收识别为字符,需要吧字符转化为16进制数,我的转换函数:


/*------------------------------------------------------
写一个字节的数据
addr是写入数据的地址
dat 是写入的数据
测试OK
注:在写入之前必须先擦除对应的扇区或擦除这个芯片
------------------------------------------------------*/

void SPIx_WriteBytes(SPI_TypeDef* SPIx, uint32_t nSector,u8 dat)
{       
        SPIx_WriteEnable(SPIx);
        SPI1_CS_L;       
                               
        SPIx_WriteByte(SPIx, W25Q_PageProgram);
        SPIx_WriteByte(SPIx, (u8)(nSector >> 16));
        SPIx_WriteByte(SPIx, (u8)(nSector >> 8));
        SPIx_WriteByte(SPIx, (u8) nSector);
       
   SPIx_WriteByte(SPIx, dat);
   
        SPI1_CS_H;       
        SPIx_WaitBusy(SPIx);
   //SPIx_WriteDisable(SPIx);
}



unsigned char change(unsigned char*buf)  //将接收到的字符转换成16进制数
{
        unsigned char out;
        unsigned char temp0,temp1;
  
        if(buf[0] <= '9')
                temp0 = buf[0] - 48;
        else if(buf[0] <= 'F')                 
                temp0 = buf[0] - 55;       
   else if(buf[0] <= 'f')        
                temp0 = buf[0] - 87;   
       
        if(buf[1] <= '9')
                temp1 = buf[1] - 48;
        else if(buf[1] <= 'F')                 
                temp1 = buf[1] - 55;       
   else if(buf[1] <= 'f')        
                temp1 = buf[1] - 87;   
   
        out = (temp0<<4) | temp1;
        return out;
}

u8 RxBuff[2];

extern u32 SPI_W25QxxHzLibBassAddr;

u8 RxData=0,datcnt=0;

//串口接收中断函数
void USART1_IRQHandler(void)
{
   if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)    // 接收中断有效 ;
   {

                RxBuff[datcnt] = USART_ReceiveData(USART1);               // 返回USARTx最近接收到的数据 ;
                datcnt++;

                if(datcnt == 2)
                {                       
                        RxData = change(RxBuff);     //将字符转换成16进制数
                        SPIx_WriteBytes(SPI1, SPI_W25QxxHzLibBassAddr,RxData);  //汉字库以16进制数据写入
                        SPI_W25QxxHzLibBassAddr++;
                        datcnt = 0;
                        //USARTx_PutChar(USART1, RxData);
                }
               
                USART_ClearITPendingBit(USART1, USART_IT_RXNE);                  // 清除USART1的接收中断
     }
}

出0入0汤圆

发表于 2012-12-24 11:37:00 | 显示全部楼层
hpdell 发表于 2012-12-24 09:09
我这两天终于搞成功了,通过串口做字库,我制作了16*16、24*24、32*32的字库都以成功,不过串口软件还是 ...

好的。。
。。。。

出0入0汤圆

发表于 2012-12-24 13:36:30 | 显示全部楼层
Excellence 发表于 2012-12-24 11:37
好的。。
。。。。

我现在在搞stm32f4的 rtc 功能,但是这个rtc始终都不运行,目前没有眉目了,

出0入0汤圆

发表于 2012-12-24 14:30:03 | 显示全部楼层
hpdell 发表于 2012-12-24 13:36
我现在在搞stm32f4的 rtc 功能,但是这个rtc始终都不运行,目前没有眉目了, ...

STM32不是有库文件,看看他的例程。

出0入0汤圆

发表于 2012-12-24 16:20:35 | 显示全部楼层
Excellence 发表于 2012-12-24 14:30
STM32不是有库文件,看看他的例程。

还在捣鼓中,如果你有的话,我就不用那么辛苦的去慢慢的看了,哈哈

出0入0汤圆

发表于 2012-12-25 09:24:50 | 显示全部楼层
hpdell 发表于 2012-12-24 16:20
还在捣鼓中,如果你有的话,我就不用那么辛苦的去慢慢的看了,哈哈

呵呵。我用NXP的芯片。

出0入0汤圆

发表于 2012-12-25 10:25:11 | 显示全部楼层
Excellence 发表于 2012-12-25 09:24
呵呵。我用NXP的芯片。

昨天终于捣鼓成功了,现在f4里面的rtc终于可以运行了,但是好像没有秒中断,哎,又要捣鼓这个妙中断要如何才能够实现的了,

出0入0汤圆

发表于 2012-12-25 10:36:40 | 显示全部楼层
标注备用

出0入0汤圆

发表于 2012-12-25 18:40:31 | 显示全部楼层
好贴! 有用. 学习了!

出0入0汤圆

发表于 2013-1-9 17:21:51 | 显示全部楼层
下载后测试,谢 了。

出0入0汤圆

发表于 2013-1-9 17:32:36 | 显示全部楼层
用大的FLASH的芯片不是更好些?

出0入0汤圆

发表于 2013-1-15 23:31:21 | 显示全部楼层
慢慢研究下,多谢LZ

出0入0汤圆

发表于 2013-1-19 19:58:58 | 显示全部楼层
储存了!谢过!

出0入0汤圆

发表于 2013-1-20 20:15:45 来自手机 | 显示全部楼层
谁能分享一下25p16的读写代码    怎么能测试一下它好用    我正调25P16呢  能读ID就是写完后读出的算是ff   求大侠指点

出0入0汤圆

发表于 2013-1-23 14:06:47 | 显示全部楼层
谢谢分享........

出0入0汤圆

发表于 2013-1-30 09:44:31 | 显示全部楼层
收藏一下,现在做个项目,用到这些。

出0入0汤圆

发表于 2013-1-31 22:26:46 | 显示全部楼层
感觉很不错

出0入0汤圆

发表于 2013-1-31 23:03:58 | 显示全部楼层
改天试试

出0入0汤圆

发表于 2013-2-1 12:44:45 | 显示全部楼层
你好  ..我也正在做字库但用串口发送数据的时候会死机

出0入0汤圆

发表于 2013-2-1 12:57:48 | 显示全部楼层
标记

出0入0汤圆

发表于 2013-2-4 14:57:08 | 显示全部楼层
mark  mark  xia

出0入0汤圆

发表于 2013-2-4 15:11:49 | 显示全部楼层
mark以备后用

出0入0汤圆

发表于 2013-2-6 19:13:51 | 显示全部楼层
标记      

出0入0汤圆

发表于 2013-2-26 13:11:55 | 显示全部楼层
记录 学习中

出0入0汤圆

发表于 2013-2-26 14:02:42 | 显示全部楼层

标注备用

出0入0汤圆

发表于 2013-2-26 20:49:47 来自手机 | 显示全部楼层
感谢分享,mark

出0入0汤圆

发表于 2013-2-27 10:38:08 来自手机 | 显示全部楼层
收藏下来

出0入0汤圆

发表于 2013-2-27 13:42:45 | 显示全部楼层
能识别标点符号吗?

出0入0汤圆

发表于 2013-2-27 13:43:33 | 显示全部楼层
库里有标点符号的字模吗?

出0入0汤圆

发表于 2013-2-27 17:09:52 | 显示全部楼层

出0入0汤圆

发表于 2013-2-27 18:01:44 | 显示全部楼层
mark,谢谢楼主

出0入0汤圆

发表于 2013-2-27 19:02:24 | 显示全部楼层
留著,以後用

出0入0汤圆

发表于 2013-3-11 21:25:23 | 显示全部楼层

出0入0汤圆

发表于 2013-3-11 22:07:53 | 显示全部楼层
酷。。。。。。。。。。。

出0入0汤圆

发表于 2013-3-13 13:47:01 | 显示全部楼层
记号,楼主辛苦了!!

出0入0汤圆

发表于 2013-3-13 17:23:39 | 显示全部楼层
好资料,再次支持下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 09:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表