




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一、GP10 口的配置STM32的DGPI0 口最多可以有 7組(GPI0aGPlOg ),而每一組 GPIO 口均有16個(gè) 雙向10組成。并且沒(méi)個(gè)10 口均可配置成8種模式(4種輸入模式,4種輸出模式)。不管 配置哪個(gè)10 口也不論將其配置成哪種模式(但是配置成哪種模式要看具體應(yīng)用,參考中 文參考手冊(cè)第105頁(yè))都可以按以下步驟來(lái)進(jìn)行配置:(1)使能 P0RTX(x=AG )時(shí)鐘這里就得操作寄存器 RCC_APB2ENR ( 32為寄存器)了15141312111098ADC3ENUSART1ENTIM8ENSPI1ENTIM1ENADC2ENADC1ENlOP GEN76543210QP
2、FENOP EENOP DENlOP CENlOP BENlOP AEN保留AFIOENRCC_APB2ENR 的 0-15 位(0632 位保留)第28分別是使能GPI0AGPIOG時(shí)鐘的,只要將其置“ 1 ”即可,如RCC_APB2ENR|=1CRL&=OXFFFFFOFF ; GPIOD-CRL|=0X00000300 ; /PD.2 推挽輸出;其余 10 口的 低8位以此類(lèi)推。3130292827262524CNF151:0MODE151:0CNF141:0MODE141:02322212019181716CNF131:0MODE131:0CNF121:0MODE121:0151413
3、12111098CNF111:0MODE111:0CNF101:0M0DE101:076543210CNF91:0MODE91:0CNF81:0MODE81:0GPIOx_CRH(端口配置高寄存器 x=AE)該寄存器用于配置 GPIOx的高8位,具體8種模式的配置見(jiàn)中文參考手冊(cè)例如:GPIOA-CRH&=0XFFFFFFF0; ; GPl0A-CRH|=0X00000003 ; /PA8 推挽輸出;其余 10 口 的高8位以此類(lèi)推。15141312111098DR15IDR14IDR13IDR12IDR11IDR10IDR9IDR876543210DR7IDR6IDR5IDR4IDR3IDR2
4、IDR1IDR0(3)端口的輸入和輸出電平配置15141312111098ODR15ODR14ODR13ODR12ODR11ODR10ODR9ODR876543210ODR7ODR6ODR5ODR4ODR3ODR2ODR1ODR0GPIOx_IDR (端口輸入數(shù)據(jù)寄存器 x=AE) 該寄存器配置IO 口的015位的輸入數(shù)據(jù),以16位讀出。GPIOx_ODR (端口輸出數(shù)據(jù)寄存器 x=AE)該寄存器配置IO 口的015位的輸入初始狀態(tài), 例如:GPIOA-ODR|=1APB2ENR|=1CRL&=0XFFFFFFF0;/ PA0 設(shè)置成輸入GPI OA-CRL|=0X00000008;GP IO
5、A-CR H&=0X0F0FFFFF;/ PA13,15 設(shè)置成輸入GPI OA-CRH|=0X80800000;GPI OA-ODR|=1ODR|=1A PB2ENR|=1A PB2ENR|=1CR H&=0XFFFFFFF0;GPI OA-CRH|=0X00000003;/ PA8GPI OA-ODR|=1CRL&=0XFFFFF0FF;GPIO D-CRL|=0X00000300;/ PD.2GPIO D-ODR|=12;/P D.2推挽輸出輸出高15141312111098ADC3RSTUSART1RST1M8RSTSP I1RSTTIM1RSTADC2RSTADC1RSTIOP GR
6、ST76543210IOP FRSTIOP ERSTIOP DRSTIOP CRSTIOP BRSTIOP ARST保留AFIORSTRCC_APB2RSTR ( APB2外設(shè)復(fù)位寄存器)寄存器 RCC_APB2RSTR的第14位是進(jìn)行串口 1的復(fù)位如:RCC_APB1RSTR|=114; /將 串口 1復(fù)位,然后結(jié)束復(fù)位 RCC_A PB1RSTR|= ( 114); 結(jié)束串口 1復(fù)位其余串口復(fù)位在寄存器RCC APB1RSTR里如下表:RCC_APB1RSTR (串口 1的復(fù)位)和寄存器這兩個(gè)寄存器如下表二、串口通信STM32最多可以提供5路串口,其串口配置主要有以下步驟: (1)串口時(shí)鐘
7、使能15141312111098ADC3ENUSART1ENTIM8ENSPI1ENTIM1ENADC2ENADC1ENIOP GEN76543210QP FENOP EENIOP DENIOP CENIOP BENIOP AEN保留AFIOEN3130292827262524保留DACENP WRENBKPEN保留CANEN保留2322212019181716USBENI2C2ENI2C1ENUART5ENUART4ENUART3ENUART2EN保留15141312111098SPI3ENSP I2EN保留WWDGEN保留76543210保留TIM7ENTIM6ENTIM5ENTIM4EN
8、TIM3ENTIM2ENRCC_APB2ENR 的 0-15 位(1632 位保留)在寄存器RCC_APB2ENR里的第14位就是對(duì)串口 1的時(shí)鐘使能即:RCC_A PB2ENR|=114; 使能串口 1時(shí)鐘,那么除串口 1的時(shí)鐘使能在 RCC_A PB2ENR 外其余的時(shí)鐘使能位在寄存器RCC APB1ENR里,看下表:RCC_AP B1ENR例如:RCC_APB1ENR|=117; /使能串口 2時(shí)鐘,其余串口時(shí)鐘使能以此類(lèi)推。(2)串口復(fù)位即結(jié)束復(fù)位STM32在使用串口時(shí)不管當(dāng)前該串口出于什么狀態(tài)都先要將其復(fù)位,而復(fù)位后要將其 結(jié)束復(fù)位。串口復(fù)位主要在寄存器RCC_A PB2RSTR (
9、其余串口復(fù)位3130292827262524保留DACRSTP WRRSTBKPRST保留CANRST保留2322212019181716USBRSTI2C2RSTI2C1RSTUART5RSIUART4RSUART3RSIUART2RS保留15141312111098SPI3RSTSPI2RST保留WWDGRS保留76543210保留TIM7RSTTIM6RSTTIM5RSTTIM4RSTTIM3RSTTIM2TST151413|1211109|8DIV Ma ntissa11:476|5|432 1|0DIV Ma ntissa3:0DIV Fractio n3:0如:口 2復(fù)位(3)RC
10、C_A PB1RSTR (APB1外設(shè)復(fù)位寄存器)RCC_APB1RSTR|=117; / 復(fù)位串口 2RCC_APB1RSTR|=(1CR1|=0X200C;/1 位停止,無(wú)校驗(yàn)位.0X200C=0010 0000 0000 1100B設(shè)置成使能串口 8個(gè)字長(zhǎng)1個(gè)停止位(USART_CR2中13:12默認(rèn)為“ 0”禁止校驗(yàn),禁止 校驗(yàn)所有中斷,使能發(fā)送和接收。(5 )數(shù)據(jù)發(fā)送和接收15114II 13丨 12 111 10198保留DR87654321 10DR7:0USART_DR(數(shù)據(jù)寄存器)發(fā)送數(shù)據(jù)緩存寄存器(向它寫(xiě)數(shù)據(jù)它會(huì)自動(dòng)發(fā)送數(shù)據(jù)),當(dāng)接收到數(shù)據(jù)時(shí)則存放接收的數(shù)據(jù)(6 )串口控制
11、1511141113121 111 1098保留CTSLBD76543210TXETCRXNELDLEORENEFEPEUSART SR參考程序:void uart_i nit(u32 p clk2,u32 bou nd) float temp;u16 man tissa;u16 fractio n;temp=(float)(pclk2*1000000)/(bound*16);/ 得到 USARTDIV man tissa=tem p;得到整數(shù)部分fraction=(temp-mantissa)*16; / 得到小數(shù)部分man tissaA PB2ENR|=1A PB2ENR|=1CR H&=
12、0XFFFFF00F;GPIO A-CRH|=0X000008B0;/IO 狀態(tài)設(shè)置RCC-A PB2RSTR|=1A PB2RSTR&=(1BRR=ma ntissa; / 波特率設(shè)置/1位停止,無(wú)校驗(yàn)位./如果使能了接收/PE中斷使能/接收緩沖區(qū)非空中斷使能USART1-CR1|=0X200C;#ifdef EN_USART1_RX/使能接收中斷USART1-CR1|=1CR1|=1SR&(1DR;if(USART_RX_STA&0x80)=0)/ 接收未完成 if(USART_RX_STA&0 x40)/ 接收到了 0x0dif(res!=0x0a)USART_RX_STA=0;/ 接收
13、錯(cuò)誤,重新開(kāi)始 else USART_RX_STA|=0x80;/ 接收完成了else /還沒(méi)收到0X0Dif(res=0x0d)USART_RX_STA|=0x40;else USART_RX_BUFUSART_RX_STA&0 X3F=res;USART_RX_STA+;if(USART_RX_STA63)USART_RX_STA=0;/ 接收數(shù)據(jù)錯(cuò)誤,重新開(kāi)始接收以上兩個(gè)函數(shù)已經(jīng)封裝在usart.c中可直接調(diào)用三、外部中斷STM32的每一個(gè)IO 口都可以作為中斷輸入, 要想把IO 口作為中斷輸入則必須將IO 口設(shè)置成上拉/下拉輸入或浮空輸入(設(shè)置成浮空輸入時(shí)要接上拉或下拉電阻否則可能導(dǎo)致
14、中 斷不斷觸發(fā))。下面總結(jié)一下設(shè)置IO 口為外部中斷時(shí)的步驟:(1)將IO 口設(shè)置成輸入模式這個(gè)在第一章總結(jié)過(guò),這里不多說(shuō)。(2)開(kāi)啟IO 口復(fù)用時(shí)鐘,設(shè)置IO 口與中斷線的映射關(guān)系這一步在函數(shù) void Ex_NVIC_Co nfig(u8 GP IOx,u8 BITx,u8 TRIM)中已經(jīng)封裝好可直接調(diào)用這里說(shuō)一下IO 口的復(fù)用時(shí)鐘使能1098ADC3ENUSART1ENTIM8ENSPI1ENTIM1ENADC2ENADC1ENlOP GEN76543210OP FENOP EENlOP DENlOP CENlOP BENlOP AEN保留AFIOENRCC_
15、APB2ENRRCC_APB2ENR|=0X01;/使能 10 口復(fù)用時(shí)鐘(3) 開(kāi)啟與該IO 口相對(duì)應(yīng)的線上中斷/事件,并設(shè)置觸發(fā)條件這一步封裝在函數(shù) void Ex_NVIC_Co nfig(u8 GPI Ox,u8 BITx,u8 TRIM)中,可以直接調(diào)用,例如:Ex_NVIC_Config(GPIO_A,0,RTIR); / 設(shè)置 PA(0)上升沿觸發(fā)Ex_NVIC_Config(GPIO_A,13,FTIR);/ 設(shè)置 PA( 13)下降沿觸發(fā)(4) 配置中斷分組(NVIC )并使能中斷這一步封裝在函數(shù) void MY_NVIC_I ni t(u8 NVIC_ Preemp tio
16、 nP riority,u8 NVIC_Sub Priority,u8 NVIC_Cha nn el,u8 NVIC_Grou p) 里面可以直接調(diào)用,例如:MY_NVIC_Init(2,2,EXTI0_IRQChannel,2);搶占 2,子優(yōu)先級(jí) 2,組 2為 LineOLine4這里值得注意的是 EXTI0、EXTI1、EXTI2、EXTI3、EXTI4EXTI15_10 為 Line15Line10EXTI9_5 為 Line9Line5(5) 編寫(xiě)中斷服務(wù)函數(shù)例如: void EXTI15_10_IRQHa ndler(void)delay_ms(10);/ 消抖if(KEY0=0)
17、按鍵LED0=!LED0;else if(KEY1=0)/ 按鍵/清除 LINE13/清除 LINE15上的中斷標(biāo)志位上的中斷標(biāo)志位LED仁!LED1;EXTI- PR=1 PR=1A PB1ENR|=1APB1ENR|=1APB1ENR|=1APB1ENR|=0X01 ; /使能 TIME2 的時(shí)鐘使能;(RCC-APB1ENR|=1DIER|=1DIER|=1CR1|=0x01;/使能定時(shí)器 315114111312111098保留CC4OFCC3OFCC2OFCC1OF保留76543210BIFTIFCOMIFCC4IFCC3IFCC2IFCC1IFUIFTIMx_SR 該寄存器用來(lái)標(biāo)記
18、當(dāng)前預(yù)定時(shí)器相關(guān)的各種事件UIF :更新中斷標(biāo)記,當(dāng)產(chǎn)生更新事件時(shí)該位由硬件置 例如:if(TIM3-SR&0X0001)/ 溢出中斷(5) TIM3中斷分組設(shè)置例如:MY_NVIC_I ni t(1,3,TIM3_IRQCha nn el,2);/搶占直接調(diào)用該函數(shù)就行(6) 編寫(xiě)中斷服務(wù)程序例如:void TIM3_IRQHa ndler(void)/中斷是否發(fā)生。11,子優(yōu)先級(jí)3,組2參考程丿予:if(TIM3-SR&0X0001)/ 溢出中斷 LED仁!LED1;TIM3-SR&=(1A PB1ENR|=1ARR=arr;時(shí)鐘使能/設(shè)定計(jì)數(shù)器自動(dòng)重裝值 剛好1msTIM3-PSC=ps
19、c;預(yù)分頻器7200,得到10Khz的計(jì)數(shù)時(shí)鐘/允許更新中斷 /允許觸發(fā)中斷/使能定時(shí)器3這兩個(gè)東東要同時(shí)設(shè)置才可以使用中斷TIM3-DIER|=1DIER|=1CR1|=0x01;MY_NVIC_Init(1,3,TIM3_IRQChannel,2);/搶占 1,子優(yōu)先級(jí) 3,組 2TIMx_ARR確定頻率和由寄存器TIME2的CH2模式2的PWM輸出:15141312111098OC2CEOC2M2:0OC2 PEOC2FEIC2F3:0IC2 PSC1:0CC2S1:0765 143210OC1CEOC1M2:0OC1 PE OC1FEIC1F3:0IC1 PSC1:0CC1S1:0脈沖
20、寬度調(diào)制模式可以產(chǎn)生一個(gè)由寄存器TIMx_CCRx確定其占空比的 PWM波形; 使能定時(shí)器:RCC-APB1ENR|=1CCMR1|=7vv12;/選擇 PWM 模式 2使能預(yù)裝載寄存器:必須設(shè)置TIMx_CCMRx寄存器OCX PE位以使能相應(yīng)的預(yù)裝載寄存器;15141312111098OC2CEOC2M2:0OC2 PEOC2FEIC2F3:0IC2 PSC1:0CC2S1:076543210OC1CEOC1M2:0OC1 PE OC1FEIC1F3:0IC1 PSC1:0CC1S1:0TIMx_CCMR1(捕獲/比較模式寄存器1)TIM2-CCMR1|=1VV11;/使能預(yù)裝載寄存器使能
21、自動(dòng)重裝載的預(yù)裝載寄存器:最后還要設(shè)置TIMx_CR1寄存器的ARPE位,(在向上計(jì)數(shù)或中心對(duì)稱(chēng)模式中)使能自動(dòng)重裝載的預(yù)裝載寄存器;1514丨131 12 11 11109 11 8保留CKD1:076 1543210ARPECMS1:0DIROPMURSUDISCENTIMx_CR1TIMx_CR1|=lvv7;/使能自動(dòng)裝載的預(yù)分頻寄存器設(shè)置極性:OCX的極性可以通過(guò)軟件在 TIMx_CCER寄存器中的CCxP位設(shè)置,它可以 設(shè)置為高電平有效或低電平有效。TIMx_CCER寄存器中的CCxE位控制OCx輸出使能;151413 11 121111098保留CC4 PCC4E保留CC3 PC
22、C3E71 6543210保留CC2 PCC2E保留CC1PCC1ETIMx_CCER(捕獲/比較使能寄存器) TIM2-CCER&=0X03; TIM2-CCMR|=1vv4;/ /設(shè)置極性并輸出時(shí)能void Timerx2_I nit(u16 arr,u16 psc)RCC-APB1ENR|=1ARR=arr;/設(shè)定計(jì)數(shù)器自動(dòng)重裝值TIM3-PSC=psc;/預(yù)分頻器不分頻/選擇PWM模式2/使能預(yù)裝載寄存器/使能自動(dòng)裝載的預(yù)分頻寄存器/使能定時(shí)器TIM2-CCMR1|=7CCMR1|=1CR1|=1CR1|=1CCER=0X3303;TIM2-CCER|=1A PB1ENR|=1CRL&
23、=0X0FFFFFFF;/ PA7 輸出GPIOA-CRL|=0XB0000000;/ 復(fù)用功能輸出GPI OA-ODR|=1ARR=arr;/設(shè)定計(jì)數(shù)器自動(dòng)重裝值TIM3-PSC=psc;/預(yù)分頻器不分頻 TIM3-CCMR1|=7CCMR1|=1CCER|=1CR1=0x8000;TIM3-CR1|=0x01;其余幾個(gè)定時(shí)器的 PWM輸出寄存器配置依次類(lèi)推。獲計(jì)數(shù)器的值到TIM1_CCR1寄存器中,步以下例子說(shuō)明如何在TI1輸入的上升沿時(shí)捕 驟如下:1使能TIM1時(shí)鐘:15141312111098ADC3ENUSART1ENTIM8ENSPI1ENTIM1ENADC2ENADC1ENIOP
24、 GEN76543210OP FENOP EENIOP DENIOP CENIOP BENIOP AEN保留AFIOENRCC_APB2ENR 的 0-15 位(0632 位保留)RCC-APB2ENR|=1CCMR 1 =0X01;/CC1通道選擇輸入,IC1映射在TI1上3、根據(jù)輸入信號(hào)的特點(diǎn),配置輸入濾波器為所需的帶寬(輸入為T(mén)I1時(shí)TIM1_CCMRx寄存器中的ICxF位)。假設(shè)輸入信號(hào)在最多 5個(gè)時(shí)鐘周期的時(shí)間內(nèi)抖動(dòng),我們.配置濾波器的帶長(zhǎng)于5個(gè)時(shí)鐘周期。因此我們可以(以 fDTS頻率)連續(xù)采樣8次,已確認(rèn)在TI1上一次 真實(shí)的邊沿變換,即在 TIM1 CCMR1寄存器中寫(xiě)入IC仆=
25、0011.15141312111098OC2CEOC2M2:0OC2 PEOC2FEIC2F3:0IC2 PSC1:0CC2S1:076543210OC1CEOC1M2:0OC1 PEOC1FEIC1F3:0IC1 PSC1:0CC1S1:0TIM1_CCMR1(捕獲/比較模式寄存器 1)TIM1-CCMR1|=3CCER&=0CCER|=1DIER|=1DIER|=1A PB2ENR|=1A PB2ENR|=1CHL&=OXFFFFFFFO;RCC-CHL|=0X00000004;/設(shè)置PA8為浮空輸入TIM1-ARR=arr ;TIM1-PSC=psc ;TIM1-CCMR1=0X01;
26、/CC1TIM1-CCMR1|=3CCER&=0CCER|=1DIER|=1DIER|=1CR1|=1A PB2ENR|=1A PB2ENR|=1CR1|=0CR1|=1CR1|=1CR1|=1CR1|=0CR1|=1CR1|=1CR1|=7CR1|=0CR1|=1A PB2ENR|=1A PB2ENR|=1CRL&=0X000FFFFF;GPI OA-CRL|=0XBBB00000;/ PA567 復(fù)用GPIOA-ODR|=0X7CR1|=0CR1|=1CR1|=1CR1|=1CR1|=0CR1|=1CR1|=1CR1|=7CR1|=0CR1|=1SR&1SR&1SR&1300)return 0;/若經(jīng)判斷發(fā)送緩沖區(qū)不為空則返回值“0 ”SPI-DR=Txdata;若發(fā)送緩沖區(qū)為空則發(fā)送數(shù)據(jù)temp=0;while(S PI-SR&1SR
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 過(guò)渡金屬-雜原子共摻雜的碳材料電催化劑的可控制備
- 基于PhET的高中物理“學(xué)生必做實(shí)驗(yàn)”教學(xué)應(yīng)用研究與實(shí)踐
- 保險(xiǎn)公司養(yǎng)老專(zhuān)題課件
- 內(nèi)鏡下超聲診斷技術(shù)
- 游戲制作流程
- 初中化學(xué)說(shuō)課課件教學(xué)
- 初中函數(shù)知識(shí)點(diǎn)總結(jié)
- Propofol-sulfate-sodium-生命科學(xué)試劑-MCE
- 小學(xué)健康體測(cè)講解
- 內(nèi)科護(hù)理小課堂
- DB11-T 1192-2025 工作場(chǎng)所防暑降溫技術(shù)規(guī)范
- 2025年社區(qū)工作者招聘考試(公共基礎(chǔ)知識(shí))經(jīng)典試題及答案
- 2025年精益生產(chǎn)管理考試試題及答案
- 歷年造價(jià)員考試試題及答案
- 2025年北京高考地理真題及答案
- 小學(xué)美術(shù)大單元教學(xué)設(shè)計(jì)與實(shí)施研究
- 山地生態(tài)治理修復(fù)項(xiàng)目可行性研究報(bào)告
- 2025廣西公需科目真題續(xù)集(附答案)
- 2025年 浙江“三支一扶”招募筆試考試試卷附答案
- 《個(gè)人信息保護(hù)法》考試參考試題庫(kù)100題(含答案)
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蝕工程施工及驗(yàn)收規(guī)范
評(píng)論
0/150
提交評(píng)論