<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32筆記之七:讓它跑起來(lái),基本硬件功能的建立

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

          作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
          0、實(shí)驗(yàn)之前的準(zhǔn)備

          a)接通串口轉(zhuǎn)接器

          本文引用地址:http://www.ex-cimer.com/article/201611/322075.htm

          b)下載IO與串口的原廠(chǎng)程序,編譯通過(guò)保證調(diào)試所需硬件正常。

          1、flash,lib,nvic,rcc和GPIO,基礎(chǔ)程序庫(kù)編寫(xiě)

          a)這幾個(gè)庫(kù)函數(shù)中有一些函數(shù)是關(guān)于芯片的初始化的,每個(gè)程序中必用。為保障程序品質(zhì),初學(xué)階段要求嚴(yán)格遵守官方習(xí)慣。注意,官方程序庫(kù)例程中有個(gè)platform_config.h文件,是專(zhuān)門(mén)用來(lái)指定同類(lèi)外設(shè)中第幾號(hào)外設(shè)被使用,就是說(shuō)在main.c里面所有外設(shè)序號(hào)用x代替,比如USARTx,程序會(huì)到這個(gè)頭文件中去查找到底是用那些外設(shè),初學(xué)的時(shí)候參考例程別被這個(gè)所迷惑住。

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

          c)習(xí)慣順序——Lib(debug),RCC(包括Flash優(yōu)化),NVIC,GPIO

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

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

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

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

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

          e)Main中的初始化函數(shù)調(diào)用:

          RCC_Configuration();//時(shí)鐘初始化函數(shù)調(diào)用

          NVIC_Configuration();//中斷初始化函數(shù)調(diào)用

          GPIO_Configuration();//管腳初始化函數(shù)調(diào)用

          f)Lib注意事項(xiàng):

          屬于Lib的Debug函數(shù)的調(diào)用,應(yīng)該放在main函數(shù)最開(kāi)始,不要改變其位置。

          g)RCC注意事項(xiàng):

          Flash優(yōu)化處理可以不做,但是兩句也不難也不用改參數(shù)……

          根據(jù)需要開(kāi)啟設(shè)備時(shí)鐘可以節(jié)省電能

          時(shí)鐘頻率需要根據(jù)實(shí)際情況設(shè)置參數(shù)

          h)NVIC注意事項(xiàng)

          注意理解占先優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)的分組的概念

          i)GPIO注意事項(xiàng)

          注意以后的過(guò)程中收集不同管腳應(yīng)用對(duì)應(yīng)的頻率和模式的設(shè)置。

          作為高低電平的I/O,所需設(shè)置:RCC初始化里面打開(kāi)RCC_APB2

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

          j)GPIO應(yīng)用

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

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

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

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

          k)簡(jiǎn)單Delay函數(shù)

          void Delay(vu32 nCount)//簡(jiǎn)單延時(shí)函數(shù)

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

          實(shí)驗(yàn)步驟:

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

          不用其他中斷,NVIC初始化函數(shù)不用改

          GPIO初始化代碼:

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

          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 ;//管腳號(hào)

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

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

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

          簡(jiǎn)單的延遲函數(shù):

          void Delay(vu32 nCount)//簡(jiǎn)單延時(shí)函數(shù)

          { for (; nCount != 0; nCount--);}//循環(huán)計(jì)數(shù)延時(shí)

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

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

          Delay(0xffff);

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

          Delay(0xffff);

          就可以看到連接在PB2腳上的LED閃爍了,單片機(jī)就跑起來(lái)了。


          關(guān)鍵詞: STM32硬件功

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();