<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32學(xué)前班教程之六:這些代碼大家都用得到

STM32學(xué)前班教程之六:這些代碼大家都用得到

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò ) 收藏


1、閱讀exti:外部設備中斷函數

我的理解——外部設備通過(guò)引腳給出的硬件中斷,也可以產(chǎn)生軟件中斷,19個(gè)上升、下降或都觸發(fā)。EXTI0~EXTI15連接到管腳,EXTI線(xiàn)16連接到PVD(VDD監視),EXTI線(xiàn)17連接到RTC(鬧鐘),EXTI線(xiàn)18連接到USB(喚醒)。

基礎應用1,設定外部中斷初始化函數。按需求,不是必須代碼。

用法:voidEXTI_Configuration(void)

{

EXTI_InitTypeDefEXTI_InitStructure;//外部設備中斷恢復默認參數

EXTI_InitStructure.EXTI_Line=通道1|通道2;

//設定所需產(chǎn)生外部中斷的通道,一共19個(gè)。

EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;//產(chǎn)生中斷

EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;

//上升下降沿都觸發(fā)

EXTI_InitStructure.EXTI_LineCmd=ENABLE;//啟動(dòng)中斷的接收

EXTI_Init(&EXTI_InitStructure);//外部設備中斷啟動(dòng)

}



2、閱讀dma:通過(guò)總線(xiàn)而越過(guò)CPU讀取外設數據

我的理解——通過(guò)DMA應用可以加速單片機外設、存儲器之間的數據傳輸,并在傳輸期間不影響CPU進(jìn)行其他事情。這對于入門(mén)開(kāi)發(fā)基本功能來(lái)說(shuō)沒(méi)有太大必要,這個(gè)內容先行跳過(guò)。

3、閱讀systic:系統定時(shí)器

我的理解——可以輸出和利用系統時(shí)鐘的計數、狀態(tài)。

基礎應用1,精確計時(shí)的延時(shí)子函數。推薦使用的代碼。

用法:

staticvu32TimingDelay;//全局變量聲明

voidSysTick_Config(void)//systick初始化函數

{

SysTick_CounterCmd(SysTick_Counter_Disable);//停止系統定時(shí)器

SysTick_ITConfig(DISABLE);//停止systick中斷

SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);

//systick使用HCLK作為時(shí)鐘源,頻率值除以8。

SysTick_SetReload(9000);//重置時(shí)間1毫秒(以72MHz為基礎計算)

SysTick_ITConfig(ENABLE);//開(kāi)啟systic中斷

}

voidDelay(u32nTime)//延遲一毫秒的函數

{

SysTick_CounterCmd(SysTick_Counter_Enable);//systic開(kāi)始計時(shí)



TimingDelay=nTime;//計時(shí)長(cháng)度賦值給遞減變量

while(TimingDelay!=0);//檢測是否計時(shí)完成



SysTick_CounterCmd(SysTick_Counter_Disable);//關(guān)閉計數器

SysTick_CounterCmd(SysTick_Counter_Clear);//清除計數值

}

voidTimingDelay_Decrement(void)

//遞減變量函數,函數名由“stm32f10x_it.c”中的中斷響應函數定義好了。

{

if(TimingDelay!=0x00)//檢測計數變量是否達到0

{

TimingDelay--;//計數變量遞減

}

}

注:建議熟練后使用,所涉及知識和設備太多,新手出錯的可能性比較大。新手可用簡(jiǎn)化的延時(shí)函數代替:

voidDelay(vu32nCount)//簡(jiǎn)單延時(shí)函數

{

for(;nCount!=0;nCount--);(循環(huán)變量遞減計數)

}

當延時(shí)較長(cháng),又不需要精確計時(shí)的時(shí)候可以使用嵌套循環(huán):

voidDelay(vu32nCount)//簡(jiǎn)單的長(cháng)時(shí)間延時(shí)函數

{inti;//聲明內部遞減變量

for(;nCount!=0;nCount--)//遞減變量計數

{for(i=0;i<0xffff;i++)}//內部循環(huán)遞減變量計數

}

4、閱讀gpio:I/O設置函數

我的理解——所有輸入輸出管腳模式設置,可以是上下拉、浮空、開(kāi)漏、模擬、推挽模式,頻率特性為2M,10M,50M。也可以向該管腳直接寫(xiě)入數據和讀取數據。

基礎應用1,gpio初始化函數。所有程序必須。

用法:voidGPIO_Configuration(void)

{

GPIO_InitTypeDefGPIO_InitStructure;//GPIO狀態(tài)恢復默認參數

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_標號|GPIO_Pin_標號;

//管腳位置定義,標號可以是NONE、ALL、0至15。

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;//輸出速度2MHz

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//模擬輸入模式

GPIO_Init(GPIOC,&GPIO_InitStructure);//C組GPIO初始化

//注:以上四行代碼為一組,每組GPIO屬性必須相同,默認的GPIO參數為:ALL,2MHz,FLATING。如果其中任意一行與前一組相應設置相同,那么那一行可以省略,由此推論如果前面已經(jīng)將此行參數設定為默認參數(包括使用GPIO_InitTypeDefGPIO_InitStructure代碼),本組應用也是默認參數的話(huà),那么也可以省略。以下重復這個(gè)過(guò)程直到所有應用的管腳全部被定義完畢。

……

}

基礎應用2,向管腳寫(xiě)入0或1

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

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: STM32學(xué)前班教

評論


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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>