版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
序言上有一個的MCU標(biāo)準(zhǔn)插槽,該標(biāo)準(zhǔn)插槽有一個詳細(xì)定義的物理接口和引腳定義。序言上有一個的MCU標(biāo)準(zhǔn)插槽,該標(biāo)準(zhǔn)插槽有一個詳細(xì)定義的物理接口和引腳定義。USBSTM32F205,STM32F207四種芯片的設(shè)計。本設(shè)計方案在將來芯片升級的時候,可STM32系列芯片的使用。操作系統(tǒng)部分,以FreeRTOS為主,介紹了操作系統(tǒng)的原理,并距離說明如何uC/OS-iiRT-Thread目STM32系列芯片的使用。操作系統(tǒng)部分,以FreeRTOS為主,介紹了操作系統(tǒng)的原理,并距離說明如何uC/OS-iiRT-Thread目(新增內(nèi)容 1.11.2 2.12.2BOM 45 STM32第二部分:硬件篇(修改1.實驗板資源(第一節(jié)和第二節(jié)合并需要修改2.電路板配置(增加3.單元電路5 STM32第二部分:硬件篇(修改1.實驗板資源(第一節(jié)和第二節(jié)合并需要修改2.電路板配置(增加3.單元電路((需要修改(附錄應(yīng)該在全書后面,另外原理圖應(yīng)該作為附錄第三部分:工具篇(軟件篇用詞不當(dāng)1.IDE開發(fā)環(huán)境(IAR2.仿真器(Jlink,ST-link,coLink等等3.ISP[4. 上位機(jī)演示軟件1.基本實驗(和原文大體相同GPIO實驗(按鍵,跑馬燈,旋轉(zhuǎn)編碼,波動開關(guān),蜂鳴器定時器實驗(PWM波形輸出,系統(tǒng)滴答等UART實驗(RS232,RS485及紅外ADCDAC實驗(輸出三角波,正弦波,電位器輸入1.基本實驗(和原文大體相同GPIO實驗(按鍵,跑馬燈,旋轉(zhuǎn)編碼,波動開關(guān),蜂鳴器定時器實驗(PWM波形輸出,系統(tǒng)滴答等UART實驗(RS232,RS485及紅外ADCDAC實驗(輸出三角波,正弦波,電位器輸入CANPS/2USB通信(虛擬串口,U盤SDFM高級實驗(面向應(yīng)用 示波器(ADC (以上實驗可根據(jù)要求增刪嵌入式操作系統(tǒng) 示波器(ADC (以上實驗可根據(jù)要求增刪嵌入式操作系統(tǒng)1.STM322.STM323.STM3BOM4.STM32BOM5.6.7.8.9.第一部第一部1焊接1.1回流焊機(jī)焊STM32PCB板,貼片使用回流焊機(jī)進(jìn)行焊接,不耐溫的元件使用電烙鐵手料,高溫焊接可能導(dǎo)致元件變形。高溫可能導(dǎo)致?lián)p壞的元件有OLED顯示器和紅外傳感器HSDL3201,這些需要使用電烙鐵手工焊接。1.1回流焊機(jī)焊STM32PCB板,貼片使用回流焊機(jī)進(jìn)行焊接,不耐溫的元件使用電烙鐵手料,高溫焊接可能導(dǎo)致元件變形。高溫可能導(dǎo)致?lián)p壞的元件有OLED顯示器和紅外傳感器HSDL3201,這些需要使用電烙鐵手工焊接。焊錫膏的PCB板上?;亓骱甘侵福瑢[有元件的PCB板放置在回流焊機(jī)里面,設(shè)定STM32的電路板正面和反面都有期間,所有一塊電路板需要焊接兩邊,芯片生產(chǎn)順序為:1清洗鋼網(wǎng)2反面刮錫3擺放反面元件4反面回流焊接67812344意:網(wǎng)孔細(xì)長處,必須沿著網(wǎng)孔的方向再刮一遍5抬鋼網(wǎng)時,如果出現(xiàn)電路板粘附在鋼網(wǎng)上時,不能用手將電(BGA片如果不合格,要重新清理,重新刮錫671.2手工焊讓我們來了解一些常用的焊接貼片元件所需的一些基本工具(1,從左至右,第一排為:熱風(fēng)槍、鑷子、焊錫絲。第二排為:電烙鐵、松香、吸錫帶11鐵頭一般采用紫銅材料制造.為保護(hù)在焊接的高溫條件下不被氧化生銹,常正式焊接前應(yīng)先進(jìn)行鍍錫處理.方法是將烙鐵頭用細(xì)紗紙打磨干凈,用同新烙鐵頭鍍錫的方法一樣進(jìn)行處理.當(dāng)僅使用一把電烙鐵時,可以利用烙鐵頭鐵頭的溫度相對越低,反之溫度就越高。[全文]成完整的電子電路。它在電路中用字母"IC"(也有用文字符號"N"等)表示。[全文]9.這時可以用酒精棉球?qū)㈦娐钒迳嫌袣埩羲上愕牡胤讲粮蓛?其他貼片焊接所需的這時可以用酒精棉球?qū)㈦娐钒迳嫌袣埩羲上愕牡胤讲粮蓛?其他貼片焊接所需的1.PCB進(jìn)行檢查,確保其干凈(。對其上面的表面油性的手印以及氧化物之類的要進(jìn)行清除,從而不影響上錫。手工焊接PCBPCB22.上可以分為兩種——3345對管腳較多的元件進(jìn)行對腳或多腳固定焊接5對管腳較多的元件進(jìn)行對腳或多腳固定焊接3.66774.9。此外,如果對焊接結(jié)果不滿意,89895.1010116練程度。如果條件允許,如有舊電路板舊芯片之類的可以拿來多熟練接插件焊練程度。如果條件允許,如有舊電路板舊芯片之類的可以拿來多熟練接插件焊接手工焊1.1PCB1.2PCB2.1 PCB 2.2PCB PCB 2.3PCB 2.3PCB PCB3.1 3.2 4.14.2 1.5mm 4.14.2 1.5mm 4.34.4 5.15.1.1 5.15.1.15.1.25.25.2.15.2.25.25.2.15.2.2PCB5.2.35.2.45.2.55.2.45.2.5 6.16.2 6.16.2 SMDDIP焊 323310寸不同請使用264等封裝)或焊點度控制在260至6.36.31~3mm PCB7.1PCB 1~3mm PCB7.1PCB 直徑大于 7.2PCB 7.2PCB PCB7.3 ICICBOM2焊接2.1焊接1.把PCB電路圖制作成兩個版本。一個只保留TopOverlay一個只保留.PCBPCBPCBPCB3焊接(草稿1.1.3焊接(草稿1.1.能生巧,不易出錯。每張圖應(yīng)該有個表格:內(nèi)容包括程中完成追蹤本工序段的測試(有的步驟圖沒有測試環(huán)節(jié),如電源測試,短路測試等電感(一個人LED燈(一個人難以焊接的芯片(紅外,加速度計,音頻,F(xiàn)M,晶振 難以焊接的芯片(紅外,加速度計,音頻,F(xiàn)M,晶振 5%4實物效5測輔助5測輔助ST-link下載器,3.串口4.DC9V電源5.USB-6.RS232- 7.示波器8.PS/2SD10.帶麥克的耳機(jī)11.網(wǎng)口線12.標(biāo)準(zhǔn)核心板13.標(biāo)準(zhǔn)開發(fā)平臺輔助軟件:IAR,串口調(diào)試助手 5.1 短路檢測:焊接完成后,先不安裝核心板。檢測3.3V,5V,12V 四個檢測點之間是否短路,任何兩點出現(xiàn)短路,都不允許如果出現(xiàn)短路的情況,不允許上電,記錄短路信息,并馬上2.電壓測量:短路測試通過后,不要安裝核心板。給電路板接上電源。檢測第一條所述的3個檢測點3.3V,5V,12V對地的電壓。如電壓和標(biāo)準(zhǔn)值誤差0.2V以內(nèi),認(rèn)為正常,如果超過0.2V(包括0.2V)認(rèn)為故障。測量結(jié)束后,給電路板接認(rèn)為故障。測量結(jié)束后,給電路板接上 數(shù)據(jù)線供電,并進(jìn)電壓3.安裝核心板:將有標(biāo)準(zhǔn)版標(biāo)簽的核心板安裝在電路板上,并重復(fù)一步,如不存在短路,上電和供電均可),重復(fù)第二步,如常,則核心板會自動運檢測程序。如果檢1秒內(nèi)行,需要立刻斷電并上 檢測。上電后會顯示“中國海洋大學(xué)”等字樣。上電OLED2秒內(nèi)沒有反應(yīng),斷電,記錄并上5.LED檢測:OLED5.LED檢測:OLED顯示“LEDTEST”字樣。自檢程序的下一LED,依次從左向右依次點亮LED,每個LED點亮的時間約為200秒。如果LED不亮的情況,記錄并上報。LED檢測程序的運行時間5秒6HMI檢測SWRot)6HMI檢測SWRot)TEST”字樣.接下來進(jìn)行的是按鍵碼開關(guān)和旋轉(zhuǎn)編碼器的按下復(fù)位鍵,則程序重新運行。重新運行 檢測程序 檢測程序運行完成后,進(jìn)入按鍵檢測此時,按下某一個按鍵KEY1,LED燈會全部點亮,松開后LED按鍵全部波動任意一個撥碼LED等會全部點亮撥下后會全部熄滅。在按鍵全部松開碼盤全部撥下的時候旋轉(zhuǎn)編碼器,則LED會被順序點亮。按下旋轉(zhuǎn)編碼器,LED等會亮。 會顯示相應(yīng)的操作如果操作正確的情何一個輸入設(shè)備沒有反則記錄并HMI測試的時30秒。30秒后,用戶可以使用按鍵選擇菜7.RS232檢測:OLED顯示“RS232TEST”字7.RS232檢測:OLED顯示“RS232TEST”字樣串口線一頭接入電腦一頭RS232DB9插頭PC機(jī)端打開串口程序,設(shè)置波11522,數(shù)據(jù)為8為,停止位1,無校驗位。此會顯示word!”PC機(jī)器發(fā)送數(shù)據(jù),OLED上會顯示按下鍵,會進(jìn)入下一步檢8.RS485檢測:OLED顯示“RS485TEST”字樣將串口線經(jīng)過RS232轉(zhuǎn)接器,然后PC機(jī)器。設(shè)置波特率為11522,數(shù)據(jù)上顯示,并且發(fā)送會PC機(jī)器。需要J5,J4的跳線帽跳到RS485按下 鍵,會進(jìn)入下一步檢測9.IRDA按下 鍵,會進(jìn)入下一步檢測9.IRDA檢測:OLED顯示“IRDATEST”字樣。需要將J5,J4的跳線帽IRDA端。需要另外STM32綜合開發(fā)平臺的個標(biāo)準(zhǔn)板。將紅外模準(zhǔn)。接受功能測試:此時按下標(biāo)準(zhǔn)KEY1按鍵OLED會顯KEY1同LED0會被點亮功能如果按下實驗班鍵,則標(biāo)準(zhǔn)版LED0會點亮,并OLED有顯10.CAN檢測:OLED顯示“CANTEST”字樣。USB-CAN,ZLG-CAN顯示下位機(jī)發(fā)送上來的數(shù)據(jù)。如果上位機(jī)向下發(fā)送數(shù)據(jù),則上顯示按下鍵,會進(jìn)上顯示按下鍵,會進(jìn)入下一步檢11.DS18B20檢測:OLED顯示“DS18B20TEST”字樣,然后OLED當(dāng)前的溫此時可以上網(wǎng)或者使用智能手機(jī)得到當(dāng)前的溫度數(shù)值差別較大(大于5攝氏度),則記錄按下 鍵,會進(jìn)入下一步檢測按下 鍵,會進(jìn)入下一步檢測 蜂鳴器檢測:OLED會顯示“BuzzerTEST”字樣。然后蜂鳴幾首歌曲《最炫民義勇軍進(jìn)《西游記插曲如果你聽力正常,卻一直沒有蜂鳴器發(fā)出任何聲音,則記錄按下 鍵,會進(jìn)入下一步檢測13.實時時鐘檢測:OLED會顯示“RealTimeTEST”,OLED會顯一個可以通過按鍵設(shè)置并且可以如果時鐘沒有走時或者走時不準(zhǔn)確,記錄按下 鍵,會進(jìn)入下一步檢測.按下 鍵,會進(jìn)入下一步檢測.TESTOLED會顯三軸的加速度數(shù)值。根據(jù)板子向左傾斜或者向右如果數(shù)值不變,則記錄按下 鍵,會進(jìn)入下一步檢測15.E2PROM檢測:OLED會顯示“E2PROMTEST”和“FAILED”字樣。記錄即可按下 鍵,會進(jìn)入下一步檢測16PS/2鍵盤:OLED會顯示“PS/2TEST”字樣。此時,16PS/2鍵盤:OLED會顯示“PS/2TEST”字樣。此時,可以斷開電源PS/2鍵盤(PS/2鍵盤不支持熱插拔)。下次上電后,程序會從檢測處開始運行。此時,鍵盤輸入的數(shù)據(jù)可以在OLED上顯示。按 鍵,會進(jìn)入下一步檢17.電位器檢測:OLED會顯 TEST”字樣。此時,用螺絲旋轉(zhuǎn)調(diào)電位器上的螺絲,可以在OLED上顯示當(dāng)前的電壓數(shù)值。如果變化,則視為按下 鍵,會進(jìn)入下一步檢測18.插入SD卡,OLED會顯示“SDCARDTEST”字樣。此時會進(jìn)行會自動檢測卡的功能。然后會顯示“Success”或者字樣。此時應(yīng)該在接上USB按下 鍵,會進(jìn)入下一步檢測19.USB功能:OLED會顯示 TEST”字樣。此時實現(xiàn)一個免驅(qū)動SD卡讀卡器。此時電腦上會出現(xiàn)一個U盤圖樣,可以讀寫SD卡。60秒內(nèi)一直未出現(xiàn),則說明故障按下 鍵,會進(jìn)入下一步檢測OLED TEST”字樣此時會對FM芯片和芯片的I2C進(jìn)行測試,如果芯片的I2C進(jìn)行測試,如果測試通過,插入耳機(jī)到LINE_OUT,可以聽廣播音,可以通過旋轉(zhuǎn)編碼器調(diào)頻,并且在OLED顯示當(dāng)前的頻道。I2C不通過,則在OLED上顯示按下 鍵,會進(jìn)入下一步檢測21.AUDIO功能:OLED會顯示“AUDIOTEST”J2的跳線帽跳到AUDIO可以播放SD卡上的一段音并且將MIC插入MIC_L,MIC_R,LIN_I,可以在耳機(jī)里面聽到聲按下 鍵,會進(jìn)入下一步檢測22.DAC功能:OLED會顯示“DACTEST”字樣此時用示波器測量 腳,即此時用示波器測量 腳,即第五行左側(cè)看是否會有正弦波的波形現(xiàn)。KEY1鍵,會進(jìn)入下一步功能:OLED會顯“PWMTEST”字樣22.此時,用示波器測1516腳,15腳在倒數(shù)第三行左腳倒數(shù)第三行右即第倒數(shù)第三行右即第五行是否會有方波的波形出波波形的占空比還在變23.以太網(wǎng)功能插上網(wǎng)線。按下鍵,會進(jìn)行以太網(wǎng)測試。此時,將您的電為在交換機(jī)出找到一根網(wǎng)線,接在交換機(jī)出找到一根網(wǎng)線,接到開發(fā)板上,看開發(fā)板的網(wǎng)口燈是否PC機(jī)的瀏覽器里輸10以打開一個網(wǎng)頁打開命令行界你還可以在開始->運行,輸輸入:ping看是否pingPingping輸入telnet按鍵功能:KEY1:下一個KEY2KEY3輸入telnet按鍵功能:KEY1:下一個KEY2KEY3上一KEY4重新5.2核心板測短路檢測:焊接完成后,檢測P21腳和2腳和P330腳是短路。做記錄,如果短路馬上上插入USB-MiniAB數(shù)據(jù)線電源等是否點亮如果點低1P330腳之間的電壓是否是3.3V,測量P2230腳之間的電壓是否是5V,并作記錄,如果超過標(biāo)準(zhǔn)0.2V錄并上報第一步和第二部測試通過后,將核心板插接到一個標(biāo)有基板標(biāo)簽的基進(jìn)行基板測試中第一步的短路測果測試通則上電,進(jìn)行第二部的電壓測試。如果測試不通過,則馬上 如果上述兩步都通過,則可 如果上述兩步都通過,則可PC下載程序。程序有兩個版ST-Link下載版本和J-Link下載版本。你需要根據(jù)你手上擁有的下器選擇程序版本。如果下載不通過,請檢查下載器和PC機(jī)器接,下載器和開發(fā)板的鏈接,程序版本是否正確。如果都無則需要馬上斷電并此時,應(yīng)該將J2J3上的跳線帽跳到JTAG端 下載程序成功后,斷開在線調(diào)試,斷開電源,并拔下仿 按基板測試的測試流程,從第三步開始測試5.3故障排除流1.短在所有的故障中,短5.3故障排除流1.短在所有的故障中,短路是非常嚴(yán)重的故障,比較容易出現(xiàn)的電源和地短路。出現(xiàn)短路的主要故障點為USB。另外,加芯片芯片都容易出現(xiàn)短路的狀況。短路需要細(xì)心的排查以一次性2.核心板下主要原因為晶振焊接不良,重新焊接晶振可能會解決這種問如果仍然不能解決,一般需要重新更換核3.OLED不能顯OLED無法顯示不一定是OLED焊接不良引起的,如果其他的I2C件出現(xiàn)焊接不良,可能也能導(dǎo)致OLED無法顯示。一般需要將I2C阻去掉4.USB無法通一般是由于Mini 焊接不良引起的,重新焊接能夠解決本問題5.以太網(wǎng)無法通如果基座出現(xiàn)該問題,多半是由于以太網(wǎng)的接口焊接不良引等等第二部分:硬STM32綜合開發(fā)平臺采用基板+核心板的設(shè)置方式。基板作為載體,可以完成MCU的核心板,只要滿1SD等等第二部分:硬STM32綜合開發(fā)平臺采用基板+核心板的設(shè)置方式?;遄鳛檩d體,可以完成MCU的核心板,只要滿1SDSTM日歷按鍵1USB2.0OTG,MiniAB有I2S數(shù)字接口。11.1OLED顯示屏,I2C1SD卡座,SPI1CANDB91RS-485DB91RS-232PC1IRDA1EEPROMM24C02,I2C11444個用戶狀態(tài)指示燈11RTC1PS/212X101DS18B205V,12V電源。31.CPU,STM32F107VC2.5VCPUADCDAC32X152STM32STM32F107STM32F207芯片的設(shè)計,能夠兼容STM32F107VC和STM32F207VC。此外,核心板上有一個以太網(wǎng)的PHY芯片,RTL8201BL。以太網(wǎng)芯片和MCU的接口為接口。1.RX+RX-,TX+,TX-為調(diào)制后的以太網(wǎng)信號,LED0LED3RJ45么和MII相關(guān)的管腳將不能使用。不能正常運行。在下載固件的時候,不能正常運行。在下載固件的時候,J1跳線帽不能短接。MCU123456789ETH1ETH18MII接口。I2SJTAGPA15PB3,共用PD4PD5,這些在基板上也通過跳線帽來選擇。3MCU32X15的插槽和核心板ETH1ETH18MII接口。I2SJTAGPA15PB3,共用PD4PD5,這些在基板上也通過跳線帽來選擇。3MCU32X15的插槽和核心板4個LED燈,OLED,蜂鳴器),存儲器(SD卡),一線制芯片(DS18B20),還可以外接PS/2鍵盤或鼠標(biāo)。另外,基板還有一個擴(kuò)展接口,擁SPI總線,2PWM3個GPIO,2路模擬輸入和1路模擬數(shù)輸出。下面對其功能進(jìn)行簡要介紹。包括3.3V,12V和5V穩(wěn)壓電路。其中,3.3V為系統(tǒng)大部分電路供電。5V3個電源的工作狀態(tài),點亮表示工作正常。還有4個測試點(3.3V,5V,12V,GND)MiniUSB接口供電,DC9V的變壓器供電(變壓器電源范圍為7V–40V,推薦使用9V,最好不到大于12V)。RS232(2),RS485(3),紅外(3)3RS232可以直接和PC機(jī)進(jìn)行通訊(DB9插頭:2.TXD,3.RXD,5.GND),RS485定義和主流的RS232485接口線同(DB91.D+2.D-5.GND),RS485都使用串口CANDB接口,CANDB接口,2CANL,5.GND7CANHUSB-CANUSB可以PC機(jī)的USB電源為開發(fā)平臺供電。1.1”O(jiān)LEDI2C總線,地址為(0111100X)。4個按鍵,按下按鍵為低電,釋放為高電平(KEY0-KEY3)。4LED燈,低電平點亮,高電平熄滅(LED0-LED3)。4個撥碼開關(guān),上撥為低電平(SW0-SW3),中間位置和下?lián)転楦唠娖健?1PS/2接口的母口插座,可以支持PS/2接口的鼠標(biāo)和鍵盤。I2C除了上文提到的OLED外,還包括PCF8563(日歷芯片),地位為1010001X。I2CI2C總線,所以您不能同時和兩個設(shè)備進(jìn)行通信,因FMSi4720FMAMWM8978FM模塊和音頻模塊,才能夠收聽或者發(fā)送廣播??刂平涌跒镮2C。3個模擬輸入通道,分別為麥克左聲道,麥克右聲道,線路輸入。4個模擬口,一個I2S音頻數(shù)據(jù)接口。LED1USB-A1USB-AMiniBPCPCDC9V對基板供電,有一個電源開關(guān)可以控制電源USBDC9VUSB數(shù)2STM32F107/207R15R17R23C18C31C18C31R15R17R233BOOT在核心板上可以通過電阻R19、來配置啟BOOT1 0 0說明,一般只R22,此時系統(tǒng)從3BOOT在核心板上可以通過電阻R19、來配置啟BOOT1 0 0說明,一般只R22,此時系統(tǒng)從20JlinkST-調(diào)試需要6以通過電路板的J2和J3進(jìn)行選擇。如果采用SWD方式,只需要 NRST(復(fù)位)三個管因此在調(diào)試音頻模塊的時候說x0MainFlash01System從系統(tǒng)存儲器啟動,可以進(jìn)行11SRAM線帽跳到左側(cè)AUDIO,你只能使用SWD方式,可以使用音頻模塊的I2SI2SI2S5RS485IRDA7.7.提供5V電源DAC123456789 如果其不安裝在核心板上,可以通過MiniUSB插座為核心板供電。 5Poweri321324HeaderVREF+R13 分別提供3.3V,5V和12V的穩(wěn)壓電源,并且有三個測試點提供測試。J1DC電源的供電端口,橋式整流橋用來防止反接,F(xiàn)1限流,U2631 1 15 42567 5Poweri321324HeaderVREF+R13 分別提供3.3V,5V和12V的穩(wěn)壓電源,并且有三個測試點提供測試。J1DC電源的供電端口,橋式整流橋用來防止反接,F(xiàn)1限流,U2631 1 15 4256789電電電電電9V輸2VINTRIM 414SK342345232 0. 43是全部點亮的,而且亮度正常。43.3V,5V,12VGND可以測試電源 NCNCNCNC191 VSS5514SK342345232 0. 43是全部點亮的,而且亮度正常。43.3V,5V,12VGND可以測試電源 NCNCNCNC191 VSS55 123456789 1uFBEADLED6LED7為數(shù)據(jù)指示燈。LED6表示發(fā)送出數(shù)據(jù),LED7MCU 485A+6 485A- RS485RS485VCC 21546 37 3472815UART3_TX(fullremap)DR54637281 7 123456789 1uFBEADLED6LED7為數(shù)據(jù)指示燈。LED6表示發(fā)送出數(shù)據(jù),LED7MCU 485A+6 485A- RS485RS485VCC 21546 37 3472815UART3_TX(fullremap)DR54637281 7 108495DConnector RS232的電平轉(zhuǎn)換芯片為MAX232CE。外部接口為DB9.有兩個LED用來顯示接受到數(shù)據(jù),RXDDB9接口,定義PC13452C1916LED1114 2 RS232的電平轉(zhuǎn)換芯片為MAX232CE。外部接口為DB9.有兩個LED用來顯示接受到數(shù)據(jù),RXDDB9接口,定義PC13452C1916LED1114 2 T1INT1OUTT2IN7913 8R1OUTR2OUT VEE布布布。近近近近近5VRS232 CAN16 738495DConnectorCAN7 108495DConnector51847362VREF5CAN電路圖MCU端口為:它的工作溫度范圍-55℃至+125°C,其中-10°C至+85°C的測量精度為±0.5℃。21 MCU51847362VREF5CAN電路圖MCU端口為:它的工作溫度范圍-55℃至+125°C,其中-10°C至+85°C的測量精度為±0.5℃。21 MCU 85555 1212121234343434Inter_S_GND4321 6784321MCU端口為LED91 2 3 4 MCU端口為85555 1212121234343434Inter_S_GND4321 6784321MCU端口為LED91 2 3 4 MCU端口為 1524RCodec(7腳MCUC旋轉(zhuǎn)一周,可以產(chǎn)生24個脈沖,即每旋轉(zhuǎn)151166C377 1524RCodec(7腳MCUC旋轉(zhuǎn)一周,可以產(chǎn)生24個脈沖,即每旋轉(zhuǎn)151166C377 電電AADC1入范圍,還是DAC的輸出范圍,都為2.5V。12PS/2PC6PS/2母口,PS/2的鼠1 34562134電電AADC1入范圍,還是DAC的輸出范圍,都為2.5V。12PS/2PC6PS/2母口,PS/2的鼠1 3456213465VCVCMCU13987123使用的MCU端口為14地址二進(jìn)制位為0111100X,16進(jìn)制為0x78(寫地址),0x79(讀地址)。OLED的Reset(低有效15NXPPCF8563T,能夠提供從年月日,小時分鐘秒32.768KHzI2C接口。PCF8563T使用的MCU端口為14地址二進(jìn)制位為0111100X,16進(jìn)制為0x78(寫地址),0x79(讀地址)。OLED的Reset(低有效15NXPPCF8563T,能夠提供從年月日,小時分鐘秒32.768KHzI2C接口。PCF8563T的I2C器件地址為二進(jìn)制表示(1010001X),160xA2,讀地址為0xA3。PCF8563T的第7腳按默認(rèn)配置為32.768KHz,為FM提供時鐘?;鍞嚯姾螅?1234 23764521 PCF85638765 16E2PROMI2C的二進(jìn)制地址為(1010111X),16進(jìn)制寫地址為0xAE,讀地址為0xAF。16E2PROMI2C的二進(jìn)制地址為(1010111X),16進(jìn)制寫地址為0xAE,讀地址為0xAF。123658VSSM24C02-17LIS35DE,可以測量三個軸的加速度。I2C加速度計有2個中斷輸出線,PE11和PE12。18USB接口采用的是MiniUSBOTGUSBUSB轉(zhuǎn)接線,可以和其他的USB從設(shè)備進(jìn)行通信,如U盤,USB鼠標(biāo)等。此時,綜合開發(fā)平臺需要為外接的始為外接設(shè)備供電。PB9用來檢測系統(tǒng)是否過流,正常的時候為高電平,指示燈LED13LED13會點亮,PB管腳會檢測到低電平,此時應(yīng)該將PE1設(shè)置為高電平停止對外供電。USBPCUSB主設(shè)備通信。PC機(jī)的PA11D+,PA12D-,PA10IDOTGUSB 123OUTOUT45LED13LED13會點亮,PB管腳會檢測到低電平,此時應(yīng)該將PE1設(shè)置為高電平停止對外供電。USBPCUSB主設(shè)備通信。PC機(jī)的PA11D+,PA12D-,PA10IDOTGUSB 123OUTOUT4512345 ToPowerSupplyR3215KUSB主設(shè)備電源控制USB主設(shè)備過流檢測USBD電源VBUS19RTL8201BL。MCUMIIR27680 LED0 1245 RD+LED3678 9RJ45的PDF查查查查查查查 MDIO 98 765432RX+31 ???TX+ LED0 1245 RD+LED3678 9RJ45的PDF查查查查查查查 MDIO 98 765432RX+31 ???TX+ 1亮,當(dāng)發(fā)送或者接收到數(shù)據(jù)的時候,綠色LED閃爍。MCUSMNSMNRESETB20wolfsonmicroWM8978。WM8978的控制總線為I2C總線,I2C0011010X。160x34,寫地址為JTAG方式進(jìn)行調(diào)試和下載。此時如果您的仿SWD方式即可。WM8978I2SDATA2ADCDATDACDAT。MCUI2S3_SD。WM_GPIO1WM897815腳,I2C的控制接口編程輸出。AUD_SDMCU91PB5。AUD_SD也接到了WM897810DACDATWM8978I2S接口配置為模擬輸入通道,WM_GPIO為低電平,SN74LVC1G125I2S接WM8978的音頻輸入的數(shù)字信號,可以進(jìn)行錄音的操作。WM8978I2SWM_GPIO為高電平,可以進(jìn)行播放音樂的操作,1235Y40(2(4(291235Y40(2(4(29(19(23(253530 20AUXR) WM897822OUT324OUT4FM收音機(jī)工作在接收狀WM8978L2R2FM收音WM8978OUT3OUT3模擬輸出通道會將聲音的模擬信號傳送給FM收音機(jī)模塊。21FMSiliconLaboratoriesSi472020小節(jié)所述,收音機(jī)WM8978FM收音機(jī)和音址,二進(jìn)制表示為1100011X,16進(jìn)制表示為:寫地址為0xC6,讀地址為0xC7。收9RCLKPCF8563T7CLKOUT。Si47205RSTMCUPE0,FM22SDMCUFM9123182347 5 SCLK/SCLK 8CardMCU12345678913151719Header9123182347 5 SCLK/SCLK 8CardMCU12345678913151719HeaderDAT1SW0SW11627384952SPIPWM3GPIO,路2SPIPWM3GPIO,路MCU5V5VSPIPWM輸出PWM輸出68第三部分:工1IARIAREmbeddedWorkbenchforARM(下面簡稱IAREWARM)是一個針對XLINKRTOSC-SPYIAREWARM環(huán)境下可以使用C/C++和匯編語言方便地開發(fā)嵌入式應(yīng)用程序。比較其他的ARM開發(fā)環(huán)境,IAREWARM1.1.1新建IAR工程及下載與調(diào).....BS.BSPLibra添加兩個工作組之前應(yīng)先將這兩個文件夾復(fù)制在工程文件夾“test”下(以后碼,包括CPULibrary”中添加的文件是STM326.main函數(shù)文件,在這里面編程來實現(xiàn)我們想要達(dá)到的效果6.main函數(shù)文件,在這里面編程來實現(xiàn)我們想要達(dá)到的效果先寫好,也可添加文件后,在工程里編寫,結(jié)果圖如下*這里需要說明的是:$*這里需要說明的是:$OJ_DI$ IARIARIARIARLibraryLibraryOptionC/CCompiler里面,Preprocessor選項夾。IncludedirectoriesDebugger欄,SetupDebugger欄,SetupSWDVectorVector簡要敘述Keil工具的使用2介紹ST-link的驅(qū)動安裝。Co-link的驅(qū)動。IAR的配置,Keil介紹ST-link的驅(qū)動安裝。Co-link的驅(qū)動。IAR的配置,KeilCoIDE3ISP 第四部1跑馬燈STM32I/O口的高低電平控制了,本章將通過一個經(jīng)STM32STM32的I/O口最為輸出使用的方法。STM32F107LEDLED9,LED10交替閃爍,實現(xiàn)類似跑馬燈的效果 STM32I/O每個GPI/O端口有兩個32位配置寄存器(GPIOx_CRL,GPIOx_CRH),兩32位數(shù)據(jù)寄存器(GPIOx_IDR和GPIOx_ODR),一個32位置位/(GPIOx_BSRR)16位復(fù)位寄存器(GPIOx_BRR)32(GPIOx_BSRR)16位復(fù)位寄存器(GPIOx_BRR)32(GPIOx_LCKR)。I/O端口的特定硬件特征,────────I/OI/032位字被訪問(不允許半字或字節(jié)訪問)GPIOx_BSRR和GPIOx_BRR寄存器允許對任何GPIO寄存器的讀/更改的獨立訪問;這樣,在讀和更改訪問之間產(chǎn)生IRQ時不會發(fā)生 硬件連該實驗的硬件電路在STM32F107開發(fā)板上默認(rèn)是連接好了的。LED7 軟件程序設(shè)intmain(void){ 軟件程序設(shè)intmain(void){{}}void{RCC_APB2PeriphClockCmd(LED_CLK,LED2_GPIO|||GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=}RCC_APB2PeriphClockCmd(LED_CLK,LED2_GPIO|||GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=}#define#define4#defineLED0_PORT#defineLED1_PORT#define#define#define(RCC_APB2Periph_GPIOD|#define#define#define#defineLED0_PORT- =LED0_PORT->BSRR #define#defineLED1_PORT-=LED1_PORT->BSRR=#define#defineLED2_PORT-=LED2_PORT->BSRR=#defineLED3_PORT-#defineLED3_PORT->BSRR=#defineLED3_PORT->BSRR=x=0,1,2,函數(shù)為燈亮函數(shù),Led0Off()—Led3Off()函數(shù)為燈滅函數(shù),voidDelayMs(int這些函數(shù)在stm32107_bsc.c及stm32107_bsc.h中均有定義,可參3.2按鍵輸入3.2.1STM32I/OIDRI/O口狀STM32F107開發(fā)4個按鍵:KEY0,KEY1,KEY2,KEY3來控制板載LED燈:LED7,LED8,LED9,LED10的亮滅。它們是一一對應(yīng)關(guān)系:其中,KEY0LED7,按一次滅,再按一次亮。3.2.2硬件連KEY1PE3,KEY2PE4,KEY3PE5;LED7PD12,LED8PD13,3.2.3軟件3.2.3軟件程序#includeint{charled[5]={0,0,0,0,0};{{casecasecase3:case3:case}}}void{GPIO_InitTypeDefRCC_APB2PeriphClockCmd(KEY_CLK,GPIO_InitStructure.GPIO_Pin=KEY0_GPIO|KEY1_GPIO||GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;}u8{staticu8key_up1;//{key_up=0;{{key_up=0;{return}else{return}else{return}else{return}}elseif(KEY0PressUp()&&return0;//無鍵按}KEY1PressUp()&&KEY2PressUp()程序中大多函數(shù)在前一章中均有描述,這里只說明一下KEY_GPIOInit()函KEY_SCAN()函數(shù),KEY_GPIOInit()負(fù)責(zé)配GPIO端口及其時鐘,其中GPIO_InitStructure數(shù)據(jù)結(jié)構(gòu)包含所有GPIO端口配置所需各項。函數(shù)GPIO_Init則實現(xiàn)某個端口的配置3.3獨立看門狗部自帶了兩個看門狗:獨立看門狗(IWDG)和窗口看門狗(WWDG)。這3.3.1STM32獨立看門3.3.1STM32獨立看門狗STM32F107內(nèi)置兩個看門狗,提供了更高的安全性、時間的精確性和使用的靈活性。兩個看門狗設(shè)備(獨立看門狗和窗口看門狗)可用來檢測和解決由軟獨立看門狗(IWDG)由專用的低速時鐘(LSI)驅(qū)動,即使主時鐘發(fā)生故障它也作,并且對時間精度要求較低的場合。WWDG最適合那些要求看門狗在精確計IWDG●●●0x0003.3.2硬件連STM32內(nèi)部進(jìn)行,不需要外部電路。但是考慮3.3.3軟件程序根據(jù)任務(wù)要求,參考程序如下void{IWDG_SetPrescaler(IWDG_Prescaler_64);//分頻數(shù)為64IWDG_Enable();//使能開門}void{IWDG_Enable();//使能開門}void{}intmain{{if(KEY_SCAN()==}}IWDG_Feed函數(shù)用來喂狗,因為STM32的喂狗只需要向寄存器寫入3.4窗口看門狗3.4.1STM32窗口看門狗T63.4.1STM32窗口看門狗T607位的遞減計數(shù)器數(shù)值在控制寄存器中)被刷新,那么也將產(chǎn)生一個MCU復(fù)位。這表明遞減計數(shù)器需要在一個有WWDG主要特●●──●3.4.2硬件連2個外部的3.4.3軟件程序void{NVIC_InitTypeDefNVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannel=WWDG_IRQn;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;}void{void{{}}void{RCC_APB2PeriphClockCmd(LED_CLK,ENABLE);}intmain{{//8M/4096/8=244Hz,4ms}}}}WWDG_Init函數(shù)為窗口看門狗初始化函數(shù),用來設(shè)置WWDG的初始化3.5定時器中斷TIM7等基本定時器。在《STM32參考手冊》里面,定時器1/5的篇幅,足見其重要性。本章將利TIM3的定時器中斷來LED8的翻轉(zhuǎn),在主3.5.1STM32通用定時器16位自動裝載計數(shù)器構(gòu)成。它適用于多種場合,包括測量輸入信號的脈沖長度(輸入捕獲)或者產(chǎn)生輸出波形(PWM)。使用定時器RCC時鐘控制器預(yù)分頻器,脈16位向上、向下、向上/16位可編程(可以實時修改)1~65536之間的任意PWM生成(邊緣或中間對齊模式●────●●─如下事件發(fā)生時產(chǎn)生中斷/DMA:更新:計數(shù)器向上溢出─●●─如下事件發(fā)生時產(chǎn)生中斷/DMA:更新:計數(shù)器向上溢出/向下溢出,計數(shù)器初始化(/外部觸發(fā)觸發(fā)事件(計數(shù)器啟動、停止、初始化或者由內(nèi)部外部觸發(fā)計數(shù))───●●3.5.2硬件連3.5.3軟件程序void{NVIC_InitTypeDefNVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;}void{if(TIM_GetITStatus(TIM3,TIM_IT_Update)=={}TIM_ClearITPendingBit(TIM3,}void{}TIM_ClearITPendingBit(TIM3,}void{RCC_APB2PeriphClockCmd(LED_CLK,ENABLE);TIM_TimeBaseStructure.TIM_Period=500;TIM_TimeBaseStructure.TIM_Prescaler=周期為1/1000,計數(shù)器周期為0.5sTIM_TimeBaseStructure.TIM_CounterMode=}intmain{{}}LED1取反。定時器初始化函數(shù)主要設(shè)置}}LED1取反。定時器初始化函數(shù)主要設(shè)置TIM3TIM3PWM輸出STM32TIM3STM32的高級定時器TIM1來產(chǎn)生PWM輸出。TIMER1PWM波,并用示波器來檢測。 PWM簡脈沖寬度調(diào)制(PWM)PulseWidthModulation的縮寫,簡稱脈寬STM32的定時器出了TIM6和TIM7外,其他的定時器都可以用來產(chǎn)生PWMTIM1TIM87PWM輸出。而4PWM輸出,這樣,STM32可以最多同時30PWMTIM1CH3PWM輸出,如果要 硬件連STM32F107I/O口分配,TIM1PE13口上,3.3PWMSTM32F107PWM2GND 軟件程序設(shè)void{ 軟件程序設(shè)void{//PWMGPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//復(fù)用功能GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOE,&GPIO_InitStructure);GPIO_PinRemapConfig(GPIO_FullRemap_TIM1,}void{/*EnableKeyButtonGPIOPort,GPIO_LEDandAFIOclock*/}void{/*Timebaseconfiguration*/TIM_TimeBaseStructure.TIM_Period=TIM_TimeBaseStructure.TIM_Prescaler=0;TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);/*Channel3ConfigurationinPWMmode*/TIM_OCInitStructure.TIM_OutputState=TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_Low;TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set;TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCIdleState_Reset;TIM_OCInitStructure.TIM_Pulse=key;TIM_OC3InitTIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_Low;TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set;TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCIdleState_Reset;TIM_OCInitStructure.TIM_Pulse=key;TIM_OC3Init/*TIM1enablecounter*/TIM_CtrlPWMOutputs(TIM1,}u16{{return}{return}{return}{return}return5000;//無鍵按}void{/*SystemClocksConfiguration/*ConfiguretheGPIOports*/while(1){key=}}GPIO_Configuration函數(shù)配PWM輸出端口,并配置這是因為TIM1_CH3通道是以I/O復(fù)用的形式連接到PE13PWM_Configuration函數(shù)則是用來設(shè)置TIM1_CH3PWM模式并使能4階實4階實4.1串口據(jù)。主要實現(xiàn)如下功能:STM32通過串口3(USART3)和上位機(jī)的對話,使STM32在收到上位機(jī)發(fā)過來的字符串后,可以其他字符不變,字母大寫與小寫4.1.1串口簡MCU的重要外部接口,同時也是軟件開發(fā)重要的調(diào)試手段,其重STM325路串口。串雙工單線通信,也支持LIN(局部互連網(wǎng)),智能卡協(xié)議和IrDA(紅外數(shù)據(jù)組使用多緩沖器配置的DMA方式,可以實現(xiàn)高速數(shù)據(jù)通信。串口的最基本設(shè)置就是波特率的設(shè)置。STM324.1.2硬件連原理圖如圖4.1所示:PD8PD9i13452iiLED14798R1OUTR1INR2OUT4.1.2硬件連原理圖如圖4.1所示:PD8PD9i13452iiLED14798R1OUTR1INR2OUTR80 VEE4.1.3軟件程序void{USART_InitTypeDefGPIO_InitTypeDefGPIO_InitStructure;NVIC_InitTypeDefUSART3上時鐘USART_DeInit(USART3);//為配置做準(zhǔn)USART_InitStructure.USART_WordLength=USART_InitStructure.USART_StopBits=給1uF=|RCC_APB2Periph_AFIO,ENABLE);=|RCC_APB2Periph_AFIO,ENABLE);|GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOD,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_Init(GPIOD,NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;}voidusartSendStr(char{while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET);{{while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET);{while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==}}intmain{intchar{{for(i=0;i<LenMax;{if(RxBuffer[i]>='a'&&RxBuffer[i]<='z')temp=RxBuffer[i]+('A'-'a');elseif(RxBuffer[i]>='A'&&RxBuffer[i]<='Z')temp=RxBuffer[i]+('a'-'A');temp }RxFlag=}}}void{RxFlag=}}}void{斷{/*ReadonebytefromthereceivedataregisterRxBuffer[RxCounter++]=if(RxBuffer[RxCounter-1]=='^'||RxCounter==15{RxCounter=RxFlag=}}if(USART_GetITStatus(USART3,USART_IT_TXE)!=RESET&&{/*Writeonebytetothetransmitdataregister*/if(TxCounter==RxCounter){RxCounter=TxCounter=}}}3(函數(shù)usart3Init的初始化與前面章節(jié)基本類似,可以首先在串口中收到“WelcometoOUC!能以及開啟串口3的可以首先在串口中收到“WelcometoOUC!能以及開啟串口3的NVIC中斷。這些函數(shù)名是什么,可以在啟動文件startup_stm32f10x_cl.s里面找到。4.2DAC4.2.1STM32DAC數(shù)字/模擬轉(zhuǎn)換模塊(DAC)12位數(shù)字輸入,電壓輸出的數(shù)字/模擬轉(zhuǎn)換DAC模式下,2個通道可以獨立地進(jìn)行2個通道的輸出。DAC可以通過引腳輸入?yún)⒖茧妷篤REF+以獲得更精確的轉(zhuǎn)換結(jié)果。DAC主要特每個通道都有DMA功能●●●●●●●●●●4.2.2硬件連本章通過DAC的通道2(PA5)來輸出波形,因此需要自備的連接線,一 4.2.3軟件程序void{ 4.2.3軟件程序void{TIM_TimeBaseInitTypeDef//ARRTIM_BaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_BaseInitStructure.TIM_RepetitionCounter=0;TIM_TimeBaseInit(TIM2,&TIM_BaseInitStructure);TIM_PrescalerConfig(TIM2,0x0,TIM_PSCReloadMode_Immediate);//時鐘分頻系數(shù)36000,所以定時器時鐘為2KTIM_ARRPreloadConfig(TIM2,ENABLE);//使能ARR預(yù)裝載緩TIM_SelectOutputTrigger(TIM2,TIM_Cmd(TIM2,}void{=DAC_InitStructure.DAC_OutputBuffer==DAC_InitStructure.DAC_OutputBuffer==}一共有八個。六個是定時器觸發(fā):TIM2,TIM4,TIM5,TIM6,TIM7和TIM8。剩下兩個是:EXTI9和軟件觸發(fā)。如果使用定時器就要編相應(yīng)的定時器函DAC_InitStructure.DAC_Trigger=DAC_Trigger_T2_TRGO;//6作為外部觸發(fā)源。輸出信號頻率:360000/(0x8C9F+1)=1KHz。以自定義輸出波形。就不需要設(shè)置這個參數(shù),或者設(shè)置為DAC_InitStructure.DAC_OutputBuffer,及是否使用輸出緩存。其STM32DAC無需外部運放就可以直接驅(qū)動負(fù)載。這里一般設(shè)置成DAC_OutputBuffer_Disable,即關(guān)閉外部緩存。void{DAC_InitStructure.DAC_Trigger=DAC_Trigger_Software;=DAC_InitStructure.DAC_WaveGeneration==DAC_TriangleAmplitude_2047;//幅值2047DAC_InitStructure.DAC_WaveGeneration==DAC_TriangleAmplitude_2047;//幅值2047DAC_Cmd(DAC_Channel_2,//}int{floatx=0.0;while(1){dac_date=(u16)(1023.0*cos(x)+1024.0);x=x+0.01;if(x>x=DAC_SetChannel2Data(DAC_Align_12b_R,dac_date);}}ADC實 STM32ADC STM32ADCSTM321~3ADC(STM32F101/1021ADC),ADC可以獨立使用,也可以使用雙重模式,以提高采樣率。STM32ADC12位A18162個A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC16位數(shù)據(jù)寄存器中。模擬看門狗特性允許應(yīng)用程序檢測輸入電壓是否超出用戶定義的高/ADC的輸入時鐘不得超過14MHz,它是由PCLK2經(jīng)分頻產(chǎn)生。否則將導(dǎo)致結(jié)果準(zhǔn)確度下降。ADC主要特12ADC●●●●●●●●●●●──μs)μs)STM32F102xxUSB型產(chǎn)品:時56MHz1μs(28MHz1μs(48MHz1.2μ72MHz1.17μ●●●ADC供電要求:2.4VADC輸入范圍:V≤ ≤ 硬件連本章通過ADC1的通道6(PA6)來讀取外部電壓值,連接原理圖如圖4.3。STM32F1073.3V電源與電位器來獲得改變的電3.3V電源、電位器與地連起來,這里還 硬件連本章通過ADC1的通道6(PA6)來讀取外部電壓值,連接原理圖如圖4.3。STM32F1073.3V電源與電位器來獲得改變的電3.3V電源、電位器與地連起來,這里還 軟件程序設(shè)int{floatSystemInit();//設(shè)置系/*Systemclocks/*NVIC/*GPIO/*ConfiguretheUSART3123printf("\r\nUSART3print /*DMAchannel1printf("\r\nUSART3print /*DMAchannel1DMA_InitStructure.DMA_PeripheralBaseAddr=ADC1_DR_Address;DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;DMA_InitStructure.DMA_BufferSize=1;DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc=DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;DMA_Init(DMA1_Channel1,&DMA_InitStructure);/*EnableDMAchannel1==/*ADC1ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode=ENABLE;ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel=1;ADC_Init(ADC1,/*ADC1regularchannel6configuration/*EnableADC1DMA*//*EnableADC1ADC_Cmd(ADC1,/*ADC_Cmd(ADC1,/*EnableADC1resetcalibarationregister*//*ChecktheendofADC1resetcalibrationregister*//*StartADC1calibaration*//*ChecktheendofADC1calibration*//*StartADC1SoftwareConversion*/ADC_SoftwareStartConvCmd(ADC1,ENABLE);{/*PrintfmessagewithADvaluetoserialportevery1secondad_value=((float)AD_value*2.50)/4096.0;printf("ThecurrentADvalue=%1.2f\r\n",ad_value);}}intputchar(int/*Printfwhile(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET);return}塊的實驗,也一定程度上反映了STM32的功能強(qiáng)大。DMA,ADC模塊進(jìn)行了配置,具體設(shè)置含義請參考工程文制顯示轉(zhuǎn)換成了十進(jìn)制顯示ad_value=((float)AD_value*2.50)/4096.0。CAN通訊本章介紹STM32的CAN通訊功能,實現(xiàn)了CAN發(fā)送與接收的功能,同時CAN通訊本章介紹STM32的CAN通訊功能,實現(xiàn)了CAN發(fā)送與接收的功能,同時通過LEDLED7不CAN軟件中一直收到“1122CAN發(fā)送正常。點擊CAN軟件中的“發(fā)送”,LED9熄滅,說明程序進(jìn)入了中斷;LED8不停地閃 STM32bxCAN簡bxCANCAN(BasicExtendedCAN)的縮寫,它支持CAN協(xié)議2.0A2.0BCPU負(fù)荷來高效處理大量收到的報文。它也支持報文發(fā)送的優(yōu)先級要求(優(yōu)先級特性可軟件配置)。對于安全緊要的應(yīng)用,bxCAN提供所有支持時間觸發(fā)通信模式所需的硬件功能。bxCAN主要特●●波特率最高可達(dá)1兆位/秒3SOF時刻的時間戳其它STM32F103xx系列產(chǎn)品中有14個過濾器組FIFO溢出處理方式可配置●●──●●●時間觸發(fā)●●●管4.4.1硬件連USBCAN-I/II智能圖如圖4.4所示。1 47362VREF 54.4.2軟件程序u8CAN_Configuration(void){4.4.1硬件連USBCAN-I/II智能圖如圖4.4所示。1 47362VREF 54.4.2軟件程序u8CAN_Configuration(void){CanTxMsgTxMessage;CAN_FilterInitTypeDefu32u8TxMailBox=CAN_InitStructure.CAN_TTCM=DISABLE;CAN_InitStructure.CAN_ABOM=DISABLE;CAN_InitStructure.CAN_AWUM= CAN_InitStructure.CAN_NART=DISABLE;CAN_InitStructure.CAN_RFLM=DISABLE;CAN_InitStructure.CAN_TXFP=DISABLE;CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;CAN_InitStructure.CAN_BS1=CAN_BS1_3tq;CAN_InitStructure.CAN_BS2=CAN_InitStructure.CAN_PrescalerCAN_InitStructure.CAN_NART=DISABLE;CAN_InitStructure.CAN_RFLM=DISABLE;CAN_InitStructure.CAN_TXFP=DISABLE;CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;CAN_InitStructure.CAN_BS1=CAN_BS1_3tq;CAN_InitStructure.CAN_BS2=CAN_InitStructure.CAN_Prescaler=4;CAN_FilterInitStructure.CAN_FilterNumber=CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;CAN_FilterInitStructure.CAN_FilterFIFOAssignment= //FIFO0CAN_FilterInitStructure.CAN_FilterActivation=TxMessage.StdId=0x00;TxMessage.ExtId=0x123;TxMessage.IDE=CAN_ID_STD;TxMessage.DLC=2;TxMessage.Data[0]=0x11;TxMessage.Data[1]=0x22;TxMessage.Data[2]=0x33;TxMessage.Data[3]=&&(i{}{}{}return}externvolatileu8{}{}{}return}externvolatileu8void{CanRxMsgRxMessage;RxMessage.StdId=0x00;RxMessage.IDE=0;RxMessage.FMI=0;RxMessage.Data[0]=0x00;RxMessage.Data[1]=if((RxMessage.StdId==0x00)&&(RxMessage.ExtId==&&((RxMessage.Data[1]|RxMessage.Data[0])==//不能這樣(RxMessage.Data[1]|(RxMessage.Data[0]<<8)==比|優(yōu)先級{}{}}CAN_ConfigurationCAN通訊的基本設(shè)置,具體各個設(shè)置的含義在我們的工程文件里有詳細(xì)說明,或者可以查閱{}}CAN_ConfigurationCAN通訊的基本設(shè)置,具體各個設(shè)置的含義在我們的工程文件里有詳細(xì)說明,或者可以查閱CAN1_RX0_IRQHandler是我們的接收中斷類型”與“幀ID”及“數(shù)據(jù)”。DS18B20實STM32雖然內(nèi)部自帶了溫度傳感器,但是因為芯片溫升較大等原因,與實 DS18B20DS18B20是由DALLAS半導(dǎo)體公司推出的一種“一線總線”接口的溫度DS18B203V~5.5V9~12裝方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報警溫度光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64ROM8位(28H)是產(chǎn)品類型標(biāo)號,光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64ROM8位(28H)是產(chǎn)品類型標(biāo)號, 硬件連231 軟件程序設(shè)#include#include功參#include功參返回值voidDS18B20_IO_OUT(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_ModeGPIO_Mode_Out_PP開漏輸出GPIO_Init(GPIOE,&GPIO_InitStructure);}功參返回值voidDS18B20_IO_IN(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//GPIO_Init(GPIOE,&GPIO_InitStructure)}void{DS18B20_IO_OUT();//SETDS18B20_IO_OUT();//SE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《學(xué)前教育概述》課件
- 單位管理制度集合大合集【人力資源管理篇】十篇
- 單位管理制度分享匯編【員工管理篇】十篇
- 單位管理制度分享大全【人員管理篇】
- 單位管理制度范例選集【員工管理】
- 單位管理制度范例合集【人力資源管理篇】十篇
- 單位管理制度呈現(xiàn)合集【員工管理篇】
- 單位管理制度呈現(xiàn)大合集【人事管理】十篇
- 《微點精析》考向19 文化常識 高考語文一輪復(fù)習(xí)考點微專題訓(xùn)練(原卷+解析)
- 第4單元 民族團(tuán)結(jié)與祖國統(tǒng)一(B卷·能力提升練)(解析版)
- 手機(jī)大腦:讓人睡眠好、心情好、腦力好的戒手機(jī)指南
- 中考數(shù)學(xué)第一輪復(fù)習(xí)
- 一汽靖燁發(fā)動機(jī)有限公司安全文化知識手冊
- 湘賀水利樞紐水電站設(shè)計
- 高壓線防護(hù)架搭設(shè)施工方案
- 四川省成都市2021-2022學(xué)年高一(上)期末調(diào)研考試物理試題Word版含解析
- 二次元作業(yè)指導(dǎo)書
- GB/T 15180-2010重交通道路石油瀝青
- 公路工程質(zhì)量與安全管理課件
- 計算機(jī)基礎(chǔ)知識整理課件
- 高一數(shù)學(xué)必修2《事件的關(guān)系和運算》課件
評論
0/150
提交評論