STM32之RS232、AD、DAppt課件_第1頁(yè)
STM32之RS232、AD、DAppt課件_第2頁(yè)
STM32之RS232、AD、DAppt課件_第3頁(yè)
STM32之RS232、AD、DAppt課件_第4頁(yè)
STM32之RS232、AD、DAppt課件_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、STM32之RS232、AD、DA,謝軍華,信息科學(xué)技術(shù)學(xué)院,RS-232,RS-232是美國(guó)電子工業(yè)協(xié)會(huì)EIA(Electronic Industry Association)制定的一種串行物理接口標(biāo)準(zhǔn)。,RS-232C 對(duì)電器特性、邏 輯電平和各種信號(hào)線功能都 作了規(guī)定。 在TxD和RxD上: 邏輯1(MARK)=-3V-15V 邏輯0(SPACE)=+3+15V,RS-232,接口電平較高,與TTL電平不兼容,需使用電平轉(zhuǎn)換電路方能與TTL電路連接。,RS-232幀格式,異步串行通信的字符格式 異步串行通信以字符為單位,即一個(gè)字符一個(gè)字符地傳送 。,RS-232幀格式,對(duì)異步串行通信的字

2、符格式作如下說(shuō)明: (1)在這種格式標(biāo)準(zhǔn)中,信息的兩種狀態(tài)分別為 mark和 space標(biāo)志。其中“mark”譯為“標(biāo)號(hào)”,對(duì)應(yīng)邏輯“1”狀態(tài)。在發(fā)送器空閑時(shí),數(shù)據(jù)線應(yīng)保持在mark狀態(tài);“space”譯為“空格”,對(duì)應(yīng)邏輯“0”狀態(tài)。 (2)起始位。發(fā)送器是通過(guò)發(fā)送起始位而開(kāi)始一個(gè)字符的傳送。起始位使數(shù)據(jù)線處于“space”狀態(tài),RS-232幀格式,(3)數(shù)據(jù)位。起始位之后就傳送數(shù)據(jù)位。在數(shù)據(jù)位中, 低位在前(左),高位在后(右)。由于字符編碼方式 的不同,數(shù)據(jù)位可以是5、6、7或8位。 (4)奇偶校驗(yàn)位。用于對(duì)字符傳送作正確性檢查,因 此奇偶校驗(yàn)位是可選擇的,共有3種可能,即奇校驗(yàn)、 偶校

3、驗(yàn)和無(wú)校驗(yàn),由用戶(hù)根據(jù)需要選定。 (5)停止位。停止位在最后,用以標(biāo)志一個(gè)字符傳送 的結(jié)束,它對(duì)應(yīng)于mark狀態(tài)。停止位可能是1、1.5或2 位,在實(shí)際應(yīng)用中根據(jù)需要確定。,串行通信的傳送速率,串行通信的傳送速率:傳送速率用于說(shuō)明數(shù)據(jù) 傳送的快慢。在串行通信中,數(shù)據(jù)是按位進(jìn)行 傳送的,因此傳送速率用每秒鐘傳送格式位的 數(shù)目來(lái)表示,稱(chēng)之為波特率(band rate)。每 秒傳送一個(gè)格式位就是1波特。,1波特=1bps(位/秒),串行通信的傳送速率,串行通信可以使用的標(biāo)準(zhǔn)波特率在RS-232C標(biāo) 準(zhǔn)中已有規(guī)定。 RS-232-C標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸 速率為每秒 50、75、 100、150、300、

4、600、1 200、2400、4800、9600、19200、115200等波 特。 常用的有: 4800、9600、19200、115200波特。,RS-232編程方法,庫(kù)函數(shù): USART_DeInit函數(shù) USART_Init函數(shù) USART_StrucInit函數(shù) USART_Cmd函數(shù) USART_ITConfig函數(shù) USART_DMACmd函數(shù) USART_SetAddress函數(shù) USART_WakeUpConfig函數(shù) USART_ReceiverWakeUpCmd函數(shù) USART_LINBreakDetectionConfig函數(shù) USART_LINCmd函數(shù) USART_

5、SendData函數(shù),RS-232編程方法,庫(kù)函數(shù): USART_ReceiveData函數(shù) USART_SendBreak函數(shù) USART_SetGuardTime函數(shù) USART_SetPrescaler函數(shù) USART_SmartCardCmd函數(shù) USART_SmartCardNackCmd函數(shù) USART_HalfDuplexCmd函數(shù) USART_IrDAConfig函數(shù) USART_IrDACmd函數(shù) USART_GetFlagStatus函數(shù) USART_ClearFlag函數(shù) USART_GetITStatus函數(shù) USART_ClearITPendingBit函數(shù),RS-2

6、32編程示例,查詢(xún)方式向計(jì)算機(jī)發(fā)送與接 收數(shù)據(jù)。,2. System Clocks Configuration.,1.Private macro and Private variables.,3. Configure the GPIO ports.,4. USART1 configuration.,5. application program,DMA,DMA:(Direct Memory Access,直接內(nèi)存存取),DMA傳輸方式無(wú)需CPU直接控制傳輸, 也沒(méi)有中斷處理方式那樣保留現(xiàn)場(chǎng)和恢 復(fù)現(xiàn)場(chǎng)的過(guò)程,通過(guò)硬件為RAM與I/O設(shè) 備開(kāi)辟一條直接傳送數(shù)據(jù)的通路,使CPU 的效率大為提高。,D

7、MA配置,下面代碼是一個(gè)標(biāo)準(zhǔn)DMA設(shè)置,當(dāng)然實(shí)際應(yīng)用 中可根據(jù)實(shí)際情況進(jìn)行裁減:,DMA_DeInit(DMAx_Channely); 上面這句是給DMA配置通道,根據(jù)ST提供的資料, STM32F103中DMA包含2個(gè)DMA,一共12個(gè)通道 (DMA1(CH1CH7)、DMA2( CH1CH5 ), 也就是說(shuō)可以為外設(shè)或memory提供12座“橋梁”。,DMA配置,DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; 上面語(yǔ)句中的DMA_InitStructure是一個(gè)DMA結(jié)構(gòu)體, 在庫(kù)中有聲明了,當(dāng)然使用時(shí)就要先定義了;

8、DMA_PeripheralBaseAddr是該結(jié)構(gòu)體中一個(gè)數(shù)據(jù)成員, 給DMA一個(gè)起始地址,好比是一個(gè)buffer起始地址, ADC1_DR_Address是自己定義的一個(gè)地址變量;,DMA_InitStructure.DMA_MemoryBaseAddr = (u32)ADC_ConvertedValue; 上面這句很顯然是DMA要連接在Memory中變量的地址, ADC_ConvertedValue是我自己在memory中定義的一個(gè)變量;,DMA配置,DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; 上面的這句是設(shè)置DMA的傳輸方向,就

9、如前面我所說(shuō)的, DMA可以雙向傳輸,也可以單向傳輸,這里設(shè)置的是單向 傳輸,如果需要雙向傳輸:把DMA_DIR_PeripheralSRC改 成DMA_DIR_PeripheralDST即可。,DMA_InitStructure.DMA_BufferSize = 2; 上面的這句是設(shè)置DMA在傳輸時(shí)緩沖區(qū)的長(zhǎng)度, 前面有定義過(guò)了buffer的起始地址:ADC1_DR_Address , 為了安全性和可靠性,一般需要給buffer定義一個(gè)儲(chǔ)存片區(qū), 這個(gè)參數(shù)的單位有三種類(lèi)型:Byte、HalfWord、word,我設(shè) 置的2個(gè)half-word(見(jiàn)下面的設(shè)置);32位的MCU中1個(gè) half-

10、word占16 bits。,DMA配置,DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; 上面的這句是設(shè)置DMA的外設(shè)遞增模式,如果DMA選用的 通道(CHy)有多個(gè)外設(shè)連接,需要使用外設(shè)遞增模式: DMA_PeripheralInc_Enable;我的例子里DMA只與ADC1建 立了聯(lián)系,所以選用DMA_PeripheralInc_Disable。 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; 上面的這句是設(shè)置DMA的內(nèi)存遞增模式,DMA訪問(wèn)多個(gè)內(nèi)

11、 存參數(shù)時(shí),需要使用DMA_MemoryInc_Enable,當(dāng)DMA只 訪問(wèn)一個(gè)內(nèi)存參數(shù)時(shí),可設(shè)置成:DMA_MemoryInc_Disable。,DMA配置,DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; 上面的這句是設(shè)置DMA在訪問(wèn)時(shí)每次操作的數(shù)據(jù)長(zhǎng)度。 有三種數(shù)據(jù)長(zhǎng)度類(lèi)型,前面已經(jīng)講過(guò)了,這里不在敘述。 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; 與上面雷同。在此不再說(shuō)明。,DMA配置,DMA

12、_InitStructure.DMA_Mode = DMA_Mode_Circular; 上面的這句是設(shè)置DMA的傳輸模式:連續(xù)不斷的循環(huán)模式, 若只想訪問(wèn)一次后就不要訪問(wèn)了(或按指令操作來(lái)反問(wèn),也 就是想要它訪問(wèn)的時(shí)候就訪問(wèn),不要它訪問(wèn)的時(shí)候就停止), 可以設(shè)置成通用模式:DMA_Mode_Normal。 DMA_InitStructure.DMA_Priority = DMA_Priority_High; 上面的這句是設(shè)置DMA的優(yōu)先級(jí)別:可以分為4級(jí):VeryHigh, High,Medium,Low. DMA_InitStructure.DMA_M2M = DMA_M2M_Disabl

13、e; 上面的這句是設(shè)置DMA的2個(gè)memory中的變量互相訪問(wèn)的,DMA配置,DMA_Init(DMAx_Channely,至此,整個(gè)DMA總算設(shè)置好了,但是, DMA通道又是怎樣與外設(shè)聯(lián)系在一起 的呢?,DMA配置,要使DMA與外設(shè)建立有效連接,這不是DMA自身的事情, 是各個(gè)外設(shè)的事情,每個(gè)外設(shè)都有 一個(gè) xxx_DMACmd(XXXx,Enable )函數(shù),如果使DMA與ADC建 立有效聯(lián)系,就使用ADC_DMACmd(ADC1,Enable); (這 里我啟用了ADC中的ADC1模塊)。,ADC系統(tǒng)概述,STM32芯片內(nèi)部集成的12位ADC: 是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器。 具有18

14、個(gè)通道 可測(cè)量16個(gè)外部和2個(gè)內(nèi)部信號(hào)源。 ADC系統(tǒng)各通道的A/D轉(zhuǎn)換可以單 次、連續(xù)、掃描或間斷模式執(zhí)行。,ADC系統(tǒng)概述,STM32的ADC系統(tǒng)所用到的引腳,有如下幾個(gè): VREF+ VDDA VREF- VSSA ADC_IN15:0,ADC的編程方法,庫(kù)函數(shù): ADC_DeInit函數(shù) ADC_Init函數(shù) ADC_StructInit函數(shù) ADC_Cmd函數(shù) ADC_DMACmd函數(shù) ADC_ITConfig函數(shù) ADC_ResetCalibration函數(shù) ADC_GetResetCalibrationStatus函數(shù) ADC_StartCalibration函數(shù) ADC_Get

15、CalibrationStatus函數(shù) ADC_SoftwareStartConvCmd函數(shù),ADC的編程方法,庫(kù)函數(shù): ADC_GetSoftwareStartConvStatus函數(shù) ADC_DiscModeChannelCountConfig函數(shù) ADC_DiscModeCmd函數(shù) ADC_RegularChannelConfig函數(shù) ADC_ExternalTrigConvCmd函數(shù) ADC_GetConversionValue函數(shù) ADC_GetDualModeConversionValue函數(shù) ADC_AutoInjectedConvCmd函數(shù) ADC_InjectedDiscMo

16、deCmd函數(shù) ADC_ExternalTrigInjectedConvConfig函數(shù) ADC_ExternalTrigInjectedConvCmd函數(shù),ADC的編程方法,庫(kù)函數(shù): ADC_GetSoftwareStartConvStatus函數(shù) ADC_DiscModeChannelCountConfig函數(shù) ADC_DiscModeCmd函數(shù) ADC_RegularChannelConfig函數(shù) ADC_ExternalTrigConvCmd函數(shù) ADC_GetConversionValue函數(shù) ADC_GetDualModeConversionValue函數(shù) ADC_AutoInje

17、ctedConvCmd函數(shù) ADC_InjectedDiscModeCmd函數(shù) ADC_ExternalTrigInjectedConvConfig函數(shù) ADC_ExternalTrigInjectedConvCmd函數(shù),ADC的編程方法,庫(kù)函數(shù): ADC_SoftwareStartInjectedConvCmd函數(shù) ADC_GetSoftwareStartInjectedConvStatus函數(shù) ADC_InjectedChannelConfig函數(shù) ADC_InjectedSequencerLengthConfig函數(shù) ADC_SetInjectedOffset函數(shù) ADC_GetInje

18、ctedConversionValue函數(shù) ADC_AnalogWatchdogCmd函數(shù) ADC_AnalogWatchdogThresholdsConfig函數(shù) ADC_AnalogWatchdogSingleChannelConfig函數(shù) ADC_TempSensorVrefintCmd函數(shù) ADC_GetFlagStatus函數(shù) ADC_ClearFlag函數(shù) ADC_GetITStatus函數(shù) ADC_ClearITPendingBit函數(shù),ADC編程示例,1.Private macro and Private variables.,2. System Clocks Configuration.,3. Configure the GPIO ports.,4.PPP_configuration.,5. application program,連續(xù)采樣并將結(jié)果用串口發(fā)送給計(jì)算機(jī)。,DAC系統(tǒng)概述,數(shù)字/模擬轉(zhuǎn)換模塊(DAC)是12位數(shù)字輸入, 電壓輸出的數(shù)字/模擬轉(zhuǎn)換器。,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論