江协科技 OLED库 OLED_Print( )函数自动换行

void OLED_Printf(int16_t X, int16_t Y, uint8_t FontSize, char *format, ...)
{
	char String[256];						//定义字符数组
	va_list arg;							//定义可变参数列表数据类型的变量arg
	va_start(arg, format);					//从format开始,接收参数列表到arg变量
	vsprintf(String, format, arg);			//使用vsprintf打印格式化字符串和参数列表到字符数组中
	va_end(arg);							//结束变量arg
	
	if(FontSize == OLED_6X8)                //在显示6X8字符时效果不好,因为128/6 = 21...2
	{                                       //这会导致每行的最后会多显示两列,需要更改底层解决
		for(uint16_t i = 0; i < strlen(String); i+=21)
		{
			OLED_ShowString(X, Y+i/21*9, &String[i], FontSize);//OLED显示字符数组(字符串)
		}
	}else if(FontSize == OLED_8X16){
		for(uint16_t i = 0; i < strlen(String); i+=16)
		{
			OLED_ShowString(X, Y+i, &String[i], FontSize);//OLED显示字符数组(字符串)
		}
	}
}

6X8字符显示 

OLED_Printf(0, 0, OLED_6X8, "Hi crkylin, this is your thirty-two 

你可能感兴趣的:(科技)