久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4132|回復: 8
收起左側

C語言us延時函數中:全局變量recive_flag==1時執行return指令是什么意思?return何用

[復制鏈接]
ID:698854 發表于 2020-6-21 19:50 | 顯示全部樓層 |閱讀模式
2黑幣
extern int recive_flag;        //定義全局變量
/*************us延時函數*************/
void delay_us(int x)  //延時函數,要足夠快,否則燈會閃爍,而不是慢慢變化。
{  
        int i;
        for(i=x;i>0;i--)
        {
                if(recive_flag==1)    //  全局變量recive_flag==1有什么用?什么意思呢?
            {
                     return;                   //return什么意思?
            }
                 _nop_();  // 空操作,不執行任何操作,常用于產生一個機器周期的時間延時
                 _nop_();  //在12M的晶振下每個_nop_()延時1us;  在11.0592MHz晶振的話,一個周期是1.085us,也就是時間是12M周期的1.085倍;  在6M中表示2us
        }
}

回復

使用道具 舉報

ID:743992 發表于 2020-6-21 21:54 | 顯示全部樓層
recive_flag是在工程下其他文件里面定義的一個全局變量,可以在recive_flag這個變量名處右鍵->go to definition就可以看到是在哪里定義的,通過Ctrl+f查找功能可以找到這個變量是在哪里被調用,進行了什么操作,然后再看它什么時候會符合if條件(=1),就可以知道這具體是在干嘛的了。從變量名上能大概推知這是個接收標志位,具體還要結合程序。
至于那個return,照理說這樣編譯會報錯,因為函數返回值類型是void,即沒有返回值。如果不談語法錯誤的問題,return在這里用途是結束循環,立即跳出這個函數,回到調用這個函數的地方。即延時直接結束。結合來看的話,估計是單片機接收某個信息需要一段時間,因此用這個延時函數來使單片機等待接收完成,接收完成之后標志位置1,延時結束。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:706804 發表于 2020-6-22 08:31 | 顯示全部樓層
表示延時結束,返回延時前的代碼。
回復

使用道具 舉報

ID:592807 發表于 2020-6-22 08:45 | 顯示全部樓層
void函數里面帶return?看來我的C基礎有點差啊。
回復

使用道具 舉報

ID:529540 發表于 2020-6-22 16:59 | 顯示全部樓層
額, void函數里不能帶 return嗎?我一直用來當返回語句使用
回復

使用道具 舉報

ID:18297 發表于 2020-6-22 21:02 | 顯示全部樓層
根據你的程序,個人認為應該是break比較恰當。
這個延時是不固定的,在總時間下具體延時時間由recive_flag決定。
比如設置delay_us(1000),假設是定時1ms(具體多少要看晶振大小)。
可以通過中斷按鍵或其他設置recive_flag由0變1,這樣就會提前延時結束。
這樣整個延時就不是固定的,由recive_flag的變化決定。
回復

使用道具 舉報

ID:592807 發表于 2020-6-23 16:44 | 顯示全部樓層
ccdmcu 發表于 2020-6-22 16:59
額, void函數里不能帶 return嗎?我一直用來當返回語句使用

不能,void是無返回類型的函數,return是返回類型,如果是keil5編譯stm32的話會報錯,51不清楚
回復

使用道具 舉報

ID:419968 發表于 2020-6-24 00:27 | 顯示全部樓層
if(recive_flag==1)  數據接收標志,當 recive_flag = 1時表示接到數據,此時推出延時函數,即 return; 執行其他任務,例如解析接收到的數據
回復

使用道具 舉報

ID:744327 發表于 2020-6-24 08:44 | 顯示全部樓層
不能這樣用,因為函數前void是無返回值類型的,return是返回類型,如果這樣使用違反程序規定的。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天堂中文字幕av | 在线看av网址 | 久久久久精 | 九九九久久国产免费 | 中国美女av| av国产精品| 91 久久 | 欧美在线小视频 | 国内精品一区二区三区 | 中文字幕中文字幕 | 羞羞视频免费在线观看 | 中文字幕av一区二区三区 | 黄色网址免费看 | 欧美视频二区 | 久久国产一区二区 | 成人毛片在线视频 | 黄色免费三级 | 亚洲成人一区 | 免费观看一级黄色录像 | 国产精品久久久久久吹潮 | 久久精品视频在线观看 | 亚洲欧美日韩系列 | 久久网一区二区 | 激情 婷婷 | 日本免费视频在线观看 | 伊人电影院av | 久久精品国产99国产 | 伊久在线| 青青草视频免费观看 | 久艹网站| 国产日韩精品在线 | 99国产精品99久久久久久 | 99久久精品国产一区二区三区 | 毛片免费观看视频 | 亚洲天堂久久新 | 日韩中文字幕在线免费 | 精品久久久久久久久久久久久久 | 亚洲精品久久久久久国产精华液 | 美日韩免费视频 | 91精品中文字幕一区二区三区 | 国产精品国产a级 |