我设置显示数据是小数点后三位,可屏幕显示的确是小数点后好几位,有时采集的数据,显示屏上也会出错。改了好长时间就是改不过来/。望指教。
int main(void)
{
char str1[8]={0};
char str2[8]={0};
char str3[6]={0};
unsigned char i;
LED_GPIO_Config(); /* LED³õʼ»¯ */
USART_Config(); /* ´®¿Ú³õʼ»¯ */
SysTick_Init(); /*³õʼ»¯ÑÓ³Ùº¯Êý*/
i2c_CfgGpio(); /*I2C×ÜÏßµÄGPIO³õʼ»¯*/
OLED_Init(); /* OLED³õʼ»¯ */
ADVANCE_TIM_Init(); //²¶»ñpwmµÄ
/*OLED¼ì²â²âÊÔ*/
while(1)
{
OLED_Fill(0xFF);//È«ÆÁµãÁÁ
Delay_s(2);
OLED_Fill(0x00);//È«ÆÁÃð
Delay_s(2);
for(i=0;i<2;i++)
{
OLED_ShowCN(0+i*16,0,i); //&sup2;&acirc;&Ecirc;&Ocirc;&Iuml;&Ocirc;&Ecirc;&frac34;&Ouml;&ETH;&Icirc;&Auml;
}
for(i=2;i<4;i++)
{
OLED_ShowCN(0+(i-2)*16,2,i);
}
for(i=4;i<7;i++)
{
OLED_ShowCN(0+(i-4)*16,4,i);
}
while(1)
{
sprintf(str1,&quot;%.3f&quot;,Frequency); //这里出错
sprintf(str2,&quot;%8d&quot;,pinlvalue); //这里出错
sprintf(str3,&quot;%.3f&quot;,DutyCycle); //这里出错
OLED_ShowStr(33,0,(unsigned char*)str1,2);
OLED_ShowStr(33,2,(unsigned char*)str2,2);
OLED_ShowStr(49,4,(unsigned char*)str3,2);
Delay_ms(200);
printf(&quot;\r\n time value = %d \r\n&quot;,pinlvalue); |