在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32-跑馬燈實驗代碼分析

            STM32-跑馬燈實驗代碼分析

            作者: 時間:2016-11-23 來源:網(wǎng)絡 收藏
            工程建立的主要步驟

            1.新建3個文件夾:USER、SYSTEM、HARDWARE

            本文引用地址:http://www.biyoush.com/article/201611/320440.htm

            2.新建led.c、led.h和test.c

            3.在Target目錄樹上右擊Manage Component,新建USER、SYSTEM、HARDWARE,并添加相關C文件(具體見前文MDK使用方法與技巧),跟前面一樣HARDWARE組添加led.c文件。

            4.在Options for Target ‘Target 1’對話框C/C++選項卡中Include Pathes里添加頭文件路徑。(這個不可少,否則編譯出錯,見前文MDK使用方法與技巧,led.h文件不可漏掉)

            5.使用SWD方式下載,具體見MDK使用方法與技巧,注意reset and run選項,如果不選此項,程序下載后還要重啟,然后才運行。

            6.使用mcuisp通過串口下載程序搞了半天沒下進去,原來是因為我把mcuisp左下角的電平設置錯了,應該是DTR低電平復位,RTS高電平進BootLoader,真是粗心。

            代碼分析

            led.c

            [cpp]view plaincopy
            1. #include
            2. #include"led.h"
            3. //硬件電路兩個LED燈對應PA8和PD2,初始化PA8和PD2為輸出口,并使能這兩個口的時鐘
            4. voidLED_Init(void)
            5. {
            6. RCC->APB2ENR|=1<<2;//使能POARTA時鐘
            7. RCC->APB2ENR|=1<<5;//使能POARTD時鐘
            8. GPIOA->CRH&=0XFFFFFFF0;
            9. GPIOA->CRH|=0X00000003;//PA8推挽輸出
            10. GPIOA->ODR=1<<8;//PA8輸出高
            11. GPIOD->CRH&=0XFFFFF0FF;
            12. GPIOD->CRH|=0X00000300;//PD2推挽輸出
            13. GPIOD->ODR=1<<2;//PD2輸出高
            14. }

            注意:1.RCC是MDK定義的一個結構體,里面包含RCC相關寄存器組

            2.在配置STM32外設時,任何時候都要先使能該外設的時鐘!APB2ENR是APB2總線上的外設時鐘使能寄存器。

            led.h

            [cpp]view plaincopy
            1. #ifndef__LED_H
            2. #define__LED_H
            3. #include"sys.h"
            4. //LED端口定義
            5. #defineLED0PAout(8)//PA8
            6. #defineLED1PDout(2)//PD2
            7. voidLED_Init(void);//初始化
            8. #endif
            可以右擊找到PAout(x)的定義,在sys.h中。

            test.c

            [cpp]view plaincopy
            1. #include
            2. #include"sys.h"
            3. #include"usart.h"
            4. #include"delay.h"
            5. #include"led.h"
            6. intmain(void)
            7. {
            8. Stm32_Clock_Init(9);//系統(tǒng)時鐘設置
            9. delay_init(72);//延時初始化
            10. LED_Init();//初始化與LED連接的硬件接口
            11. while(1)
            12. {
            13. LED0=0;
            14. LED1=1;
            15. delay_ms(300);
            16. LED0=1;
            17. LED1=0;
            18. delay_ms(300);
            19. }
            20. }



            評論


            技術專區(qū)

            關閉