娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月14日(星期六)

2019年06月14日 | STM32-點(diǎn)燈程序

發(fā)布者:huanhui 來源: eefocus關(guān)鍵字:STM32  點(diǎn)燈程序 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

最近學(xué)習(xí)使用STM32,做個記錄吧。

剛接觸,就先從點(diǎn)燈程序開始。單片機(jī)的點(diǎn)燈程序,就相當(dāng)于學(xué)語言的hello world程序了。



先簡單介紹下開發(fā)環(huán)境,芯片類型是STM32F030C8,集成開發(fā)環(huán)境用的是Keil5 MDK-ARM,仿真器使用JLINK。


要點(diǎn)燈,先要確定接燈的引腳。我的板子上是PA0接的一個led燈。

在程序中,就是GPIO_Pin_0了。為了擴(kuò)展性,或者說,為了方便修改引腳,我使用了一個函數(shù)來封裝。如下:


int get_gpios(){    

    return GPIO_Pin_0 ;//連接到燈的gpio引腳,可以有多個        

}


要點(diǎn)燈,也就是要將這個引腳設(shè)置為輸出,并控制它的高低電平。我們先來進(jìn)行初始化設(shè)置:


void LED_Init(void)

{


  GPIO_InitTypeDef  GPIO_InitStructure;

  

  /* 使能GPIOA時鐘 */  

  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);


  /* 配置LED相應(yīng)引腳PA1*/

  GPIO_InitStructure.GPIO_Pin = get_gpios();

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

  GPIO_Init(GPIOA, &GPIO_InitStructure);

    

  GPIOA->BSRR = get_gpios() ;//點(diǎn)亮燈        

}



具體的閃燈的實(shí)現(xiàn),也寫了一個函數(shù),方便后面調(diào)用:


int flag_led_on=0;


void LED_toggle(){    

    flag_led_on = 1 - flag_led_on;    

    if(flag_led_on!=0){

        GPIOA->BRR = get_gpios() ;     //reset

    } else {

        GPIOA->BSRR = get_gpios() ;    //set

    }        

}


 


這樣,主體的功能就完成了,剩下的就是在主循環(huán)中進(jìn)行調(diào)用了。

主函數(shù)非常簡單:


int main(void)

{


    LED_Init();//燈的初始化

        

    while(1){

        Delay(1600000);//延時1s

        LED_toggle(); //LED翻轉(zhuǎn)

    }


}


這里還有一個新函數(shù):Delay(),就是一個延時函數(shù)。為了簡化代碼,所以延時函數(shù)沒有使用定時器,是簡單的循環(huán)等待。如下:


void Delay(uint32_t nCount) 

{

     for(; nCount != 0; nCount--);

}



至此,這個點(diǎn)燈程序就完成了,是不是很簡單。


另外,簡單說明下延時函數(shù)為什么使用了 1600000 為參數(shù)。

是我通過實(shí)驗(yàn),發(fā)現(xiàn)設(shè)置為這個值對應(yīng)的時間基本上是1s。

但是,在不同的板子上,程序做不同的優(yōu)化,或者延時代碼的寫法有所不同,都會導(dǎo)致延時時間的差異。具體取值可以自己根據(jù)實(shí)際運(yùn)行情況調(diào)整。


以后,我再仔細(xì)分析下這個取值的道理。



關(guān)鍵字:STM32  點(diǎn)燈程序 引用地址:STM32-點(diǎn)燈程序

上一篇:STM32-基于匯編來分析延時
下一篇:一則STM32f103莫名反復(fù)復(fù)位的經(jīng)驗(yàn)記錄

推薦閱讀

電視,是每個人家里都不可避免的一件家電。一家人聚在一起看電視的場景其樂融融。說起電視,相信大家一個體積小小可卻功能大大的盒子不陌生,它就是我們隨處可見的電視盒子。?那么,電視盒子是什么呢?大家有清楚了解過嗎?互聯(lián)網(wǎng)電視成為主流,電視盒子還值得購買嗎???電視盒子是一個小型的計算終端設(shè)備,只要簡單的通過HDMI或色差線等技術(shù)將其與傳統(tǒng)...
前些天寫程序的時候,需要做一個自動復(fù)位的功能,也就是當(dāng)收到外部通訊設(shè)備復(fù)位指令時,主設(shè)備立刻執(zhí)行復(fù)位操作。當(dāng)時是想到的用看門狗實(shí)現(xiàn)。但是覺得似乎不太妥當(dāng),因?yàn)榭撮T狗的復(fù)位是需要一定的時間。而在這段時間內(nèi)系統(tǒng)還是處于正常運(yùn)行當(dāng)中,而且所有中斷都會正常響應(yīng)。這恰好與要實(shí)現(xiàn)的功能南轅北轍。需求是當(dāng)收到復(fù)位指令時,系統(tǒng)停止執(zhí)行后面的所有...
大一下學(xué)期才開始自學(xué)單片機(jī),真真切切的感受到自己是個弱雞,專業(yè)知識一點(diǎn)不會,看個書都費(fèi)勁,周圍又沒有什么人可以交流交流或者帶帶我,那個酸爽就別提了,學(xué)的我一度想撓黑板。沒辦法,那也只能硬著頭皮學(xué),就是硬看,多看幾遍或者看上一段時間就差不多才能理解意思。中斷、IO口還比較好理解,到了時鐘系統(tǒng)就一臉懵,看了好多遍,一直到暑假才算大致理...

史海拾趣

小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 漳州市| 错那县| 虎林市| 天长市| 北碚区| 沙雅县| 无棣县| 鄂伦春自治旗| 肥乡县| 苍梧县| 巴青县| 房山区| 河曲县| 塔河县| 宝应县| 霞浦县| 景德镇市| 梧州市| 恩施市| 资阳市| 平昌县| 双流县| 赣榆县| 牡丹江市| 邹城市| 自治县| 墨竹工卡县| 新平| 屏东县| 三原县| 田东县| 湘乡市| 望江县| 扎鲁特旗| 崇礼县| 湟中县| 钦州市| 铜山县| 宁蒗| 普兰县| 原阳县|