新手入门
- 积分
- 19
- 金钱
- 19
- 注册时间
- 2017-9-6
- 在线时间
- 2 小时
|
2金钱
各位先進,
晚上好,請教一下
我買了一個OLED顯示屏
將例程由F3改為F4,可以順利點亮OLED,也可以顯示字元
現在要求程式要做一個計算
因此加上這兩行(紅色字那兩行)
其實是加上紅色字第一行就會死機了
可是拿掉那兩行,又一切正常
拜託請高手幫我看一下
我真的沒辦法了
感謝
#include "stm32f4xx.h"
#include "OLED_I2C.h"
#include "delay.h"
#include "stdio.h"
#include <stdlib.h>
#include <string.h>
#include "math.h"
__IO uint32_t TimingDelay = 0;
unsigned char as[12];
float kk=0.0;
int main(void)
{
extern const unsigned char BMP1[];
DelayInit();
I2C_Configuration();
OLED_Init();
float kk=0.0
while(1)
{
kk = 1.41421+kk;
sprintf (as,"%0.2f", kk);
OLED_Fill(0x00);//??All OFF
DelayS(2);
//for(i=0;i<5;i++)
OLED_ShowStr(0,3,"1234567890",1);//test 6*8 font
OLED_ShowStr(0,4,as,2); //test 8*16 font
DelayS(2);
OLED_CLS();//Clesn Screen??
OLED_OFF();//TEST screen sleep mode
DelayS(2);
OLED_ON();//test screen weak up.
//OLED_DrawBMP(0,0,128,8,(unsigned char *)BMP1);//test BMP fig. display
//DelayS(8);
}
}
void TimingDelay_Decrement(void)
{
if (TimingDelay != 0x00){
TimingDelay--;
}
}
|
最佳答案
查看完整内容[请看2#楼]
我找到原因了是 keli 4無法處理sprintf(as,"%2.2f",kk),也就是KK不可宣告成浮點數,KK需宣告成整數,
並且將原程式中的"%2.2f"改為"%2d",就正常了,
上網查了資料,發現keli 4不一定能處理sprintf的浮點,也就是說可能會動,可能不會動
但是基本上無法預知定跑出來的是甚麼,可能是亂碼,所以如果要做浮點,要將浮點先轉整數
謝謝各位參與討論
|