2个回答
展开全部
只要上位机能发过来保存于数组中
以下是我从STM32教程中摘抄的子程序:
const uint8_t *pstr 是指针,指向存储字符串的数组
如果读入的第一个数据小于=126,则为英文字符
如果读入的第一个数据大于126,则为汉字,汉字是两个字符
/*
* 中英文混合显示,不能显示中文标点符号
* 中文大小:16*16
* 英文大小:12*6
*/
void LCD_DispEnCh(uint16_t x, uint16_t y, const uint8_t *pstr, uint16_t color)
{
while(*pstr != '\0')
{
if(*pstr <= 126) /* 字符串 */
{
if( x > (COLUMN-STR_WIDTH) )//COLUMN是宽度方向相素数
{
x = 0;
y += STR_HEIGHT;
}
if( y > (PAGE-STR_HEIGHT) )
{
x = 0;
y = 0;
}
LCD_DispChar(x, y, *pstr, color);
x += STR_WIDTH;
pstr++;
}
else /* 汉字 */
{
if( x > (COLUMN-CH_WIDTH) )
{
x = 0;
y += CH_HEIGHT;
}
if( y > (PAGE-CH_HEIGHT) )
{
x = 0;
y = 0;
}
LCD_DispCH(x, y, pstr, color);
pstr +=2;
x += CH_WIDTH;
}
}
}
以下是我从STM32教程中摘抄的子程序:
const uint8_t *pstr 是指针,指向存储字符串的数组
如果读入的第一个数据小于=126,则为英文字符
如果读入的第一个数据大于126,则为汉字,汉字是两个字符
/*
* 中英文混合显示,不能显示中文标点符号
* 中文大小:16*16
* 英文大小:12*6
*/
void LCD_DispEnCh(uint16_t x, uint16_t y, const uint8_t *pstr, uint16_t color)
{
while(*pstr != '\0')
{
if(*pstr <= 126) /* 字符串 */
{
if( x > (COLUMN-STR_WIDTH) )//COLUMN是宽度方向相素数
{
x = 0;
y += STR_HEIGHT;
}
if( y > (PAGE-STR_HEIGHT) )
{
x = 0;
y = 0;
}
LCD_DispChar(x, y, *pstr, color);
x += STR_WIDTH;
pstr++;
}
else /* 汉字 */
{
if( x > (COLUMN-CH_WIDTH) )
{
x = 0;
y += CH_HEIGHT;
}
if( y > (PAGE-CH_HEIGHT) )
{
x = 0;
y = 0;
}
LCD_DispCH(x, y, pstr, color);
pstr +=2;
x += CH_WIDTH;
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询