www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導讀]剛剛做了我的第一個嵌入式項目----基于STM32F103的頻率和AD采集系統(tǒng)。是一個大系統(tǒng)的一個部分,沒用操作系統(tǒng),使用庫函數(shù)編寫,雖然東西很簡單,但是對于我這個還沒入門的菜鳥來說還是有點難度的。前后斷斷續(xù)續(xù)已經(jīng)兩

剛剛做了我的第一個嵌入式項目----基于STM32F103的頻率和AD采集系統(tǒng)。

是一個大系統(tǒng)的一個部分,沒用操作系統(tǒng),使用庫函數(shù)編寫,雖然東西很簡單,但是對于我這個還沒入門的菜鳥來說還是有點難度的。前后斷斷續(xù)續(xù)已經(jīng)兩周多了,到目前為止系統(tǒng)已經(jīng)完成了接近90%,在這個過程中犯了很多錯誤,也走了很多的彎路,在這里記錄下來,讓自己以后不要再犯同樣的錯誤,也給那些和我一樣剛?cè)腴T的朋友一點提示。


1、USART初始化問題:

STM32F103啟動文件默認有兩個入口,一個是systemInit(),另一個是main(),其中systemInit默認是用戶編寫的軟件初始化部分。

開始時我把時鐘、GPIO、USART、定時器、EXTI、NVIC、ADC的初始化都放在了systemInit函數(shù)中,可是在測試中卻發(fā)現(xiàn)USART初始化不成功。USART端口初始化成功的話默認為高電平,而在實際測試中卻發(fā)現(xiàn)USART端口為低電平,第二次初始化卻能成功初始化,這個問題困擾了我N天的時間。串口初始化不成功,后面的程序就無法進行。


錯誤原因:我在main函數(shù)中定義了幾個全局變量,用于在中斷中作為標記使用(中斷中盡量不要放太多程序,最好只做一個標記,處理程序放到主程序中來完成)。

我把中斷的初始化放在了systemInit函數(shù)中,在初始化過程中中斷比mian初始化要早,但全局變量的定義都是在main中,所以導致了中斷初始化失敗,進而導致后面的程序初始化失敗。而在第二次運行時,因為第一次已經(jīng)給main中的變量分配空間,所以中斷以及后面的程序都能成功運行。


錯誤處理:將除了時鐘以外的模塊都放入main中初始化,這樣就保證了main中的全局變量能夠成功分配空間。

(一定記住這個血淋淋的教訓,還因此被老師狠狠鄙視了一番。。。)



2、中斷問題:

程序要用到外部中斷,但是在調(diào)試過程中發(fā)現(xiàn)程序無法進入中斷。開始分析有兩個原因,一是外部硬件設(shè)計問題,不能觸發(fā)中斷;二是中斷沒有初始化成功,中斷向量或者中斷通道沒有成功初始化。

對于第一個分析,用示波器檢測后發(fā)現(xiàn)端口電平有變化,說明硬件設(shè)計沒有問題,問題出在軟件上面。

開始時,我的中斷向量初始化代碼把配置中斷引腳中斷的代碼放到了一起。

是這樣的:


GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource0|GPIO_PinSource1|GPIO_PinSource2|GPIO_PinSource3|GPIO_PinSource4|GPIO_PinSource5);

/*配置中斷引腳相應(yīng)參數(shù)*/

EXTI_InitStruct.EXTI_Line=EXTI_Line0;

EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;//設(shè)定中斷模式為中斷處理模式

EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Rising;//設(shè)定中斷觸發(fā)模式為上升沿觸發(fā)

EXTI_InitStruct.EXTI_LineCmd=ENABLE;//使能中斷

EXTI_Init(&EXTI_InitStruct);//按照結(jié)構(gòu)體初始化中斷

EXTI_InitStruct.EXTI_Line=EXTI_Line1;

EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;//設(shè)定中斷模式為中斷處理模式

EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Rising;//設(shè)定中斷觸發(fā)模式為上升沿觸發(fā)

EXTI_InitStruct.EXTI_LineCmd=ENABLE;//使能中斷

EXTI_Init(&EXTI_InitStruct);//按照結(jié)構(gòu)體初始化中斷

..........


后來經(jīng)過查閱手冊得知,這樣是不正確的,其實每個引腳跟每個中斷線路是一一對應(yīng)的,不能一起配置,要一對一配置。


解決:將代碼改成這樣就解決了:

[cpp]view plaincopyprint?

/*將GPIOE0-7引腳配置為中斷引腳*/

GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource0);

/*配置中斷引腳相應(yīng)參數(shù)*/

EXTI_InitStruct.EXTI_Line=EXTI_Line0;

EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;//設(shè)定中斷模式為中斷處理模式

EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Rising;//設(shè)定中斷觸發(fā)模式為上升沿觸發(fā)

EXTI_InitStruct.EXTI_LineCmd=ENABLE;//使能中斷

EXTI_Init(&EXTI_InitStruct);//按照結(jié)構(gòu)體初始化中斷

GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource1);

/*配置中斷引腳相應(yīng)參數(shù)*/

EXTI_InitStruct.EXTI_Line=EXTI_Line1;

EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;//設(shè)定中斷模式為中斷處理模式

EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Rising;//設(shè)定中斷觸發(fā)模式為上升沿觸發(fā)

EXTI_InitStruct.EXTI_LineCmd=ENABLE;//使能中斷

EXTI_Init(&EXTI_InitStruct);//按照結(jié)構(gòu)體初始化中斷




/**************************************************未完待續(xù)**************************************************************/


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在電子電路領(lǐng)域,濾波是一項極為重要的技術(shù)手段,其主要目的是去除信號中不必要的頻率成分,保留所需的信號分量,以確保電路的穩(wěn)定運行和信號的準確傳輸。RC 串聯(lián)濾波和單一電容濾波作為兩種常見的濾波方式,雖然都利用電容的特性來實...

關(guān)鍵字: 濾波 頻率 電子電路

在數(shù)字信號處理領(lǐng)域,濾波器作為一種重要的工具,用于對信號進行篩選、增強或抑制特定頻率成分。FIR(有限脈沖響應(yīng))濾波器和 IIR(無限脈沖響應(yīng))濾波器是其中最為常用的兩種類型,它們在結(jié)構(gòu)、性能、設(shè)計方法以及應(yīng)用場景等方面...

關(guān)鍵字: 數(shù)字信號 濾波器 頻率

??激光雷達是一種先進的遙感技術(shù),通過發(fā)射激光束并測量其反射光的返回時間或頻率變化,來精確探測目標物體的距離、速度、角度及其三維形狀等信息?

關(guān)鍵字: 激光雷達 頻率

晶振的基本構(gòu)成是從一塊石英晶體上按一定方位角切下薄片,并在其兩個對應(yīng)面上涂覆銀層作為電極,每個電極上各焊一根引線接到管腳上,再加上封裝外殼就構(gòu)成了石英晶體諧振器。當在石英晶體的兩個電極上加一電場時,晶片會產(chǎn)生機械變形;反...

關(guān)鍵字: 晶振 頻率

濾波器是個很重要的組件,它在生活中最為大家所知的功能就是“降噪”。不過,濾波器功能上的降噪是一個廣義的降噪,不僅是聲音的“噪聲”,還有各種電信號中我們不想要的,人為定義的噪聲分量。

關(guān)鍵字: 濾波器 頻率

ORAN實現(xiàn)的另一個關(guān)鍵方面是精確的時間同步,特別是在5G環(huán)境中,精確的定時、頻率和相位對準對于數(shù)據(jù)傳輸、切換以及無線單元和分布式單元之間的協(xié)調(diào)至關(guān)重要。

關(guān)鍵字: 5G 頻率

在這篇文章中,小編將為大家?guī)碜冾l器的相關(guān)報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 變頻器 電壓 頻率

電源在接通之初到提供穩(wěn)定的輸出必然需要一定的時間的穩(wěn)定周期,在這個周期中電壓的穩(wěn)定度很難保證,所以電源設(shè)計者讓電源延時100ms-500ms,等電源穩(wěn)定后再向電腦提供高質(zhì)量的電源。

關(guān)鍵字: 電源 頻率

交流電的頻率較低,正半周將電容器充滿電荷以后,負半周仍未到來,則電流會在中途斷流,電容器對于這個低頻的交流電來說,就不是完全通路了。

關(guān)鍵字: 交流電 頻率

電機我們都很熟悉,在生活中處處可見。日常的生產(chǎn)生活中,電動機基本都有所參與。變頻器是一種控制設(shè)備,它可以改變電壓的頻率,同時還有很好的節(jié)能效果。

關(guān)鍵字: 電機 頻率
關(guān)閉
關(guān)閉