OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8165|回复: 3

向spi flash写入汉字字库问题?

[复制链接]

1

主题

7

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2015-3-14
在线时间
0 小时
发表于 2015-4-14 19:36:13 | 显示全部楼层 |阅读模式
5金钱
我用串口向spi flash 里面写入了汉字字库,但是我不知道有没有写入成功,取出来的字是乱码的?怎么检查有没有写入成功啊?
#include "stm32f10x_conf.h"
#include "bsp_ili9341_lcd.h"
#include "bsp_led.h"
//#include "tupian.h"
#include "spi_flash.h"
#include "bsp_usart1.h"
#include "stdio.h"

void Delay(uint32_t N)
{
int i;
for(i=0;i<N;i--);
}
//???¨?ò???? usart1
int fputc(int ch, FILE *f)
{
/* ?????????USART1 */
USART_SendData(USART1, (uint8_t) ch);

/* ?????? */
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
USART_ClearFlag( USART1, USART_FLAG_TXE);

return (ch);
}
///???c???scanf?USART1
int fgetc(FILE *f)
{
/* ????1???? */
while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);
USART_ClearFlag(USART1,USART_FLAG_RXNE);
return (int)USART_ReceiveData(USART1);
}
void GetGBKCode(unsigned char* pBuffer,unsigned char * c)

   unsigned char High8bit,Low8bit; 
   High8bit=*c;     /* ????8?????? */
   Low8bit=*(c+1);  /* ????8?????? */
SPI_FLASH_PageWrite(pBuffer,(94*(High8bit-0xa0-1)+(Low8bit-0xa0-1))*32,32);

 // SPI_FLASH_BufferWrite(pBuffer,((High8bit-0xb0)*94+Low8bit-0xa1)*64,64);
printf("\r\n ??W25x16 SPI FLASH????????????: %s",pBuffer);

}
  
void PutChinese(uint16_t Xpos,uint16_t Ypos,uint8_t *str,uint16_t Color,uint16_t bkColor)
{
uint8_t i=0,j=0;
uint8_t buffer[32];

GetGBKCode(buffer,str);  /* ??×??????? */

for (i=0;i<16;i++)
{
for(j=0;j<8;j++)
{
if ( (buffer[i*2] >> 7-j) & 0x01 == 0x01)
{
LCD_SetPoint(Xpos+i,Ypos+j,Color);  /* ×?·????? */
}
else
{
LCD_SetPoint(Xpos+i,Ypos+j,bkColor);  /* ±??°???? */
}
if ( (buffer[i*2+1] >> 7-j) & 0x01 == 0x01)
{
LCD_SetPoint(Xpos+i,Ypos+j+8,Color);  /* ×?·????? */
}
else
{
LCD_SetPoint(Xpos+i,Ypos+j+8,bkColor);  /* ±??°???? */
}
}
}
}
void GUI_Chinese(uint16_t Xpos, uint16_t Ypos, uint8_t *str,uint16_t Color, uint16_t bkColor)
{
  do
  {
    PutChinese(Xpos,Ypos,str++,Color,bkColor);
str++;
   if (Ypos<304)
    {
      Ypos+=16;
    }
    else if (Xpos<224)
    {
      Ypos=0;
      Xpos+=16;
    }
    else
    {
      Xpos=0;
      Ypos=0;
    }       
  }
  while(*str!=0);
}
int main()
{
// int i,num;
   LCD_Init();
Lcd_GramScan(1);
LED_GPIO_Config();
LCD_Clear(0,0,240,320,BLUE);
USART1_Config();
NVIC_Config();
   SPI_GPIO_Config();
// SPI_flash_Sectorall();
 
LED1_ON;
LED2_ON;
LED3_ON;
   printf("???ò????????");
GUI_Chinese(20,20,"????",YELLOW,BLACK);
while(1)
{

  }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-4-14 22:19:01 | 显示全部楼层
你的字库制作成功没有,是不是和你的显示程序的扫描方式一样的
开往春天的手扶拖拉机
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2015-3-14
在线时间
0 小时
 楼主| 发表于 2015-4-16 13:07:41 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
成功了啊。不是bin文件吗?但是读出来的就是乱码
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-4-16 15:08:45 | 显示全部楼层
你写的是bin文件?我们的不是bin文件,是.FON文件
开往春天的手扶拖拉机
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 12:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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