新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32筆記之七:讓它跑起來,基本硬件功能的建立

        STM32筆記之七:讓它跑起來,基本硬件功能的建立

        作者: 時間:2016-11-26 來源:網絡 收藏
        0、實驗之前的準備

        a)接通串口轉接器

        本文引用地址:http://www.104case.com/article/201611/322075.htm

        b)下載IO與串口的原廠程序,編譯通過保證調試所需硬件正常。

        1、flash,lib,nvic,rcc和GPIO,基礎程序庫編寫

        a)這幾個庫函數中有一些函數是關于芯片的初始化的,每個程序中必用。為保障程序品質,初學階段要求嚴格遵守官方習慣。注意,官方程序庫例程中有個platform_config.h文件,是專門用來指定同類外設中第幾號外設被使用,就是說在main.c里面所有外設序號用x代替,比如USARTx,程序會到這個頭文件中去查找到底是用那些外設,初學的時候參考例程別被這個所迷惑住。

        b)全部必用代碼取自庫函數所帶例程,并增加逐句注釋。

        c)習慣順序——Lib(debug),RCC(包括Flash優化),NVIC,GPIO

        d)必用模塊初始化函數的定義:

        void RCC_Configuration(void);//定義時鐘初始化函數

        void GPIO_Configuration(void);//定義管腳初始化函數

        void NVIC_Configuration(void);//定義中斷管理初始化函數

        void Delay(vu32 nCount);//定義延遲函數

        e)Main中的初始化函數調用:

        RCC_Configuration();//時鐘初始化函數調用

        NVIC_Configuration();//中斷初始化函數調用

        GPIO_Configuration();//管腳初始化函數調用

        f)Lib注意事項:

        屬于Lib的Debug函數的調用,應該放在main函數最開始,不要改變其位置。

        g)RCC注意事項:

        Flash優化處理可以不做,但是兩句也不難也不用改參數……

        根據需要開啟設備時鐘可以節省電能

        時鐘頻率需要根據實際情況設置參數

        h)NVIC注意事項

        注意理解占先優先級和響應優先級的分組的概念

        i)GPIO注意事項

        注意以后的過程中收集不同管腳應用對應的頻率和模式的設置。

        作為高低電平的I/O,所需設置:RCC初始化里面打開RCC_APB2

        PeriphClockCmd(RCC_APB2Periph_GPIOA);GPIO里面管腳設定:IO輸出(50MHz,Out_PP);IO輸入(50MHz,IPU);

        j)GPIO應用

        GPIO_WriteBit(GPIOB, GPIO_Pin_2, Bit_RESET);//重置

        GPIO_WriteBit(GPIOB, GPIO_Pin_2, (BitAction)0x01);//寫入1

        GPIO_WriteBit(GPIOB, GPIO_Pin_2, (BitAction)0x00);//寫入0

        GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6) ;//讀入IO

        k)簡單Delay函數

        void Delay(vu32 nCount)//簡單延時函數

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

        實驗步驟:

        RCC初始化函數里添加:RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB , ENABLE);

        不用其他中斷,NVIC初始化函數不用改

        GPIO初始化代碼:

        //IO輸入,GPIOB的2、10、11腳輸出

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 ;//管腳號

        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//輸出速度

        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//輸入輸出模式

        GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化

        簡單的延遲函數:

        void Delay(vu32 nCount)//簡單延時函數

        { for (; nCount != 0; nCount--);}//循環計數延時

        完成之后再在main.c的while里面寫一段:

        GPIO_WriteBit(GPIOB, GPIO_Pin_2, (BitAction)0x01);//寫入1

        Delay(0xffff);

        GPIO_WriteBit(GPIOB, GPIO_Pin_2, (BitAction)0x00);//寫入0

        Delay(0xffff);

        就可以看到連接在PB2腳上的LED閃爍了,單片機就跑起來了。


        關鍵詞: STM32硬件功

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 宁陕县| 德清县| 鄯善县| 睢宁县| 象山县| 武山县| 浦县| 磐石市| 循化| 扬州市| 儋州市| 乌鲁木齐县| 鄂伦春自治旗| 洛南县| 大厂| 无为县| 淮南市| 夏津县| 镇坪县| 英超| 雷山县| 铜川市| 开江县| 安陆市| 永川市| 黎川县| 通道| 慈利县| 金溪县| 台北市| 淅川县| 武安市| 遂宁市| 闻喜县| 翁牛特旗| 云南省| 隆化县| 漳平市| 纳雍县| 叶城县| 化隆|