欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: keil編譯錯誤missing';' before'i' [打印本頁]

作者: zaq12282153    時間: 2018-5-23 13:31
標題: keil編譯錯誤missing';' before'i'
missing';' before'i'
大神們那里出問題

FL4S}69E_WZ)95I0QZL](%6.png (6.41 KB, 下載次數: 68)

FL4S}69E_WZ)95I0QZL](%6.png

7XK)DD}JF_O)I17U~MWXH4P.png (1.29 KB, 下載次數: 77)

7XK)DD}JF_O)I17U~MWXH4P.png

作者: wenzedong    時間: 2018-5-23 19:28
有問題,如果你這個for循環是實現延時,那肯定需要調用啊,調用的話你不是寫的子函數,也不是放在main內,你把它寫成子函數問題就解決了
作者: yanwang    時間: 2018-5-23 20:50
你這for是死循環嗎
作者: 程序新手    時間: 2018-5-24 09:17
你這段程序加的位置不對
可以寫成子函數
希望對你有幫助
作者: qinwenyuqw2    時間: 2018-5-24 10:26
這個for語句一般不直接寫在定義函數下面的,而且你這個for函數是個死循環,0開始減的話永遠到不了200啊,如果函數是為了延時的話可以寫一個delay函數
作者: 悄悄出現    時間: 2018-5-24 14:46
這個程序段的位置不對,應該寫在一個子程序里面
作者: 15942379927    時間: 2018-5-24 18:29
for函數放置位置不對
作者: mcuz    時間: 2018-5-24 20:26
我認為程序段的位置確實不對,應該位于某個子程序中。但死循環,我覺得不是,是可以執行一次的。執行一次后就脫離循環了。
作者: angmall    時間: 2018-5-24 23:45
你寫漏了
應該位于delay()延時子程序中。

  1. #include <reg51.h>
  2. #include "AT24C02.h"
  3. sbit AT24C02_SDA = P3^6;        //定義數據線
  4. sbit AT24C02_SCL = P3^7;        //定義時鐘線

  5. void delay()
  6. {
  7.         uchar i;
  8.         for(i=0; i<200; i--);
  9. }
  10. void I2C_Start()
  11. {
  12.         AT24C02_SDA = 1;   delay();
  13.         AT24C02_SCL = 1;   delay();
  14.         AT24C02_SDA = 0;   delay();
  15.         AT24C02_SCL = 0;
  16. }                      //鉗位I2C總線,準備發送數據
復制代碼


作者: ZYL520    時間: 2018-5-25 01:51
對,。那個肯定是延時函數。你抄low了
作者: wangjie1221    時間: 2018-5-25 02:37
uchar是無符號字符型變量類型錯誤 i--后i < 0,屬于
作者: wangjie1221    時間: 2018-5-25 02:41
angmall 發表于 2018-5-24 23:45
你寫漏了
應該位于delay()延時子程序中。

變量i是uchar(無符號字符型的),當執行i--后,i < 0,屬于變量類型錯誤
作者: mcuz    時間: 2018-5-25 07:42
uchar變量 i=0 后i-- 結果i=0xff ,是255,不是負數,不存在變量類型錯誤之說
作者: y473143599    時間: 2018-5-25 08:37

這個for語句一般不直接寫在定義函數下面的,而且你這個for函數是個死循環,0開始減的話永遠到不了200啊,如果函數是為了延時的話可以寫一個delay函數
作者: yeyaoyihao    時間: 2018-5-25 11:38
根據錯誤提示來看,你 uchar i ;這個語句后面缺了一個分號,要知道分號必須緊貼最后一個字符,改成下面這樣應該就沒問題了 uchar i;
作者: jovewaters    時間: 2018-5-25 17:02
應該是for(i=0;i<200;i++);
作者: 一夜花草    時間: 2018-5-25 18:18
這個for循環沒有寫在一個延時函數里面比如void delay(){for(i=0;<200;i--);}。
作者: 一夜花草    時間: 2018-5-25 18:20
寫一個像這樣的函數void delay (int x) { int i,j; for (i=0;i<x;i++)  for(j=0;j<600;j++); },然后在主程里面調用
作者: 一夜花草    時間: 2018-5-25 18:21
寫一個這樣的延時函數void delay (int x) { int i,j; for (i=0;i<x;i++)  for(j=0;j<600;j++); },然后直接調用函數。
作者: 7THX    時間: 2018-5-25 19:11
uchar 沒有定義,define unsigned char uchar
作者: 18120562466    時間: 2018-5-25 20:48
你把uchar改為int試一試。
作者: 18120562466    時間: 2018-5-25 21:03
uchar預定義了嗎?改成int試一試
作者: 1420110014    時間: 2018-5-25 21:28
這個for語句一般不直接寫在定義函數下面的,而且你這個for函數是個死循環,0開始減的話永遠到不了200啊,如果函數是為了延時的話可以寫一個delay函數
作者: yaoyl2010    時間: 2018-5-25 21:59
i定義附初值為0,本身就小于200,改成大于200,i++,
作者: zhaoyinlo    時間: 2018-9-4 18:26
你把 uchar i   ;
改為  uchar   i;  //把逗號“;”  與 ‘i’  中間不要有空格試下






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1