{ unsigned char High8bit,Low8bit; unsigned int pos; static uint8_t everRead=0; // printf("c is %x\r\n",c); /*第一次使用,初始化FLASH*/ if(everRead == 0) { SPI_FLASH_Init(); everRead = 1; } Low8bit= c >> 8; /* 取高8位数据 */ High8bit= c & 0x00FF; /* 取低8位数据 */ /*GB2312 公式*/ pos = ((High8bit-0xa1)*94+Low8bit-0xa1)*WIDTH_CH_CHAR*HEIGHT_CH_CHAR/8; // printf("pos is %x\r\n",pos); SPI_FLASH_BufferRead(pBuffer,GBKCODE_START_ADDRESS+pos,WIDTH_CH_CHAR*HEIGHT_CH_CHAR/8); //读取字库数据 return 0; }
时间: 2023-02-06 19:26:54 浏览: 100
这段代码的作用是对FLASH进行初始化,并将变量c的高8位存储在High8bit中,低8位存储在Low8bit中。
代码中定义了3个变量:
- unsigned char High8bit:用于存储c的高8位。
- unsigned char Low8bit:用于存储c的低8位。
- unsigned int pos:没有被使用。
- static uint8_t everRead:用于标记是否第一次使用FLASH。
代码的执行流程如下:
1. 判断是否第一次使用FLASH,如果是,则执行SPI_FLASH_Init()初始化FLASH,并将everRead赋值为1。
2. 将变量c的高8位右移8位后赋值给Low8bit。
3. 将变量c的值赋值给High8bit。
注意:在C语言中,>>运算符表示右移,用于将一个数的二进制向右移动指定位数。例如,将一个数x的二进制向右移动2位,可以写成x>>2。
阅读全文