STM32F1 開發標準教程-習題及答案匯總 第1章 STM32開發平臺和工具-第17章 實驗16--ADC_第1頁
STM32F1 開發標準教程-習題及答案匯總 第1章 STM32開發平臺和工具-第17章 實驗16--ADC_第2頁
STM32F1 開發標準教程-習題及答案匯總 第1章 STM32開發平臺和工具-第17章 實驗16--ADC_第3頁
STM32F1 開發標準教程-習題及答案匯總 第1章 STM32開發平臺和工具-第17章 實驗16--ADC_第4頁
STM32F1 開發標準教程-習題及答案匯總 第1章 STM32開發平臺和工具-第17章 實驗16--ADC_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第1章STM32開發平臺和工具1.簡述STM32與ST公司和ARM公司的關系。STM32是基于ARM?Cortex?M3處理器內核的32位閃存微控制器,是一種包含與被包含的關系。STM32為MCU用戶開辟了一個全新的自由開發空間,并提供了各種易于上手的軟硬件輔助工具。STM32的內核是ARM推出的基于專為要求高性能、低成本、低功耗的嵌入式應用專門設計的ARMCortex-M3內核。STM32是ARM7架構中的一員。ARM是賣內核的,相當于賣CPU的Intel,ST是賣單片機的,相當于賣PC的HP或DELL。ARM是做核的,但自己不生產也不賣芯片,而是向芯片廠家授權;ST是他們的已經授權廠家,拿到授權后容,再做二次開發,像STM32F系列就是ARM的M3系列的芯片。但ST的產品不止商城ARM芯片,還有其他的芯片,像邏輯芯片,老式的單片機芯片。2.通信-下載模塊接口電路中使用了一個紅色LED(PWR)作為電源指示,請問如何通過萬用表檢測LED的正、負端?萬用表選擇電阻檔R,不大于100Ω萬用表紅黑兩線搭LED發光二極管兩級(可隨意搭)觀察萬用表是否有讀數。如果沒有讀數,調換紅黑兩線的搭線位置,有讀數后搭紅線端為正,黑線端為負,3.通信-下載模塊接口電路中的電阻(R9)有什么作用?該電阻阻值的選取標準是什么?R9電阻起到限流的作用,防止紅色LED被燒壞。4.電源轉換電路中的5V電源網絡能否使用3.3V電壓?請解釋原因。一般情況下,5V電源網絡不能直接用于3.3V電壓電路。主要原因是因為3.3V和5V之間存在電壓差異,以及電源網絡的電流傳輸能力。首先,3.3V電路需要的電壓級別是3.3V,如果直接使用5V電源,電壓過高可能會導致電路中的元件工作不正常甚至損壞。此外,3.3V電壓一般是嵌入式系統、微控制器等低功耗電子設備中常用的工作電壓,對電壓穩定性要求較高。其次,電源網絡的電流傳輸能力也是考慮的因素。如果3.3V電路的負載電流較大,而5V電源網絡的電流傳輸能力不足以滿足需求,那么3.3V電壓將會下降,導致電路無法正常工作。為了解決這個問題,可以使用適當的電壓降低器(如穩壓芯片)來降低5V電源來滿足3.3V電路的需求。這樣可以確保3.3V電壓穩定且適合電路要求。另外,還需要注意將電源和電路之間的地線連接好,以保證電路的正常工作和電壓的穩定性。5.電源轉換電路中,二極管(VD1)上的壓差為什么不是一個固定值?這個壓差的變化有什么規律?請結合SS210的數據手冊進行解釋。二極管上的壓差不是一個固定值,主要由于二極管的特性和工作條件的影響。首先,二極管的壓降與其正向偏置電流有關。正向偏置電流越大,二極管的壓降就越小,反之亦然。這是因為二極管在正向偏置下會產生一個導通通道,從而使電流流過,形成壓降。當正向偏置電流較小時,導通通道較窄,壓降較大;而正向偏置電流較大時,導通通道擴大,壓降較小。其次,溫度也會對二極管的壓降產生影響。溫度升高會導致導通通道的導電性增強,從而使壓降減小。這是因為隨著溫度的升高,二極管內部的載流子數量會增加,造成電流的導通更加容易,進而降低了壓降。對于SS210這款二極管,你可以參考其數據手冊,查找關于壓降特性的信息。數據手冊中通常會提供一張正向特性曲線圖,其中顯示了二極管正向壓降與正向電流之間的關系。通過觀察曲線,你可以了解到在不同正向偏置電流下,二極管上的壓降是如何變化的。此外,數據手冊還可能提供關于溫度對壓降的影響的信息,你可以查閱這些細節來更好地理解二極管壓降的變化規律。6.什么是低壓差線性穩壓電源?請結合AMS1117-3.3的數據手冊,簡述低壓差線性穩壓電源的特點。低壓差線性穩壓電源是一種用于提供.3V的輸出電壓,壓降僅為1.1V。2.穩定輸出電壓:AMS1117-3.3具有良好的線性調整特性,可以在輸入電壓變化的情況下保持輸出電壓的穩定性。它的輸出電壓精度為±2%。3.過熱保護:AMS1117-3.3內部集成了過熱保護功能,當芯片溫度達到一定值時會自動降低輸出電壓以保護芯片不被過熱損壞。4.過負載保護:這個芯片還具備過負載保護功能,當輸出電流超過其最大額定值時,會自動切斷輸出以保護芯片和外部電路的安全性。5.快速響應時間:AMS1117-3.3的響應時間很快,可以在輸入電壓變化時迅速調整輸出電壓,以保持穩定的輸出。總而言之,低壓差線性穩壓電源如AMS1117-3.3具有低壓差、穩定輸出、過熱保護、過負載保護和快速響應等特點,適用于需求穩定電源的電子設備。7.低壓差線性穩壓電源的輸入端和輸出端均有電容(C16、C17、C18),請問這些電容的作用是什么?輸入和輸出端都有電容的低壓差線性穩壓電源,這些電容起著以下作用:1.平滑輸入電流:輸入端的電容(C16)可以平滑電源輸入電流的波動,避免電源噪聲和干擾對電壓穩定性的影響。它能濾除輸入端電源線上的噪聲、干擾和高頻擾動,保持輸入電壓的穩定性。2.儲存能量:輸出端的電容(C17、C18)可以儲存能量,以滿足負載瞬時需求的特性。當負載突然變化或需要更大功率時,輸出端的電容可以通過放電提供額外的電流,以保持輸出電壓的穩定性。3.過濾輸出紋波:輸出端的電容(C17、C18)也有助于減小輸出紋波,使輸出電壓更為穩定。電容可以吸收和補償由于線路和負載變化引起的紋波信號,以保持輸出電壓的平穩性。總之,這些電容在低壓差線性穩壓電源中起到了平滑輸入電流、儲存能量和過濾輸出紋波的作用,以確保電源的穩定性和可靠性。8.電路板上的測試點有什么作用?哪些位置需要添加測試點?請舉例說明。測試點是電路板上專門用于連接測試設備的位置,用于檢測和驗證電路板的功能和性能。通過測試點,測試儀器可以接入電路板的各個關鍵節點,進行信號測量、電壓測量、電流測量、時序分析等測試操作。測試點通常需要在電路板設計階段就預留,并在布局布線過程中添加。一般來說,以下位置需要添加測試點:1.電源線和地線:為了測量電源電壓和電流,測試點需要放置在電源引腳處,以便測量電源電壓和電流的穩定性。2.輸入輸出端口:輸入輸出端口是電路板與外部連接的接口,測試點需要放置在輸入輸出端口的連接點處,以便驗證信號的正確性和穩定性。3.電源過濾電容器:測試點可以放置在電源過濾電容器的引腳處,以便測量電容器的電壓穩定性。4.關鍵信號節點:關鍵信號節點是電路板中重要的信號路徑,測試點需要放置在這些節點的連接點處,以便驗證信號的質量和時序。5.調試用信號:為了方便調試和故障排除,測試點可以放置在一些特定信號路徑上,用于監測信號波形和時序。舉例來說,如果設計一個音頻放大器電路板,測試點可以添加在以下位置:電源輸入端、音頻輸入端、音頻輸出端、放大器芯片引腳等位置。通過這些測試點,可以檢測電源電壓、音頻信號的輸入和輸出情況,以確保音頻放大器電路板的正常工作和性能達到要求。9.電源電路中的電感(L2)和電容(C19)有什么作用?二極管起整流作用,把交流電壓變成脈動直流電壓。電感起隔離交流電壓的作用,因負載對電源輸出電壓紋波要求較高,而開關管的輸出電流是方波,加電容后輸出電壓近似于三角波(自激式開關電源常利用此紋波電壓作信號源),故需用電感隔離(電阻也有近似效果,但效率太低,沒有實用意義),在電感后加電容即可得到質量較高的低紋波電壓源。電容起濾波作用,大幅度降低電源紋波,使輸出電壓變成較為平直的直流電壓。10.獨立按鍵電路中的電容有什么作用?單相電動機產生的是橢圓磁場,因為不是旋轉磁場,所以啟動時不轉。這時轉子需用手扳動半圈,或由啟動繞組加電容,使轉子轉過半圈開始切割磁力線,產生轉子電流才開始正常旋轉。還有運行電容電動機,電機啟動后,電容不斷開,他和啟動繞組參與運行,等于增加一臺小電動機的功率。11.獨立按鍵電路為什么要通過一個電阻連接3.3V電源網絡?為什么不直接連接3.3V電源網絡?獨立按鍵電路通常需要通過一個電阻連接到電源網絡,而不是直接連接到3.3V電源。這是因為電阻可以用來限制按鍵電流的流動,起到保護電路的作用。當按鍵被按下時,電流會通過按鍵電路流入電源網絡。通過添加一個適當的電阻,可以限制電流的大小,防止電流過大而損壞電路或電源。這種限流電阻的選擇要根據電路的特性和要求進行合理的設計。此外,電阻還可以起其他作用。例如,通過選擇適當的電阻值,可以防止按鍵被無意識地短路,造成電路的誤操作。電阻還可以用于防止電源網絡中的電流過載或電壓過高。因此,使用電阻連接獨立按鍵電路到電源網絡是為了保護電路、限制電流并提高系統的穩定性。第2章實驗1——F103基準工程1.為什么要對Keil進行軟件標準化設置?對Keil軟件進行標準化設置,比如將編碼格式改為ChineseGB2312(Simplified),這樣可以防止代碼文件中輸入的中文亂碼現象;將縮進的空格數設置為2個空格,同時將Tab鍵也設置為2個空格,這樣可以防止使用不同的編輯器閱讀代碼時出現代碼布局不整齊的現象。2.STM32核心板上的STM32芯片的型號是什么?該芯片的內部Flash和內部SRAM的大小分別是多少?核板上STM32芯片的型號是STM32F103RCT6,STM32核心板上的STM32F103RCT6芯片的內部Flash容量為256KB,芯片的內部SRAM容量為48KB。3.在創建STM32基準工程時,使用了兩個宏定義,分別是STM32F10XHD和USESTDPERIPHDRIVER,這兩個宏定義的作用是什么?STM32F10XHD和USESTDPERIPHDRIVER,一個宏定義表示使用在大容量的STM32芯片,第二個宏定義表示使用標準庫。4.在創建STM32基準工程時,為什么要勾選UseMicroLIB?為了方便調試,本書在很多地方都使用了printf語句,在Keil中使用printf,需要勾選UseMicroLIB5.在創建STM32基準工程時,為什么要勾選CreateHEXFile?Keil默認編譯時不生成.hex文件,如果需要生成.hex文件,則需要勾選CreateHEXFile6.通過查找資料,總結.hex、.bin和.axf文件的區別。axf文件、hex文件與bin文件都是可以運行在我們的stm32上的,它們都存儲了編譯器根據源代碼生成的機器碼,根據應用場合的不同,它們又有所區別。1axf文件:包含調試信息。2hex文件:包含地址信息。3bin文件:最直接的代碼映像。axf文件是編譯默認生成的文件,不僅包含代碼數據,而且還包含著調試信息,在MDK里進行debug調試用的就是這個文件。hex文件在MDK里要勾選如下選項才可以生成:hex文件是一種使用十六進制符號表示的代碼記錄,記錄了代碼應該存儲到FLASH的哪個地址,下載器可以根據這些信息輔助下載。bin文件是根據axf文件生成的,需要在MDK下添加類似如下格式命令來生成對應的bin文件:bin文件就是最小的可以運行的文件了,其包含最直接的代碼映像。這三個文件中axf文件最大,hex文件次之,bin文件最小。7.通過網絡下載并安裝STM32ST-LINKUtility軟件,嘗試通過ST-Link工具和STM32ST-LINKUtility軟件將.hex文件下載到STM32核心板。略第3章實驗2——串口電子鐘1.Proc2msTask函數的核心語句塊如何實現每2ms執行一次?Timer模塊的TIM2用于產生2ms標志,TIM5用于產生1s標志,Main模塊通過獲取和清除2ms、1s標志,實現Proc2msTask函數中的核心語句塊每2ms執行一次,Proc1SecTask函數中的核心語句塊每1s執行一次。2.Proc1SecTask函數的核心語句塊如何實現每秒執行一次?Timer模塊的TIM2用于產生2ms標志,TIM5用于產生1s標志,Main模塊通過獲取和清除2ms、1s標志,實現Proc2msTask函數中的核心語句塊每2ms執行一次,Proc1SecTask函數中的核心語句塊每1s執行一次。3.PauseClock函數如何實現電子鐘的運行和暫停?Main模塊調用RunClock模塊的PauseClock函數啟動時鐘運行,通過SetTimeVal函數設置初始時間值;Proc2msTask函數調用RunClock模塊的RunClockPer2Ms函數,實現RunClock模塊內部靜態變量siHour/siMin/siSec的計數功能,進而實現時鐘的運行;時間顯示是由RunClock模塊的DispTime函數調用printf語句輸出實現的,Proc1SecTask函數每秒調用一次DispTime函數。4.RunClockPer2Ms函數為什么要每2ms執行一次?RunClockPer2Ms函數的功能是以2ms為最小單位運行時鐘系統第4章實驗3——GPIO與流水燈1.簡述GPIO都有哪些工作模式。可以通過GPIO寄存器將STM32的GPIO配置成8種模式,這8種模式又分為4種輸入模式和4種輸出模式。4種輸入模式分別為輸入浮空、輸入上拉、輸入下拉和模擬輸入,4種輸出模式分別為開漏輸出、推挽式輸出、推挽式復用功能和開漏復用功能。2.GPIO都有哪些寄存器?CRL和CRH的功能是什么?每個GPIO端口有7個寄存器,本實驗涉及的GPIO寄存器包括2個32位端口配置寄存器(GPIOxCRL,GPIOxCRH)、1個32位端口輸出數據寄存器(GPIOxODR)、1個32位端口位設置/清除寄存器(GPIOxBSRR)、1個32位端口位清除寄存器(GPIOxBRR)。CRL和CRH用于控制GPIO端口的輸入/輸出模式及輸出速度,CRL用于控制GPIO端口(A~G)低8位的輸入輸出模式及輸出速度,CRH用于控制GPIO端口(A~G)高8位的輸入輸出模式及輸出速度。3.計算GPIOE→BRR的絕對地址。0E40011400+0E0C4.GPIOInit函數的作用是什么?該函數具體操作了哪些寄存器?GPIOInit函數的功能是設定A、B、C、D、E、F、G端口的任一個引腳的輸入/輸出的配置信息,通過向GPIOx→CRL或GPIOx→CRH寫入參數來實現,同時,該函數還可以按需要初始化STM32的I/O口狀態,通過向GPIOx→BRR或GPIOx→BSRR寫入參數來實現。具體描述如表4-8所示。5.如何通過RCC→APB2ENR使能GPIOA端口時鐘,且其他模塊時鐘狀態不變?RCCAPB2PeriphClockCmd函數的功能是打開或關閉APB2上相應外設的時鐘,通過向RCC→APB2ENR寫入參數來實現。6.如何通過固件庫函數使能GPIOD端口時鐘?GPIO固件庫函數包括GPIOInit、GPIOWriteBit和GPIOReadOutputDataBit,這3個函數在stm32f10xgpio.h文件中聲明,在stm32f10xgpio.c文件中實現。第5章實驗4——GPIO與獨立按鍵輸入1.GPIO的IDR的功能是什么?IDR是查看引腳電平狀態用的寄存器,ODR是引腳電平輸出的寄存器。2.計算GPIOC→IDR的絕對地址。0C0011400+0CC3.GPIOReadInputDataBit函數的作用是什么?該函數具體操作了哪些寄存器?GPIOReadInputDataBit函數的功能是讀取指定外設端口引腳的電平值,每次讀取一位,高電平為1,低電平為0,通過讀取GPIOx→IDR來實現。4.如何通過寄存器操作讀取PC4的電平?通過寄存器操作的方式,將PC4輸出設置為高電平,且GPIOC端口的其他引腳電平不變。temp=GPIOC->ODR;temp=(temp&0xFFFFFFEF)10x00000010;GPIOC->ODR=temp;5.如何通過固件庫操作讀取PC4的電平?(1)STM32核心板的LED1和LED2分別與STM32F103RCT6芯片的PC4和PC5相連接,因此需要通過RCCAPB2PeriphClockCmd函數使能GPIOC時鐘。該函數涉及APB2ENR的IOPCEN,IOPCEN用于使能GPIOC的時鐘,可參見圖4-13和表4-14。(2)通過GPIOInit函數將PC4和PC5配置為推挽輸出模式,并將兩個I/O的最大輸出速度配置為50MHz。該函數涉及GPIOxCRL、GPIOxBSRR和GPIOxBRR。GPIOxCRL用于配置輸入/輸出模式及I/O的最大輸出速度,可參見圖4-7、圖4-8、圖,4-11、圖4-12,以及表4-4、表4-6、表4-7。(3)通過GPIOWriteBit函數將PC4和PC5的默認電平分別設置為高電平和低電平。該函數也涉及GPIOxBSRR和GPIOxBRR,通過GPIOxBSRR設置高電平,通過GPIOxBRR設置低電平。6.在函數內部定義一個變量,加static與不加static關鍵字有什么區別?1、函數加上static,該函數就失去了全局可見性,只在該函數所在的文件作用域內可見;2、在類的成員函數前面加上static標識符,成員函數是屬于類的而非對象的。第6章實驗5——串口通信1.如何通過USARTCR1設置串口的奇偶校驗位?如何通過USARTCR1使能串口?向USART_CR1的TE寫入1,即可啟動數據發送,發送移位寄存器的數據會按照一幀數據格式(起始位+數據幀+可選的奇偶校驗位+停止位)通過TX引腳一位一位輸出,一幀數據的最后一位發送完成且TXE為1時,USART_SR的TC將由硬件置為1,表示數據傳輸完成,此時,如果USART_CR1的TCIE為1,則產生中斷。在發送過程中,除了發送完成(TC=1)可以產生中斷,發送寄存器為空(TXE=1)也可以產生中斷,即TDR中的數據被硬件轉移到發送移位寄存器時,TXE將被硬件置位,此時,如果USART_CR1的TXEE為1,則產生中斷。UART,EnableUARTTx函數用于使能串口發送static voidEnableUARTTx(void); //使能串口發送,在WriteUARTx中調用,每次發送數據之2.如何通過USARTCR2設置串口的停止位?STOP[1:0]用于設置停止位3.USARTDR包含兩個寄存器,分別是TDR和RDR,這兩個寄存器的作用分別是什么?一個給發送用(TDR),一個給接收用(RDR),因此該寄存器兼具讀和寫的功能。4.如果某一串口的波特率為9600,應該向USARTBRR寫什么?略5.串口的一幀數據發送完成后,USARTSR哪個位會發生變化?1:RTS中斷使能,只有接收緩沖區內有空余的空間時才請求下一個數據。當前數據發送完成后,發送操作就需要暫停下來。如果可以接收數據了,將nRTS輸出置為有效(拉至低電平)。6.為什么可以通過printf輸出調試信息?完成了fputc函數的實現之后,還需要在Keil集成開發環境中,勾選OptionsforTarget→Target→UseMicroLIB,這樣就相當于啟用了微庫(MicroLIB)。因此,我們不但要重寫fputc,還要啟用微庫,才能使用printf輸出調試信息。7.能否使用STM32的UART2輸出調試信息?如果可以,怎樣實現?STM32微控制器的集成開發環境,如Keil、IAR等也同樣支持標準庫函數,本書基于Keil集成開發環境,"實驗1F103基準工程"中已經涉及printf,并且printf輸出的內容通過UART1發送到計算機上的串口助手顯示。第7章實驗6——定時器1.如何通過TIMxCR1設置時鐘分頻系數、計數器計數方向?DIR用于設置計數器計數方向,CMS[1:0]用于選擇中央對齊模式,CKD[1:0]用于設置時鐘分頻系數2.如何通過TIMxCR1使能定時器?要通過TIMxCR1寄存器使能定時器,你可以按照以下步驟進行操作:1.首先,找到TIMx_CR1寄存器的地址,其中TIMx表示你想要使用的具體定時器,例如TIM1、TIM2等等。通常,這個地址是時器的基地址加上相應的偏移量。2.通過寫操作,將要設置的位設置為1以啟用定時器。根據TIMx_CR1寄存器的位配置,請確保只修改使能定時器的位,而不影響其他位的值。你可以使用位操作方法,例如按位或操作,來設置相應的位。3.等待定時器使能。在你設置TIMx_CR1寄存器后,你需要等待一定時間,以確保定時器完全啟動。3.如何通過TIMxDIER使能或除能更新中斷?如果TIMxDIER的CCxIE為1,則產生CCxI中斷4.如果某通用計數器設置為遞增計數,當產生溢出時,TIMxSR哪個位會發生變化?當TIM2遞增計數產生溢出時,UIF由硬件置為1,并產生更新中斷,執行TIM2IRQHandler函數。會執行TIM2IRQHandler函數。5.如何通過TIMxSR讀取更新中斷標志?當產生更新事件時該位由硬件置為1,由軟件清零。0:無更新事件產生;1:更新中斷等待響應。當寄存器被更新時該位由硬件置為1:若TIMxCR1的UDIS=0、URS=0,當TIMxEGR的UG=1時產生更新事件(軟件對計數器CNT重新初始化);若TIMxCR1的UDIS=0、URS=0,當計數器CNT被觸發事件重新初始化時產生更新事件6.TIMxCNT、TIMxPSC和TIMxARR的作用分別是什么?略第8章實驗7——SysTick1.簡述DelayNus函數產生延時的原理。微秒級的延時與毫秒級的延時實現不同,微秒級的延時是通過一個while循環語句內嵌一個for循環語句和一個siTimCnt變量遞減語句實現的,for循環語句和sTimCnt變量遞減語句執行時間大約是1us。參數nus一開始就賦值給sTimCnt變量,然后在while表達式中判斷siTimCnt變量是否為0,如果不為0,則執行for循環語句和siTimCnt變量遞減語句;否則,退出DelayNus函數。for循環語句執行完之后,sTimCnt變量執行一次減1操作,接著繼續判斷siTimCnt是否為0。如果nus為5,則可以實現5μs延時。2.DelayNus函數的時間計算精度受什么因素影響?DelayNus函數的時間計算精度受以下幾個因素影響:1.系統時間精度:計算機操作系統的時間精度對于計算時間延遲是很關鍵的。如果系統時間的精度較低,比如只精確到毫秒級別,那么計算時間延遲也將受到限制,無法達到亞毫秒級的精度。2.硬件性能:計算時間延遲的精度還取決于計算機硬件的性能。比如,處理器的時鐘頻率越高,單個指令執行的時間就越短,計算延遲的精度也就越高。3.代碼實現和算法復雜度:程序代碼的實現和算法的復雜度也會對計算時間延遲的精度產生影響。如果算法實現過于復雜,或者存在大量的循環和條件語句,那么計算時間延遲的精度可能會降低。綜上所述,DelayNus函數的時間計算精度受系統時間精度、硬件性能以及代碼實現和算法復雜度等因素的影響。3.STM32芯片中的通用定時器與SysTick定時器有什么區別?STM32芯片中的通用定時器和SysTick定時器是兩種不同類型的定時器。通用定時器是STM32芯片內置的多功能定時器,可以配置為不同的工作模式,如定時器、輸入捕獲或輸出比較等。可以通過編程設置定時器的時鐘源、預分頻系數和計數周期,以實現不同的定時功能。通用定時器具有更高的靈活性和功能,適用于更復雜的定時任務。SysTick定時器是一種簡單的定時器,專門為系統計時和任務調度而設計。它是一個基于內核的定時器,在STM32芯片上有固定的時鐘頻率,通常為CPU時鐘頻率的1/8或1/16。SysTick定時器具有內置的計數器和自動重載寄存器,并且可以用于生成中斷,以實現周期性的系統定時。總的來說,通用定時器適用于更復雜的定時需求,而SysTick定時器則是用于簡單的系統計時和任務調度。選擇使用哪種定時器取決于具體的需求和應用場景4.如何通過寄存器將SysTick時鐘頻率由72MHz更改為9MHz?要將SysTick時鐘頻率從72MHz更改為9MHz,需要針對系統時鐘進行相應的配置更改。以下是一種可能的方法:1.找到系統時鐘的源,通常是從主時鐘(主OSC)產生的。假設主OSC頻率為72MHz。2.定義一個要達到的目標頻率,即9MHz。3.計算需要的分頻因子。將主OSC頻率除以目標頻率,即:72MHz/9MHz=8。4.在芯片的寄存器中找到與SysTick相關的寄存器。通常,SysTick控制寄存器(SysTick_CTRL)和SysTick加載寄存器(SysTick_LOAD)是需要配置的。5.將SysTick控制寄存器的時鐘源(CLKSOURCE)位設置為0,以使用外部時鐘源(系統時鐘)。6.將SysTick加載寄存器的值設置為分頻因子減1。即如果分頻因子為8,則將加載寄存器設置為7。第9章實驗8——RCC1.什么是有源晶振,什么是無源晶振?1.無源晶振是有2個引腳的無極性元件,需要借助于時鐘電路才能產生振蕩信號,自身無法振蕩起來2.有源晶振有4只引腳,是一個完整的振蕩器,其中除了石英晶體外,還有晶體管和阻容元件主要看你應用到的電路,如果有時鐘電路,就用無源,否則就用有源無源晶體需要用DSP片內的振蕩器,無源晶體沒有電壓的問題,信號電平是可變的,也就是說是根據起振電路來決定的,同樣的晶體可以適用于多種電壓,可用于多種不同時鐘信號電壓要求的DSP,而且價格通常也較低,因此對于一般的應用如果條件許可建議用晶體,這尤其適合于產品線豐富批量大的生產者。有源晶振不需要DSP的內部振蕩器,信號質量好,比較穩定,而且連接方式相對簡單(主要是做好電源濾波,通常使用一個電容和電感構成的PI型濾波網絡,輸出端用一個小阻值的電阻過濾信號即可),不需要復雜的配置。電路有個點標記的為1腳,按逆時針(管腳向下)分別為2、3、4。有源晶振通常的用法:一腳懸空,二腳接地,三腳接輸出,四腳接電壓。相對于無源晶體,有源晶振的缺陷是其信號電平是固定的,需要選擇好合適輸出電平,靈活性較差,而且價格高。2.簡述RCC模塊中的各個時鐘源及其配置方法。RCC模塊中的主要時鐘源包括:1.HSI(High-SpeedInternal)時鐘:內部高速時鐘源,通常為16MHz,可通過相關寄存器配置。2.HSE(High-SpeedExternal)時鐘:外部高速時鐘源,可以通過從晶振或外部時鐘源引入。通過設置寄存器來配置HSE的頻率范圍和穩定性參數3.PLL(Phase-LockedLoop)時鐘:通過將HSI或HSE時鐘源與PLL倍頻器相連接,產生更高頻率的時鐘。PLL可以根據需要配置成不同的倍頻倍數,用于系統的主時鐘。配置這些時鐘源的方法如下:1.配置HSI時鐘:通過對RCC_CR寄存器中的HSION位進行設置或清除,來使能或禁用HSI時鐘。通過RCC_CFGR寄存器的相關位來配置HSI時鐘的分頻系數。2.配置HSE時鐘:通過對RCC_CR寄存器中的HSEON位進行設置或清除,來使能或禁用HSE時鐘。通過RCC_CR寄存器的HSEBYP位來選擇是否繞過HSE時鐘。通過RCC_CFGR寄存器的相關位來配置HSE時鐘的分頻系數。3.配置PLL時鐘:通過對RCC_PLLCFGR寄存器中的相關位進行設置,來配置PLL的輸入時鐘源(HSI或HSE)以及PLL的倍頻系數。通過RCC_CR寄存器中的PLLON位來使能或禁用PLL時鐘。在配置完時鐘源后,還需要對系統時鐘進行配置,將所需的時鐘源作為系統的主時鐘:1.配置系統時鐘源:通過RCC_CFGR寄存器的SW位來選擇所需的時鐘源,可以選擇HSI、HSE或PLL作為系統主時鐘。2.配置AHB、APB1和APB2的分頻系數:通過RCC_CFGR寄存器的相關位來配置這些總線的分頻系數,以使得它們能夠按照所需的頻率工作。3.簡述RCCDeInit函數功能。RCCDeInit函數的功能是將外設RCC寄存器重設為默認值,通過向RCC→CR、RCC→CFGR和RCC→CIR寫入參數來實現。4.在RCCGetSYSCLKSource函數中通過直接操作寄存器完成相同的功能。RCCGetSYSCLKSource函數的功能是返回用作系統時鐘的時鐘源,通過讀取RCC→CFGR來實現。5.本實驗為什么要通過FLASHSetLatency函數將時延設置為兩個等待狀態?通過FLASHSetLatency函數將時延設置為兩個等待狀態。該函數涉及FLASHACR的LATENCY[2:0],系統時鐘SYSCLK時鐘頻率在0~24MHz時,LATENCY[2:0]取值為000(零等待狀態);時鐘頻率在24~48MHz時,取值為001(一個等待狀態);時鐘頻率在48~72MHz時,取值為010(兩個等待狀態),可參見圖9-5和表9-20。第10章實驗9——外部中斷1.簡述什么是外部輸入中斷。外部中斷一般是由計算機外設發出的中斷請指求,如:鍵盤中斷、打印機中斷、定時器中斷等。外部中斷是可以屏蔽的中斷,也就是說,利用中斷控制器可以屏蔽這些外部設備的中斷請求。2.簡述外部中斷服務函數中斷標志位的作用,說明應該在什么時候清除中斷標志位,如果不清除中斷標志位會有什么后果。外部中斷服務函數中斷標志位用于標記是否發生了中斷事件,例如硬件中斷請求或軟件中斷請求。當中斷觸發時,中斷標志位會被置位,告知處理器發生了中斷事件。應該在中斷服務函數中清除中斷標志位。清除中斷標志位的目的是讓處理器能夠接受新的中斷請求。如果不清除中斷標志位,處理器會持續地處理之前觸發的中斷事件,無法接受新的中斷請求。如果不清除中斷標志位,會導致以下后果:1.處理器無法響應新的中斷請求,導致系統無法及時處理其他重要事件。2.在中斷服務函數中,如果發生了其他中斷,可能會引發嵌套中斷的問題,使系統陷入混亂狀態。3.若中標志位未清除且發生了循環中斷,則可能導致系統無法正常運行,甚至崩潰。因此,為了保證系統的穩定運行和處理器的響應能力,應及時清除中斷標志位。3.在本實驗中,假設有一個全局int型變量giCnt,該變量在TIM2中斷服務函數中執行乘9操作,而在KEY3按鍵按下的中斷服務函數中對giCnt執行加5操作。若某一時刻兩個中斷恰巧同時發生,且此時全局變量giCnt的值為20,則兩個中斷都結束后,全局變量giCnt的值應該是多少?略第11章實驗10——0LED顯示1.簡述OLED顯示原理。OLED顯示技術具有自發光的特性,采用非常薄的有機材料涂層和玻璃基板,當有電流通過時,有機材料就會發光。OLED顯示屏幕可視角度大,節省電能。另外,LCD需要背光源,而OLED不需要,因此,同樣的顯示,OLED效果要比LCD更好一些。2.簡述SSD1306芯片工作原理。SSD1306是一種常見的單色OLED(有機發光二極管)顯示驅動芯片,它用于驅動OLED顯示屏的像素。以下是SSD1306芯片的工作原理簡述:1.內部RAM:SSD1306芯片內部包一塊RAM,用于存儲顯示內容的像素數據。這塊RAM的尺寸與屏幕的分辨率相關,可以存儲每個像素的亮度信息。2.控制信號:SSD1306通過I2C或SPI接口與主控板連接,接收來自主控板的控制信號。3.顯示緩存:主控板需要將要顯示的內容寫入SSD1306的顯示緩存中,通過向SSD1306的RAM寫入對應的像素數據進行更新。4.顯示模式:SSD1306支持多種顯示模式,例如整個屏幕點亮、局部區域點亮、反色顯示等。主控板可以通過發送命令來設置不同的顯示模式。5.刷新顯示:一旦主控板完成了對顯示緩存的更新,它會向SSD1306芯片發送命令來刷新顯示。SSD1306會將顯示緩存中的像素數據傳輸到OLED屏幕上。總的來說,SSD1306芯片負責接收主控板發來的控制信號,并將像素數據存儲在內部RAM中,最后將其傳輸到OLED屏幕上以實現圖像的顯示。3.簡述SSD1306芯片控制OLED顯示原理。首先,配置OLED相關的GPIO,其次,將OLEDRES拉低10ms之后再將OLEDRES拉高,對SSD1306進行復位,接著,關閉顯示,配置SSD1306,配置完SSD1306之后再開啟顯示,并執行清屏操作,然后寫STM32上的GRAM,最后,將STM32上的GRAM更新到SSD1306上,這樣就完成了OLED的顯示。4.基于F103微控制器的OLED驅動的API函數包括InitOLED、OLEDDisplayOn、OLEDDisplayOff、OLEDRefreshGRAM、OLEDClear、OLEDShowNum、OLEDShowChar、OLEDShowString,簡述這些函數的功能。基于F103微控制器的OLED驅動的API函數包括:1.InitOLED:初始化OLED屏幕,設置通信接口和相關參數。2.OLEDDisplayOn:將OLED屏幕打開,使其顯示內容。3.OLEDDisplayOff:將OLED屏幕關閉,停止顯示內容。4.OLEDRefreshGRAM:刷新OLED屏幕的顯存,將新的圖像數據寫入到屏幕。5.OLEDClear:清除OLED屏幕上的所有內容,將屏幕恢復為初始狀態。6.OLEDShowNum:顯示一個數字到OLED屏幕,可以指定顯示的位置和字體大小。7.OLEDShowChar:顯示一個字符到OLED屏幕,可以指定顯示的位置和字體大小。8.OLEDShowString:顯示一個字符串到OLED屏幕,可以指定顯示的位置和字體大小。第12章實驗11——獨立看門狗1.簡述獨立看門狗的作用。看門狗(WDT)是一個定時器。看門狗是用來防止萬一單片機程序出錯造成重大損失的。防錯的原理很簡單,它在硬件上就是一個定時器,當它溢出的時候就會讓單片機強制復位使程序重新開始執行。正常的情況下是不能讓它溢出的,所以在程序上每隔一段時間要給他置一次值(俗稱喂狗),只要程序中正常給它喂他就不會溢出。一旦程序跑飛了,有干擾或者進入死循環之類的情況時,不能正常執行程序了,那么就永遠執行不到喂狗的指令了,但此時定時器是硬件控制的,仍然會走,所以溢出了,單片機就復位了。一般安全性要求比較高的,系統跑飛了會造成重大事故的都會加一個“狗”保安全。通常,看門狗的溢出時間越短越靈敏,跑飛之后復位的時間越短,也就越安全,但是,喂狗的操作也要更頻繁。2.簡述延時函數如何影響獨立看門狗的喂狗。延時函數可以對獨立看門狗的喂狗功能產生影響。獨立看門狗通常是一種硬件設備,用于監視系統的正常運行,并在系統出現故障或停止響應時采取適當的措施,例如重新啟動系統。獨立延時函數在獨立看門狗(watchdog)的喂狗過程中起到重要的作用。獨立看門狗是一種硬件計時器,用于檢測系統是否處于正常運行狀態。為了避免系統崩潰或死鎖,我們需要在特定時間間看門狗的喂狗機制是通過定期向獨立看門狗發送喂狗信號來避免系統進入無響應狀態。如果系統正常運行,延時函數的執行時間應小于獨立看門狗的喂狗時間間隔。也就是說,在一定的時間內,延時函數需要執行完畢,并且喂狗信號被正確發送,以保持獨立看門狗的活動狀態。否則,如果延時函數的執行時間超過了喂狗時間間隔,獨立看門狗會認為系統發生故障,并采取相應的措施,例如重啟系統。因此,隔內喂狗,也就是定期重置獨立看門狗計時器。延時函數的作用是在一段指定的時間內暫停程序的執行。在喂狗過程中,延時函數用于確保系統在規定的時間范圍內完成任務并執行重置獨立看門狗的操作。如果延時時間過長,可能會導致獨立看門狗認定系統出現故障,進而執行相應的保護機制。而如果延時時間過短,則可能無法完成系統中的重要任務,也會導致獨立看門狗觸發報警機制。因此,在編寫程序時,我們需要根據系統的要求和任務的復雜程度,合理設定延時函數的時間,以確保獨立看門狗能正常工作并提供系統保護。這樣一來,獨立看門狗可以持續監控系統的運行狀態,一旦檢測編寫延時函數時需要考慮獨立看門狗的喂狗時間間隔,并確保延時函數的執行時間不會超過該時間間隔,以保證系統正常工作并避免不必要的重啟。這可以通過合理設置延時函數的參數和調整代碼邏輯來實現。故障或異常,它將采取相應的措施,如重啟系統或觸發報警,以確保系統的穩定性和可靠性。3.嘗試通過寄存器實現獨立看門狗的配置。1.找到相關寄存器:首先,查閱芯片手冊,找到與獨立看門狗相關的寄存器。通常包括看門狗控制寄存器(IWDG_CR)和看門狗預分頻器寄存器(IWDG_PR)。2.配置預分頻器:獨立看門狗的預分頻器用于設置看門狗的溢出計數時間。根據你的需求,配置預分頻器寄存器(IWDG_PR)以設置適當的分頻系數。3.配置重裝載寄存器:重裝載寄存器(IWDG_RLR)用于設置看門狗的重裝載值,即看門狗的計數器在達到此值之前應被喂狗,否則會發生復位。通過寫入適當的值到重裝載寄存器,以根據你的需求設置看門狗的喂狗時間。4.喂狗:在執行主要任務的過程中,定時地喂狗。通過定期寫入固定值到看門狗關鍵字寄存器(IWDG_KR)的特定序列,實現喂狗操作。請確保在配置IWDG寄存器之前,先初始化并使能相關的時鐘,以及正確設置芯片的訪問權限。對于具體的寄存器地址和位字段的值,請參考芯片手冊。第13章實驗12——讀/寫內部Flash1.微控制器的內部Flash和內部SRAM有什么區別?1.性質不同Flash是由macromedia公司推出的交互式矢量圖和Web動畫的標準,由Adobe公司收購。SRAM是隨機存取存儲器的一種。2.中文名不同Flash中文名是固態存儲器與動畫編輯器,SRAM中文名是靜態隨機存取存儲器。3.用途不同Flash是一種動畫創作與應用程序開發于一身的創作軟件,AdobeFlashProfessionalCC為創建數字動畫、交互式Web站點、桌面應用程序以及手機應用程序開發提供了功能全面的創作和編輯環境。SRAM主要用于二級高速緩存(Level2Cache)。它利用晶體管來存儲數據。2.STM32采用的是大端存儲模式還是小端存儲模式?STM32采用的是小端模式,將較高的字節存放在較高的地址,較低的字節存放在較低的地址,簡單記憶為高放高,低放低為小水,而另外-種存放方式為人端模式,即高放低,低放高為大]。3.程序是存放在內部Flash還是內部SRAM中?程序可以存放在微控制器芯片的內部Flash或內部SRAM中,具體取決于程序的大小和執行的需求。內部Flash是一種非易失性存儲器,用于存儲程序代碼和常量數據。通常,較大的程序或需要長期保存的數據會存儲在內部Flash中。Flash存儲器的數據被擦除和編程,因此可以多次寫入。內部SRAM是一種易失性存儲器,用于存儲程序運行時使用的臨時變量和堆棧。SRAM速度快,但斷電后,其中的數據將被清除。通常,較小臨時數據和頻繁訪問的變量會存儲在內部SRAM中。選擇存放位置要根據需要進行評估。如果程序較大并且需要長期保存,通常會選擇內部Flash。如果程序需要頻繁地讀寫臨時數據或變量,并且速度很重要,那么內部SRAM可能更合適。有些情況下可能會同時使用兩者,將程序代碼存放在Flash中,而將需要頻繁讀寫的數據存放在SRAM中。4.使用寫內部Flash函數修改內存地址為0x08000000的內容會有什么后果?說明并解釋原因。更改內存地址為0x08000000的內容可能會導致嚴重的問題,并且可能會導致系統崩潰或不可預測的行為。這是因為0x08000000是專門用于存儲編譯后的程序代碼的區域,也被稱為Flash存儲器。Flash存儲器中存儲了程序的指令。這些指令是由開發者編寫的代碼,并在編譯后被存儲在Flash存儲器中。當系統啟動時,處理器會從Flash存儲器中讀取指令,并按照指令的順序執行相應的操作。如果你直接修改了0x08000000地址處的內容,會導致原本存儲在Flash中的指令被篡改或覆蓋。這將導致處理器無法正確獲取或執行原始指令,從而導致系統運行異常或崩潰。此外,Flash存儲器通常具有特殊的訪問權限和保護機制,以防止未經授權的修改。如果嘗試直接修改Flash存儲器的內容,系統可能會拒絕訪問或觸發保護機制,從而導致修改操作失敗。5.簡述Flash.c的內部靜態函數STM32FlashWriteWord進行內部Flash寫操作的流程。Flash.c中的內部靜態函數STM32FlashWriteWord是用于進行內部Flash寫操作的函數。下面是其大致流程:1.首先,函數會調用內部靜態函數STM32FlashUnlock()對Flash解鎖,即解除Flash的寫保護。2.然后,函數會調用內部靜態函數STM32FlashClearStatusFlags()來清除Flash的狀態標志。3.接下來,函數會調用內部靜態函數STM32FlashSetProgramming()來設置Flash編程模式。4.然后,函數會將待寫入的數據轉換為字大小,因為Flash只能按字(32位)進行寫入。5.函數會利用STM32的內部函數HAL_FLASH_Program()來將轉換后的數據寫入到Flash的指定地址。6.最后,函數會調用內部靜態函數STM32FlashLock()來鎖定Flash,重新啟用Flash的寫保護。第14章實驗13——PWM輸出1.在SetPWM函數中通過直接操作寄存器完成相同的功能。當我們在編寫程序時,可以使用特定的函數來設置PWM(脈沖寬度調制)輸出。這些函數通常由硬件廠商提供,并通過操作特定的寄存器來實現。如果要通過直接操作寄存器實現相同的功能,首先需要了解在一些嵌入式系統開發中,可以通過直接操作寄存器來完成某些功能,包括設置PWM(脈沖寬度調制)的功能。這種方法一般需要了解硬件的寄存器映射及其用法。具體而言,在一些芯片或微控你使用的具體硬件平臺和寄存器的映射方式。2.通用定時器有哪些計數模式?可以通過哪些寄存器配置這些計數模式?通用定時器有四種計數模式:A、停止/保持吧、模式(TxCON.TMODE1~TMODE0=00)B、連續增計數模式(TxCON.TMODE1~TMODE0=01)C、定向增/減計數模式(有外部引腳決定,xCON.TMODE1~TMODE0=11D、連續增減計數模式(TxCON.TMODE1~TMODE0=10)通過定時器控制寄存器TxCON的12~11位決定,3.根據本實驗中的配置參數,計算PWM輸出實驗輸出方波的周期,與示波器中測量的周期進行對比。根據您提供的信息,我們可以使用以下配置參數計算PWM輸出方波的周期:1.確定輸入信號的周期(單位:秒)。2.計算PWM的占空比(運行時間與周期的比值)。3.使用PWM的占空比乘以輸入信號的周期,計算PWM輸出方波的周期。例如,假設輸入信號的周期為0.1秒,PWM的占空比為50%,則計算PWM輸出方波的周期:PWM輸出方波的周期=輸入信號周期×PWM的占空比=0.1秒×0.5=0.05秒4.STM32F103RCT6芯片還有哪些引腳可以用作PWM輸出?STM32F103RCT6芯片具有多個引腳可以用作PWM輸出。以下是一些常用的引腳:1.PA0-PA7:GPIOA的引腳0到7可以用作PWM輸出。2.PB0-PB7:GPIOB的引腳0到7可以用作PWM輸出3.PC0-PC7:GPIOC的引腳0到7可以用作PWM輸出。4.PD12-PD15:GPIOD的引腳12到15可以用作PWM輸出。5.PE5-PE15:GPIOE的引腳5到15可以用作PWM輸出。這只是一些常見的引腳,實際上,STM32F103芯片有多個引腳可以用作PWM輸出。第15章實驗14——輸入捕獲1.本實驗如何通過設置下降沿和上升沿捕獲,計算按鍵按下時長?當siCaptureSts的bit6為1,表示前一次已經捕獲到下降沿,那么這次就表示捕獲到上升沿,因此,將siCaptureSts的bit7置為1,同時,通過TIMGetCapture1函數讀取TIM5CCR1的值,并將該值賦給siCaptureVal。最后,再通過TIMOC1PolarityConfig函數將TIM5的CH1設置為下降沿觸發,為下一次捕獲KEY3按下做準備。否則,如果siCaptureSts的bit6為0,表示前一次未捕獲到下降沿,那么這次就是第一次捕獲到下降沿,因此,將siCaptureSts和siCaptureVal均清零,并通過TIMSetCounter函數將TIM5的計數器清零,同時,將siCaptureSts的bit6置為1,標記已經捕獲到了下降沿。最后,再通過TIMOC1PolarityConfig函數將TIM5的CH1設置為上升沿觸發,為下一次捕獲KEY3松開做準備。2.計算本實驗的低電平最大捕獲時長。略3.在TIMGetCapture1函數中通過直接操作寄存器完成相同的功能。在使用函數TIM_GetCapture1時,通過直接操作寄存器完成相同的功能是可能的。當直接操作寄存器時,你需要了解寄存器的地址和相關的位域(bitfield)信息。這個過程可能會因硬件平臺和編程環境的不同而有所差異。首先,你需要查閱芯片廠商提供的文檔,以便了解到與TIM_GetCapture1函數相對應的寄存器是哪個,以及如何設置和讀取其中的值。可能的資源包括芯片的參考手冊、數據手冊或編程手冊。一旦你了解到了寄存器的地址和需要操作的位域信息,你可以使用合適的寄存器訪問方法來讀取或寫入對應的寄存器。這通常包括以下幾個步驟:1.確定寄存器的地址。寄存器地址通常是一個十六進制值,可以通過參考文檔獲得。2.寫入或讀取寄存器的值。你可以使用編程環境提供的相應的寄存器操作函數或者直接訪問內存地址的方式來實現。3.對寄存器值進行位操作。根據,你可以設置或清除特定的位,或者以其他方式修改寄存器的值。4.如何通過TIMITConfig函數使能TIM5的更新中斷和捕獲1中斷?這兩個中斷與TIM5IRQHandler函數之間有什么關系?要通過TIMITConfig函數使能TIM5的更新中斷和捕獲1中斷,可以使用以下代碼:```TIM_ITConfig(TIM5,TIM_IT_Update|TIM_IT_CC1,ENABLE);```這將使能TIM5的更新中斷和捕獲1中斷。TIM_IT_Update表示更新中斷,TIM_IT_CC1表示捕獲1中斷。第一個參數TIM5表示要配置的定時器。關于TIM5IRQHandler函數和這兩個中斷之間的關系,IRQHandler函數是用來處理中斷的回調函數。當發生更新中斷或者捕獲1中斷時,系統會自動調TIM5IRQHandler函數進行處理。你需要在TIM5IRQHandler函數中編寫相應的中斷處理代碼,以實現你需要的功能。也就是說,當發生更新中斷時,TIM5IRQHandler函數會被調用來處理更新中斷相關的操作;當發生捕獲1中斷時,TIM5IRQHandler函數會被調用來處理捕獲1中斷相關的操作。第16章實驗15——DAC1.簡述本實驗中DAC的工作原理。DAC(數字模擬轉換器)是一種電子設備,用于將數字信號轉換為模擬信號。它在許多應用中起到重要的作用,包括音頻設備、通信系統和控制系統等。DAC的工作原理如下:1.量化:在這一步中,DAC使用一個參考電壓來測量抽樣和保持的電壓,并將其轉換為與輸入數字表示相對應的模擬信號。此過程可以通過幾種不同的方法實現

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論