stm32入门c语言下载,STM32入门C语言详解.docx
???????????????????????最新 料推薦???????????????????
閱讀 flash : 芯片內(nèi)部存儲(chǔ)器flash 操作函數(shù)我的理解—— 對(duì)芯片內(nèi)部flash 進(jìn)行操作的函數(shù),包括
讀取,狀態(tài),擦除,寫入等等,可以允許程序去操作flash 上的數(shù)據(jù)。
基礎(chǔ)應(yīng)用1 ,FLASH 時(shí)序延遲幾個(gè)周期,等待總線同步操作。推薦按照單片機(jī)系統(tǒng)運(yùn)行頻率,
0 —24MHz 時(shí),取 Latency=0 ; 24 — 48MHz 時(shí),取 Latency=1 ;48~72MHz時(shí),取 Latency=2 。
所有程序中必須的
用法: FLASH_SetLatency(FLASH_Latency_2);
位置: RCC 初始化子函數(shù)里面,時(shí)鐘起振之后。
基礎(chǔ)應(yīng)用2 ,開啟 FLASH 預(yù)讀緩沖功能,加速FLASH 的讀取。
所有程序中必須的
用法: FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
位置: RCC 初始化子函數(shù)里面,時(shí)鐘起振之后。
3 、閱讀 lib :調(diào)試所有外設(shè)初始化的函數(shù)。
我的理解 —— 不理解,也不需要理解。只要知道所有外設(shè)在調(diào)試的時(shí)候,EWRAM需要從這個(gè)函數(shù)
里面獲得調(diào)試所需信息的地址或者指針之類的信息。
基礎(chǔ)應(yīng)用1 ,只有一個(gè)函數(shù)debug 。所有程序中必須的。
用法:#ifdef DEBUG
debug();
#endif
位置: main 函數(shù)開頭,聲明變量之后。
4 、 閱讀 nvic :系統(tǒng)中斷管理。
我的理解 —— 管理系統(tǒng)內(nèi)部的中斷,負(fù)責(zé)打開和關(guān)閉中斷。
基礎(chǔ)應(yīng)用1 ,中斷的初始化函數(shù),包括設(shè)置中斷向量表位置,和開啟所需的中斷兩部分。
所有程序中必須的。
用法:void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure; //中斷管理恢復(fù)默認(rèn)參數(shù)
#ifdef VECT_TAB_RAM //如果 C/C++ Compiler\Preprocessor\Defined symbols中的定義了
VECT_TAB_RAM(見程序庫(kù)更改內(nèi)容的表格)
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); //則在 RAM 調(diào)試
#else // 如果沒有定義VECT_TAB_RAM
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);//則在 Flash 里調(diào)試
#endif // 結(jié)束判斷語句
//以下為中斷的開啟過程,不是所有程序必須的。
//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//設(shè)置 NVIC 優(yōu)先級(jí)分組,方式。
//注:一共16 個(gè)優(yōu)先級(jí),分為搶占式和響應(yīng)式。兩種優(yōu)先級(jí)所占的數(shù)量由此代碼確定,
NVIC_PriorityGroup_x 可以是 0、 1、 2 、3 、 4 ,分別代表搶占優(yōu)先級(jí)有 1 、2 、 4 、8、 16 個(gè)和響應(yīng)優(yōu)先級(jí)有 16 、8、4 、2 、1 個(gè)。規(guī)定兩種優(yōu)先級(jí)的數(shù)量后,所有的中斷級(jí)別必須在其中選擇,搶占級(jí)
別高的會(huì)打斷其他中斷優(yōu)先執(zhí)行,而響應(yīng)級(jí)別高的會(huì)在其他中斷執(zhí)行完優(yōu)先執(zhí)行。
//NVIC_InitStructure.NVIC_IRQChannel =中斷通道名 ; //開中斷,中斷名稱見函數(shù)庫(kù)
//NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //搶占優(yōu)先級(jí)
//NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //響應(yīng)優(yōu)先級(jí)
1
???????????????????????最新 料推薦???????????????????
//NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //啟動(dòng)此通道的中斷
//NVIC_Init(&NVIC_InitStructure);
中斷初始化
}
5 、閱讀 rcc :單片機(jī)時(shí)鐘管理。
我的理解 —— 管理外部、內(nèi)部和外設(shè)的時(shí)鐘,設(shè)置、打開和關(guān)閉這些時(shí)鐘。
基礎(chǔ)應(yīng)用1 :時(shí)鐘的初始化函數(shù)過程——
用法: void RCC_Configuration(void) //時(shí)鐘初始化函數(shù)
{
ErrorStatus HSEStartUpStatus; //
等待時(shí)鐘的穩(wěn)定
RCC_DeInit(); // 時(shí)鐘管理重置
RCC_HSEConfig(RCC_HSE_ON); //
打開外部晶振
HSES
總結(jié)
以上是生活随笔為你收集整理的stm32入门c语言下载,STM32入门C语言详解.docx的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何创造char二叉树C语言,递归创建二
- 下一篇: c语言输入r1 r2垫片的面积,2011