搜索
bottom↓
回复: 241

成功!用SPI_Flash做中文字库。

  [复制链接]

出0入0汤圆

发表于 2012-3-30 10:35:11 | 显示全部楼层 |阅读模式
本帖最后由 fk2011 于 2012-3-30 22:23 编辑

工程文件:
采用的是W25X16 2Mf存储芯片
字库文件: GB2312汉字库  横向取模  16*16  ,共6768个中文字符
注:1、采用的是串口接收中断,每次接收两个字符,然后合并这两个字符为一个十六进制字符,最后写入FLAH。
2、串口采用发生文件方式,波特率设置9600,不能设高,否则会乱。
3、开始试了一个串口软件始终不行,因此成功与否与软件也关系。串口软件
3、感觉方法比较笨,不过能用就行。
取模软件(另附中文字符库,共6768个中文字符):,用该软件将中文字符转换成字模,然后稍加整理按照上面所示就可以用了,各种字体和字号。
通过上面取模软件得到的字库文件不能直接使用,需要整理成串口发送的格式,弄了个小软件可以快速得到(含源码):

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2012-3-30 10:39:02 | 显示全部楼层
不错,不错,谢谢分享

出0入85汤圆

发表于 2012-3-30 10:47:06 | 显示全部楼层
不错,用什么软件取模的?

出0入0汤圆

 楼主| 发表于 2012-3-30 10:50:17 | 显示全部楼层
bluefeel 发表于 2012-3-30 10:47
不错,用什么软件取模的?

用的是别人已经取好模生成C文件,然后自己编辑了下而已。

出0入0汤圆

发表于 2012-3-30 10:53:01 | 显示全部楼层
看起来还不错

出0入0汤圆

发表于 2012-3-30 11:48:55 | 显示全部楼层
不错,正好有需要

出0入0汤圆

发表于 2012-3-30 11:56:24 | 显示全部楼层
我也是用这个方法。

出0入0汤圆

发表于 2012-3-30 11:58:08 | 显示全部楼层
这个文库好,收藏了下次用

出0入0汤圆

 楼主| 发表于 2012-3-30 12:47:51 | 显示全部楼层
应2楼所问,在网上找了一个取模软件,感觉不错

出0入0汤圆

发表于 2012-3-30 12:58:50 | 显示全部楼层
不错,谢谢楼主。

出0入4汤圆

发表于 2012-3-30 13:06:16 | 显示全部楼层
我用这个串口软件,文件发送方式,STM32用串口DMA方式,波特率做到115200,没有问题。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-3-30 13:15:40 | 显示全部楼层
楼主不错。用的谁的开发板啊?

出0入0汤圆

发表于 2012-3-30 13:16:48 | 显示全部楼层
标记一下,谢谢楼主

出0入0汤圆

发表于 2012-3-30 13:25:44 | 显示全部楼层
9600波特率,速度有点慢,发大点的字库需要好半天,115200有解决办法没

出0入0汤圆

发表于 2012-3-30 13:31:07 | 显示全部楼层
mark先留着以后慢慢研究

出0入0汤圆

发表于 2012-3-30 13:33:47 | 显示全部楼层
不错,想过做这个功能的!

出0入0汤圆

发表于 2012-3-30 13:40:33 | 显示全部楼层
以前搞过,用MINIGUI的工具来取模。

出0入0汤圆

发表于 2012-3-30 13:50:17 | 显示全部楼层
附件下载有问题,1.62kb

出0入0汤圆

 楼主| 发表于 2012-3-30 13:55:07 | 显示全部楼层
lkl10800139 发表于 2012-3-30 13:15
楼主不错。用的谁的开发板啊?

sz的。
1、主要是便宜
2、并且例程比较水,然后自己写例程,达到加强锻炼的目的。

出0入0汤圆

 楼主| 发表于 2012-3-30 13:57:14 | 显示全部楼层
coding2011 发表于 2012-3-30 13:25
9600波特率,速度有点慢,发大点的字库需要好半天,115200有解决办法没

确实。主要是,写FLASH比较耗时。与串口软件也有关,楼上有个可以达到115200可以试试

出0入0汤圆

 楼主| 发表于 2012-3-30 14:01:08 | 显示全部楼层
banyai 发表于 2012-3-30 13:06
我用这个串口软件,文件发送方式,STM32用串口DMA方式,波特率做到115200,没有问题。 ...

谢谢,看了下,确实不错,果断收藏啊!

出0入0汤圆

发表于 2012-3-30 17:29:41 | 显示全部楼层
顶楼主,不过文件总是下载不成功。

出0入0汤圆

发表于 2012-3-30 18:01:42 | 显示全部楼层
我用的TF卡做字库,因为字库太大了,12 16 24 32 64几种大小的加起来flash装不下。

出0入0汤圆

发表于 2012-3-30 18:16:36 | 显示全部楼层
恭喜了   

出0入0汤圆

 楼主| 发表于 2012-3-30 19:53:14 | 显示全部楼层
jeffwei 发表于 2012-3-30 18:01
我用的TF卡做字库,因为字库太大了,12 16 24 32 64几种大小的加起来flash装不下。 ...

刚刚做32*32的字库,花了好久,你这么大的字库做好了得耗费多长时间啊?大神也提供个思路。

出0入0汤圆

 楼主| 发表于 2012-3-30 19:54:13 | 显示全部楼层
cemi 发表于 2012-3-30 17:29
顶楼主,不过文件总是下载不成功。

刚式了下,可以下载啊,不过很慢。。

出0入12汤圆

发表于 2012-3-30 20:02:07 | 显示全部楼层
下载失败,唉...........

出0入0汤圆

发表于 2012-3-30 20:17:07 | 显示全部楼层
串口波特率115200也不算高,还能再高不?cy7c68013单片机的串口波特率为230400。

出0入0汤圆

发表于 2012-3-30 20:24:24 | 显示全部楼层
速率太高,容易出错,加之写FLASH较耗时本来就满,还是慢些好

出0入0汤圆

发表于 2012-3-30 20:26:15 | 显示全部楼层
本帖最后由 kakarotto 于 2012-3-30 20:26 编辑

我用的GB2312汉字库都是256K的,直接存在stm32的flash里

下载的文件打不开,不知道怎么回事。

出0入0汤圆

发表于 2012-3-30 20:53:58 | 显示全部楼层
字库占了多少空间?

出0入0汤圆

发表于 2012-3-30 21:14:46 | 显示全部楼层
现在下载不了先收藏

出0入0汤圆

发表于 2012-3-30 21:19:01 | 显示全部楼层
电子白菜的有个不错的例程 可以去参考下

出0入0汤圆

发表于 2012-3-30 21:26:31 | 显示全部楼层
fk2011 发表于 2012-3-30 19:53
刚刚做32*32的字库,花了好久,你这么大的字库做好了得耗费多长时间啊?大神也提供个思路。 ...

用字模软件生成标准字库的二进制文件

  unsigned char region   = *p-0xa0;//得到区号  gb2312
  unsigned char location = *(p+1)-0xa0;//得到位号
  1. void LCD_CN(rt_uint16_t x,rt_uint16_t y,const rt_uint8_t *p,rt_uint8_t fon, rt_uint16_t charColor,rt_uint16_t bkColor)
  2. {
  3.   int fd;
  4.   
  5.   unsigned char region   = *p-0xa0;//得到区号  gb2312
  6.   unsigned char location = *(p+1)-0xa0;//得到位号
  7.   uint32_t index;//地址偏移量  
  8.   uint16_t i,n,end_x;
  9.   
  10.   
  11.   switch(fon)
  12.   {
  13.   case 12:
  14.     {
  15.       index = (94*(region-1)+location-1)*24;//地址偏移量  
  16.       end_x=x+11;
  17.       fd = open("/Chinese12.FON", O_RDONLY, 0);//打开在根目录的字库
  18.       lseek(fd,  index,  DFS_SEEK_SET);//设置偏移量
  19.       read(fd, buffer, 24);
  20.       
  21.       LCD_WriteReg(CUR_X,x); // .............. CUR_x
  22.       LCD_WriteReg(CUR_Y,y); // .............. CUR_y
  23.       LCD_WriteReg(END_X,end_x); // ............ END_X
  24.       LCD_WriteRAM_Prepare(); // .............. PIXELS
  25.       for(n=0;n<24;n++)
  26.       {
  27.         for (i = 0; i < 8; i++)//
  28.         {
  29.           if (buffer[n] & (0x01<<i))
  30.           {
  31.             LCD_WriteRAM(charColor);//写有效点
  32.           }
  33.           else
  34.           {
  35.             LCD_WriteRAM(bkColor);//写底色
  36.           }
  37.         }
  38.         for (i = 0; i < 4; i++)//
  39.         {
  40.           if (buffer[n+1] & (0x01<<i))
  41.           {
  42.             LCD_WriteRAM(charColor);//写有效点
  43.           }
  44.           else
  45.           {
  46.             LCD_WriteRAM(bkColor);//写底色
  47.           }
  48.         }
  49.         n+=1;
  50.       }
  51.     }
  52.     break;
  53.   case 16:
  54.     {
  55.       index = (94*(region-1)+location-1)*32;//地址偏移量  
  56.       end_x=x+15;
  57.       
  58.       fd = open("/Chinese16.FON", O_RDONLY, 0);//打开在根目录的字库
  59.       if (fd < 0)
  60.         {
  61.                 rt_kprintf("check: open file for read failed\n");
  62.                 return;
  63.         }
  64.       lseek(fd,  index,  DFS_SEEK_SET);//设置偏移量
  65.       read(fd, buffer, 32);
  66.       
  67.       
  68.       
  69.       LCD_WriteReg(CUR_X,x); // .............. CUR_x
  70.       LCD_WriteReg(CUR_Y,y); // .............. CUR_y
  71.       LCD_WriteReg(END_X,end_x); // ............ END_X
  72.       LCD_WriteRAM_Prepare(); // .............. PIXELS
  73.       for(n=0;n<32;n++)
  74.       {
  75.         for (i = 0; i < 8; i++)//
  76.         {
  77.           if (buffer[n] & (0x01<<i))
  78.           {
  79.             LCD_WriteRAM(charColor);//写有效点
  80.           }
  81.           else
  82.           {
  83.             LCD_WriteRAM(bkColor);//写底色
  84.           }
  85.         }
  86.       }
  87.     }
  88.     break;
  89.   case 24:
  90.     {
  91.       index = (94*(region-1)+location-1)*72;//地址偏移量  
  92.       end_x=x+23;
  93.       
  94.       fd = open("/Chinese24.FON", O_RDONLY, 0);//打开在根目录的字库
  95.       lseek(fd,  index,  DFS_SEEK_SET);//设置偏移量
  96.       read(fd, buffer, 72);
  97.       
  98.       LCD_WriteReg(CUR_X,x); // .............. CUR_x
  99.       LCD_WriteReg(CUR_Y,y); // .............. CUR_y
  100.       LCD_WriteReg(END_X,end_x); // ............ END_X
  101.       LCD_WriteRAM_Prepare(); // .............. PIXELS
  102.       for(n=0;n<72;n++)
  103.       {
  104.         for (i = 0; i < 8; i++)//
  105.         {
  106.           if (buffer[n] & (0x01<<i))
  107.           {
  108.             LCD_WriteRAM(charColor);//写有效点
  109.           }
  110.           else
  111.           {
  112.             LCD_WriteRAM(bkColor);//写底色
  113.           }
  114.         }        
  115.       }
  116.     }
  117.     break;
  118.   case 32:
  119.     {
  120.       index = (94*(region-1)+location-1)*128;//地址偏移量  
  121.       end_x=x+31;
  122.       fd = open("/Chinese32.FON", O_RDONLY, 0);//打开在根目录的字库
  123.       lseek(fd,  index,  DFS_SEEK_SET);//设置偏移量
  124.       read(fd, buffer, 128);
  125.       LCD_WriteReg(CUR_X,x); // .............. CUR_x
  126.       LCD_WriteReg(CUR_Y,y); // .............. CUR_y
  127.       LCD_WriteReg(END_X,end_x); // ............ END_X
  128.       LCD_WriteRAM_Prepare(); // .............. PIXELS
  129.       for(n=0;n<128;n++)
  130.       {
  131.         for (i = 0; i < 8; i++)//
  132.         {
  133.           if (buffer[n] & (0x01<<i))
  134.           {
  135.             LCD_WriteRAM(charColor);//写有效点
  136.           }
  137.           else
  138.           {
  139.             LCD_WriteRAM(bkColor);//写底色
  140.           }
  141.         }
  142.       }
  143.     }
  144.     break;
  145.     case 64:
  146.     {
  147.       index = (94*(region-1)+location-1)*448;//地址偏移量  
  148.       end_x=x+63;
  149.       fd = open("/Chinese64.FON", O_RDONLY, 0);//打开在根目录的字库
  150.       lseek(fd,  index,  DFS_SEEK_SET);//设置偏移量
  151.       read(fd, buffer, 448);
  152.       LCD_WriteReg(CUR_X,x); // .............. CUR_x
  153.       LCD_WriteReg(CUR_Y,y); // .............. CUR_y
  154.       LCD_WriteReg(END_X,end_x); // ............ END_X
  155.       LCD_WriteRAM_Prepare(); // .............. PIXELS
  156.       for(n=0;n<448;n++)
  157.       {
  158.         for (i = 0; i < 8; i++)//
  159.         {
  160.           if (buffer[n] & (0x01<<i))
  161.           {
  162.             LCD_WriteRAM(charColor);//写有效点
  163.           }
  164.           else
  165.           {
  166.             LCD_WriteRAM(bkColor);//写底色
  167.           }
  168.         }
  169.       }
  170.     }
  171.     break;
  172.   default:break;
  173.   }
  174.   
  175.   close(fd);
  176. }
复制代码

出0入0汤圆

发表于 2012-3-30 21:30:27 | 显示全部楼层
这个字库不错,收藏了,谢谢楼主

出0入0汤圆

发表于 2012-3-30 21:40:49 | 显示全部楼层
这种方式挺好,不用带字库的LCD屏,成本降低了。

出0入0汤圆

发表于 2012-3-30 21:42:19 | 显示全部楼层
THX 好代码!

出0入0汤圆

发表于 2012-3-30 21:47:09 | 显示全部楼层
估计字模以后能用到,先感谢楼主了

出0入0汤圆

 楼主| 发表于 2012-3-30 22:38:37 | 显示全部楼层
本帖最后由 fk2011 于 2012-3-30 22:42 编辑

32*32楷体也行。
注意:如果使用32*32的中文字符,工程文件中需要修改void GetGBKCode(unsigned char* pBuffer,unsigned char * c)和
void PutChinese(uint16_t Xpos,uint16_t Ypos,uint8_t *str,uint16_t Color,uint16_t bkColor)
  1. void GetGBKCode(unsigned char* pBuffer,unsigned char * c)
  2. {
  3.    unsigned char High8bit,Low8bit;
  4.    High8bit=*c;     /* 取高8位数据 */
  5.    Low8bit=*(c+1);  /* 取低8位数据 */

  6.    W25X_Read_Bytes(((High8bit-0xb0)*94+Low8bit-0xa1)*128,pBuffer,128);        //32*32        横向取模 高位在左
  7. }


  8. void PutChinese(uint16_t Xpos,uint16_t Ypos,uint8_t *str,uint16_t Color,uint16_t bkColor)
  9. {
  10.   uint8_t i,j;
  11.   uint8_t buffer[128];
  12.   uint32_t tmp_char=0;
  13.    

  14.   GetGBKCode(buffer,str);  /* 取字模数据 32*32点阵*/

  15.   for (i=0;i<32;i++)
  16.   {
  17.     tmp_char=buffer[4*i];
  18.         tmp_char=(tmp_char)<<24;
  19.         tmp_char|=((u32)buffer[4*i+1])<<16;
  20.         tmp_char|=((u32)buffer[4*i+2])<<8;
  21.         tmp_char|=((u32)buffer[4*i+3]);

  22.     for (j=0;j<32;j++)
  23.     {
  24.       if ( (tmp_char >>31 - j) & 0x01 == 0x01)
  25.         {
  26.           LCD_SetPoint(Xpos+j,Ypos+i,Color);  /* 字符颜色 */
  27.         }
  28.         else
  29.         {
  30.           LCD_SetPoint(Xpos+j,Ypos+i,bkColor);  /* 背景颜色 */
  31.         }
  32.     }
  33.   }
  34. }
复制代码

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-3-30 22:46:53 | 显示全部楼层
以前吧字库放在SD卡里 读取速度那叫一个慢啊  后来用了SPI flash就是快 但是字库下进去后盖起来麻烦

出0入0汤圆

发表于 2012-3-31 02:01:31 | 显示全部楼层
不错啊,支持~~有空也做一个~~

出0入0汤圆

发表于 2012-3-31 10:34:33 | 显示全部楼层
不错。

出0入0汤圆

发表于 2012-3-31 10:45:17 | 显示全部楼层
不错,正好需要,帮顶

出0入0汤圆

发表于 2012-3-31 10:48:47 | 显示全部楼层
有空试一下。

出0入0汤圆

发表于 2012-3-31 11:19:46 | 显示全部楼层
收藏了先

出0入0汤圆

发表于 2012-3-31 13:35:24 | 显示全部楼层
以前做MP3都是用SD存储字库,还没有用过flash。

出0入0汤圆

发表于 2012-3-31 19:37:58 | 显示全部楼层
首次发现新论坛比老论坛好的地方,看代码方便多了。

出0入0汤圆

发表于 2012-3-31 22:25:56 | 显示全部楼层
我也贡献一个字库,是16X16的结构,但字模点阵是14X14的,这样显示的时候,字上下左右都有间距,看之比较不拥挤,结构和UCDOS的HZK16一样.

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-3-31 22:33:50 | 显示全部楼层
楼主发了个更新的,大家去看看吧
http://www.ourdev.cn/forum.php?m ... 6orderby%3Ddateline

出0入0汤圆

发表于 2012-3-31 22:45:53 | 显示全部楼层
Zimo21是一个经典的取模软件啊

出0入0汤圆

发表于 2012-4-1 13:03:30 | 显示全部楼层
谢谢楼主,可惜下载不了,每次都报错。

出0入0汤圆

发表于 2012-4-1 13:44:12 | 显示全部楼层
组织点人手,志愿参加,每人写点字库,人多力量大

出0入0汤圆

发表于 2012-4-1 14:49:15 | 显示全部楼层
厉害,学习ing

出0入0汤圆

发表于 2012-4-1 17:24:19 | 显示全部楼层

出0入0汤圆

发表于 2012-4-1 17:29:27 | 显示全部楼层
jeffwei 发表于 2012-3-30 18:01
我用的TF卡做字库,因为字库太大了,12 16 24 32 64几种大小的加起来flash装不下。 ...

用NandFlash做字库也不错,容量大,显示大字体的LED字库控制卡,就有用NandFlash做

出0入0汤圆

发表于 2012-4-1 17:37:46 | 显示全部楼层
两个帖子的资料都无法下载····lz用心了!!!!

出0入0汤圆

发表于 2012-4-1 22:56:13 | 显示全部楼层

出0入0汤圆

发表于 2012-4-1 23:33:04 | 显示全部楼层
果断mark

出0入0汤圆

发表于 2012-4-1 23:41:46 | 显示全部楼层
不错,谢谢分享

出0入0汤圆

发表于 2012-4-1 23:49:37 | 显示全部楼层
遗憾。只能先收藏了。

出0入0汤圆

发表于 2012-4-2 00:33:03 | 显示全部楼层
不错不错  !

出0入0汤圆

发表于 2012-4-2 00:42:50 | 显示全部楼层
谢谢分享  mark

出0入0汤圆

发表于 2012-4-2 14:17:10 | 显示全部楼层
赞一个

出0入0汤圆

发表于 2012-4-2 14:40:42 | 显示全部楼层
很强大,多谢楼主!!

出0入0汤圆

发表于 2012-4-2 15:48:48 | 显示全部楼层
估计以后能用到,感谢楼主

出0入0汤圆

发表于 2012-4-2 20:34:46 | 显示全部楼层
赞一个~不能下载

出0入0汤圆

发表于 2012-4-2 21:21:40 | 显示全部楼层
spi  flash W25X16 速度有点慢......在加上9600的串口,速度是上不去的吧.

出0入0汤圆

发表于 2012-4-2 22:02:48 | 显示全部楼层
今天刚写了代码,字库合并的。
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>


  4. int main(void)
  5. {
  6.         FILE *fall,
  7.                  *fhzk16,
  8.                  *fhzk16f,
  9.                  *fhzk12,
  10.                  *fhzk24h,
  11.                  *flogo;
  12.         int i,j;
  13.         int counter =0;

  14.         unsigned char c;


  15.         fhzk16 = fopen(".\\1_HZK16","rb");
  16.         fhzk16f = fopen(".\\2_HZK16F","rb");
  17.         fhzk12 = fopen(".\\3_HZK12","rb");
  18.         fhzk24h = fopen(".\\4_HZK24H","rb");
  19.         flogo = fopen(".\\5_LOGO.BIN","rb");

  20.         fall = fopen(".\\all.bin","wb");


  21. //hzk16
  22.         while(!feof(fhzk16)){
  23.                         c =(unsigned char)fgetc(fhzk16);
  24.                         fputc(c,fall);
  25.                         counter ++;
  26.         }
  27.        
  28.         while(counter <1024*64*5){
  29.                         fputc(0,fall);
  30.                         counter ++;
  31.         }
  32. //hzk16f
  33.         while(!feof(fhzk16f)){
  34.                         c =(unsigned char)fgetc(fhzk16f);
  35.                         fputc(c,fall);
  36.                         counter ++;
  37.         }
  38.        
  39.         while(counter <1024*64*10){
  40.                         fputc(0,fall);
  41.                         counter ++;
  42.         }
  43. //hzk12
  44.         while(!feof(fhzk12)){
  45.                         c =(unsigned char)fgetc(fhzk12);
  46.                         fputc(c,fall);
  47.                         counter ++;
  48.         }
  49.        
  50.         while(counter <1024*64*15){
  51.                         fputc(0,fall);
  52.                         counter ++;
  53.         }
  54. //hzk24h
  55.         while(!feof(fhzk24h)){
  56.                         c =(unsigned char)fgetc(fhzk24h);
  57.                         fputc(c,fall);
  58.                         counter ++;
  59.         }
  60.        
  61.         while(counter <1024*64*24){
  62.                         fputc(0,fall);
  63.                         counter ++;
  64.         }
  65. //logo
  66.         while(!feof(flogo)){
  67.                         c =(unsigned char)fgetc(flogo);
  68.                         fputc(c,fall);
  69.                         counter ++;
  70.         }
  71.        
  72.         while(counter <1024*64*28){
  73.                         fputc(0,fall);
  74.                         counter ++;
  75.         }


  76.         fclose(fhzk16);
  77.         fclose(fhzk16f);
  78.         fclose(fhzk12);
  79.         fclose(fhzk24h);
  80.         fclose(flogo);
  81.         fclose(fall);

  82. }
复制代码

出0入0汤圆

发表于 2012-4-2 22:20:33 | 显示全部楼层
正需要这个软件。。。但这服务器。。。。下不了。。。。。。。。

出0入0汤圆

发表于 2012-4-2 22:27:57 | 显示全部楼层
不错,太好了

出0入0汤圆

 楼主| 发表于 2012-4-2 22:30:00 | 显示全部楼层
本帖最后由 fk2011 于 2012-4-2 22:38 编辑
xiaoliusheng 发表于 2012-4-2 21:21
spi  flash W25X16 速度有点慢......在加上9600的串口,速度是上不去的吧.


看此贴,修改了写入格式,速度提升一倍,另外baud提升到115200http://www.ourdev.cn/thread-5463766-1-1.html 写入速度仅仅受制与串口速度,实测210K字库写完呢耗费70s

出0入0汤圆

发表于 2012-4-2 22:42:09 | 显示全部楼层
weixinal 发表于 2012-3-30 21:47
估计字模以后能用到,先感谢楼主了

好思路,顶起来!!!

出0入0汤圆

发表于 2012-4-3 11:40:32 | 显示全部楼层
谢谢楼主,可惜下载不了,每次都报错。

出0入0汤圆

发表于 2012-4-3 11:54:56 | 显示全部楼层
当时做的时候直接把字库分三次写到M25P16里边去的。

出0入0汤圆

发表于 2012-4-9 16:04:45 | 显示全部楼层
mark   

出0入0汤圆

发表于 2012-4-9 16:55:07 | 显示全部楼层
先存着,以后肯定用得到。

出0入0汤圆

发表于 2012-4-9 17:00:28 | 显示全部楼层
支持下,呵呵

出0入0汤圆

发表于 2012-4-10 21:42:08 | 显示全部楼层
怎么感觉换了论坛啥都下载不了,是网速问题?

出0入0汤圆

发表于 2012-4-12 12:19:00 | 显示全部楼层
谢谢楼主分享!!!

出0入0汤圆

发表于 2012-4-14 18:35:34 | 显示全部楼层
估计字模以后能用到,先感谢楼主了

出0入0汤圆

发表于 2012-4-14 20:39:04 | 显示全部楼层
很好,以后用得着,收藏先。

出0入24汤圆

发表于 2012-4-14 22:35:26 | 显示全部楼层
STM32  串口+DMA
开两个缓冲区,设置好标志位,用乒乓方式,一个缓冲区满了就换到另外一个缓冲区,同时对FLASH编程
速度可以快很多
我之前就是这么干的

出0入0汤圆

 楼主| 发表于 2012-4-15 11:08:06 | 显示全部楼层
20061002838 发表于 2012-4-14 22:35
STM32  串口+DMA
开两个缓冲区,设置好标志位,用乒乓方式,一个缓冲区满了就换到另外一个缓冲区,同时对FL ...

好方法。开始试过,没想到STM32的DMA,但是因为串口中断干扰SPI,结果失败了。

出0入24汤圆

发表于 2012-4-15 14:21:08 | 显示全部楼层
fk2011 发表于 2012-4-15 11:08
好方法。开始试过,没想到STM32的DMA,但是因为串口中断干扰SPI,结果失败了。 ...

用了DMA就不用开串口中断了,直接用DMA中断就行了。

出0入0汤圆

发表于 2012-4-15 18:42:31 | 显示全部楼层
真正有用!

出0入0汤圆

发表于 2012-4-15 18:49:08 | 显示全部楼层
很有用的东西,另外楼主,你的头像很搞笑啊。

出0入0汤圆

发表于 2012-4-15 19:37:24 | 显示全部楼层
好东西要顶。

出0入0汤圆

发表于 2012-4-17 17:01:29 | 显示全部楼层
好东西,学习了

出0入0汤圆

 楼主| 发表于 2012-4-17 18:54:25 | 显示全部楼层
本帖最后由 fk2011 于 2012-4-17 18:56 编辑

网友反映似乎下载不了,这里再打包传个!不包含工程文件。详细制作过程见贴:http://www.ourdev.cn/thread-5463766-1-1.html

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-4-17 20:09:19 | 显示全部楼层
好东东. 继续关注

出0入0汤圆

发表于 2012-4-18 09:33:31 | 显示全部楼层
mark, 不能下载

出0入0汤圆

发表于 2012-4-18 10:52:08 | 显示全部楼层
MARK
谢谢分享

出0入0汤圆

发表于 2012-4-18 13:11:36 | 显示全部楼层
这个不错,收藏了

出0入0汤圆

发表于 2012-4-18 14:01:40 | 显示全部楼层
wsm80828 发表于 2012-3-30 10:53
看起来还不错

看起来真不错                  

出0入0汤圆

 楼主| 发表于 2012-4-18 18:38:51 | 显示全部楼层
STM32供应商 发表于 2012-4-18 11:18
同问..............

16x16大约二百多KB吧,占空间大小还与字模大小有关.

出0入0汤圆

发表于 2012-4-18 19:37:54 | 显示全部楼层
前面几个软件好像都不能下载……

       mark

出0入0汤圆

发表于 2012-4-19 00:42:12 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2012-4-19 19:40:55 | 显示全部楼层
先收下,这需要这个东东。

出0入0汤圆

发表于 2012-4-19 20:45:20 | 显示全部楼层
mark,以后用

出0入112汤圆

发表于 2012-4-22 23:30:46 | 显示全部楼层

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

本版积分规则

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

GMT+8, 2024-6-1 16:28

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

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