Đang tải... (xem toàn văn)
Ôn tập Vi điều khiển sử dụng STM32 của HaUI có hình ảnh minh họa trực quan STM32 F103C8HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET); for(int i=0;i > Code generation Configuration Force DMA DMA > GPIO > Priority Group L] Sort by Premption Priority and Sub Priority IWDG > Search © =Show |available interrupts v- RCC 4 SYS Non maskable interrupt 0 STM32F103C6Tx ° Hard fault interrupt 0 WWDG Memory management fault 0 LQFP48 v | Prefetch fault, memory access fault 0 `» | Analog Undefined instruction or illegal state 0 Ti System semice call via SWI instruction 0 Debug monitor 0 tmers Pendable request for system service 0 Connectivit y Time base: System tick timer 0 PVD interrupt through EXTI line 16 O 0 Computing Flash global interrupt O 0 RCC global interrupt O 0 Middleware EXT! line0 interrupt 1 TINS < SYS Mode and Configuration Mode System Core v Debu g |Serial Wire @ Sy: stem Wake-Up a Timebase Source |SysTick DMA nang » Timers > & Warning: This peripheral has no parameters to be configured while (1) { /* USER CODE END WHILE */ HAL GPIO_ TogglePin(GPIOA,PGIPN_IO1); HAL _Delay(500); /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } void EXTIO IRQHandler(void) { /* USER CODE BEGIN EXTIO_IRQn 0 */ HAL GPIO_WritePin(PIGN P1,IGPOIOA_P,INGRPEISEOT); for(int 1=0;1=4) 1 [ HAL GPIO WritePin(GPIOA,GCPIO PIN 1,GCPIO PIN RESET): HAL GPIO WrivePin(CPIOA,GCPIO PIN 2,GPIO PIN RESET): BAIL GPIO WritePin(GPIOA,CPIO PIN 3,GPIO PIN RESET),dem=0: E } /* USER CODE END EXTIO_IRQn 0 */ HAL GPIO EXTI IRQHandler(GPIO PIN 0): 2 5: [0] sTM32CubeMX 2_4.i0c*: STM32F103C6T Window Help @® Fi oy x File GENERATE CODE ky 2_4.ioc - Pinout & Configuration | Clock Configuration Project Manager s Ql vị] @ x Software Packs 4509) iF Pinout view == System view NVIC Mode and Configuration i la Configuration Sort by inte System Core LY ec generation Force DMA a Priority Group O Sort by Premption Priority and Sub Priority ([ DMA Search © Show :|available interrupts v- GPIO NVIC Interrupt Table rele IWDG Non maskable interrupt 0 NVIC Hard fault interrupt 0 RCC Memory management fault 0 4 vowoc 0 Prefetch fault, memory access fault 0 Anal > Undefined instruction or illegal state 0 nalog s yystem service call via SWI instruction -: - >| Debug montr ọ oun Hi STM32F103C6Tx imers Pendable request for system service 0 - — LQFP48 0 Connectivityvà > Time base: System tick timer- - L 0 GPIO_EXTH liếm PVD interrupt through EXTI line 16 O 0 Computing > Flash global interrupt O 09 1< RCC global interrupt 2 ø| 8|& 1 š 55 Middleware > EXTl fined intemapt 8 3, 8 EXTI line1 interrupt se oO Preemption Priority L +] Sub Priority L Q có Q Le ral Q /* UDEK CUUE BEGIN WHLLE ^/ while (1) { /* USER CODE END WHILE */ HAL GPIO TogglePin(GPIOB,PGINPI0O ); HAIL Delay (500); /* USER CODE BEGIN 3 */ } USER CODE END 3 */ /* EXTIO IRQHandler (void) -_} USER CODE BEGIN EXTIO IRQn 0 */ void GPIO WritePin(GPIPN I0,O GPB IO,PG INPREI SEO T); Hí /* HAL for (int i=0; i ® Code generation 5 888 88 > ˆ > Priority Group O Sort by Premption Priority and Sub Priority 1 Sort by inte 5 > Force DMA DMA Search © _ Show |available interrupts v:> GPIO NVIC Interrupt Table 0 3 SYS_JTMS-SWDIO IWDG Non maskable interrupt 0 GPIO_extio [Z7 : STM32F103C6Tx 6Pio ni fy LQFP48 RCC Hard fault interrupt 0 0 4 wne Memory management fault 0 Prefetch fault, memory access fault 0 Analog Undefined instruction or illegal state 0 Timers System service call via SWI instruction 0 Connectivit Debug monitor 0 y - H09 Pendable request for system service Computing Time base: System tick timer O 0 Middleware O 0 PVD interrupt through EXTI line 16 2 Flash global interrupt 1 RCC global interrupt EXtTl lined interrupt EXT] line’ interrupt LlIEnabled Preemption Priority L +] Sub Priority L Q có Q là al) af int dem=0; ]char ma_ 1ed[]={0Oxc0, Ox£9, Oxa4, Oxb0, 0x99, Ox92, - 0x82, 0x£f8, 0x80, 0x90}; void hientthi( unsigned int data) ] t HAL GPIO WritePin(GPIPO INB0,,G daP taIélO); HAL GPIO WritePin(GPIP N I 1,O(dBat, a>G >1)P &0I x01O l); HAL GPIO WritePin(GPIPN I 2,O(B dat, a>G >2P )&OIx0O 1); HAL GPIO WritePin(GPIPN I 3,O(B dat, a>G >3)P&I Ox0O1); HAL GPIO WritePin(GPIPN I4$O , (dB at, a>>G 4$)P&I Ox0O1); HAL GPIO WritePin(GPIPN I 5,O(B dat, a>G >5P )&OIx0O 1); HAL GPIO WritePin(GPIPN I6€O , (B dat, a>G >€)P&I Ox0O1); HAL GPIO WritePin(GPIPN I 7,O(B dat, a>G >7)P&I OxO 01); - +} includes /* Private while (1) ] 4 HAL GPIO WritePin(GP PINI8O,GBPI,O G PIP N I SEO T); /* USER CODE END WHILE */ hientthi(ma_led[dem]); HAL Delay(19); /* USER CODE BEGIN 3 */ - } /* USER CODE END 3 */ -} void EXTIO IRQHandler (void) 0 */ USER CODE BEGIN EXTIO IRQn ]{ /* if(HAL GPIO ReadPin(GPIOAPI,NG0P)I ==O0) ] { while (HAL GPIO ReadPin(GPIOPAI, N G0)P==I0)O ¿, dem++; ì ifÍ{dqem>=19j dem=9;} /* USER CODE END EXTIO IRQn 0 */ HAL GPIO EXTI IRQHandler(PGIPN I0O); /* USER CODE BEGIN EXTIO IRQn 1 */ /* USER CODE END EXTIO IRQn 1 */ Pinout & Configuration Clock Configuration Project Manager a[_ vị] l$ NVIC x Software Packs w Pinout icf Pinout view == System view tea ~ Mode and Configuration f 4 OV OST Eee NYy š š Ỗ System Core * Confguration L] Sort by inte | ` ———=— 8 šššẽšẽ v Priority Premption Priority and Sub š - ˆ Group O Sort by Priority 2 š 1 DMA Search © _ Show [available interrupts v:: Force DMA š GPIO NVIC Interrupt Table eee 7 IWDG Non maskable interrupt 0 RE) sys_ums-swo1o NVIC Hard fault interrupt 0 Qh Memory management fault 0 RCC Prefetch fault, memory access fault 0 4 SYS S 0 Anal > Undefined instruction or illegal state 0 naog System serice call via SWI instruction > Debug monitor 0 STM32F103C6Tx Timers Pendable request for system service : 5 0 GPIO_exTio [ow LQFP48 € tiựt > Time base: System tick timer 6Pio ni fey 0nnectIi Computing y PVD interrupt through EXTI line 16 H09 0 » | Flash global interupt H09 TT FEE RCC global interrupt Middleware ca L1 0 tes > EXTI lined interrupt 2 2 3 ễ 1 ao e EXTI line1 interrupt 666 [)Enabled Preemption Priority |v] SubPaoiy| Œ Lo Q i ad L WN1LE (1) /* USER CODE END WHILE */ HAL GPIO WritePin(GPIOB,GPIO PIN 8,GPIO PIN SET); HAL GPIO WritePin(GPIOB,GPIO PIN 9,GPIO PIN RESET); hienthi (ma_led[dem/10]); HAL Delay(10); HAL GPIO WritePin(GPIOB,GPIO PIN &,GPIO PIN RESET); HAL GPIO WritePin(GPIOB,GPIO PIN 9,GPIO PIN SET); hienthl (ma_ 1ed [demê 1 0 ] ) ; BAL Delay (10); /* USER CODE BEGIN 3 */ FC} /* USER CODE END 3 */ -} EXTIO_ IRQHandler (void) 0 */ USER CODE BEGIN EXTIO IRQn void ] { /* if (HAL GPIO ReadPin(GPIOA,GPIO PIN 0)==0) -] { while (HAL GPIO ReadPin(GPIOA,GPIO PIN 0)==0); dem++; F } /* USER CODE END EXTIO_IRQn 0 */ HAL GPIO EXTI IRQHandler(GPIO PIN 0); QL) @ Xe 0, cán Saget NVIC Mode and Configuration Ỉ ‘System Core x Priority Group C1 Sort by Premption Priority and Sub Priority] Sor by inte ˆ Search © Show Force DMA DMA GPIO NVIC Interrupt Table BE SYS_sTMS-SWDIO IWDG ‘Non maskable interrupt 0 GPO_Ouput Hard fault interrupt 0 GPO_Ouput mư ng GPO_Ouput RCC ‘Memory management fault 0 GPIO_Ouput Prefetch fault, memory access fault 0 (GPIO_Output a SYS Undefined instruction or illegal state 0 56 ‘System service call via SWI instruction 0 Debug monitor 0 Analog Pendable request for system service 0 Timers > Time base: System tick timer 0 PVD interrupt through EXT! line 16 H0 SPO.Exn STM32F103C6Tx Connnencetcitiity > | Flash global interrupt oo GPIO_Ex LQFP48 RCC global interrupt oo coo_oune FEB computing 5 | EXT line0 interupt 1 EXT linet interrupt 2 Middleware 5 (Enabled Preemption Proity [v_ ] SubProiy [| @Q tI #include "main.h"” int deml=0; int dem2=0; Fichar ma_1ed[]={0xc0, 0x£9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0x£8, 0x80, 0x90}; void hienthil (unsigned int data) Et HAL GPIO WritePin(GPIOB,GPIO_PIN_0,datas0x01) ; HAL GPIO WritePin(GPIOB,GPIO_PIN_1, (data>>1) s0x01) ; HAL GPIO WritePin(GPIOB,GPIO_PIN_2, (data>>2) s0x01) ; HAL GPIO WritePin(GPIOB,GPIO PIN 3, (data>>3)s0x01); HAL GPIO WritePin(GPIOB,GPIO PIN 4, (data>>4) 0x01); HAL GPIO WritePin(GPIOB,GPIO PIN 5, (data>>5)s0x01l); HAL GPIO_ WritePin(GPIOB,GPIO_PI6N, (data>>é)s0x01); HAL GPIO WritePin(GPIOB,GPIO_PIN_7, (data>>7) s0x01) ; at void hienthi2(unsigned int data2) Ait HAL GPIO WritePin(GPIOA,GPIO_PIN 3,data2s0x01); HAL GPIO WritePin(GPIOA,GPIO_PI4N, (data2>>1) 0x01); HAL GPIO WritePin(GPIOA,GPIO_PI5N, (data2>>2) 60x01); HAL GPIO_ WritePin(GPIOA,GPIO_PI6N, (data2>>3) 60x01); HAL GPIO WritePin(GPIOA,GPIO_PIN_7, (data2>>4) s0x01) ; HAL GPIO_WritePin (GPIOA,GPIO_PIN_8, (data2>>5) s0x01) ; HAL GPIO WritePin(GPIOA,GPIO_PIN_9, (data2>>6) s0x01) ; BAL GPIO WritePin(GPIOA,GPIO PIN 10, (data2>>7) s0x01) ; while (1) { /* USER CODE END WHILE */ HAL GPIO TogglePin(GPIOA,GPIO PIN 2); HAL Delay(200); /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } EXTIO_IRQHandler (void) void { RESET); SET); HAL GPIO WritePin(GPIOA,GPIO PIN 2,GPIO PIN HAL GPIO WritePin(GPIOB,GPIO PIN 8,GPIO PIN 1f(HAL GPIO ReadPin(GPIOA,GPIO PIN _0)==0) { for (int deml=0;deml Search © Show |available interrupts v DMA Ww NVIC Interrupt Table Enabled GPIO > Non maskable interrupt BOOUODOOOUOUSSESEEEEEESE IWDG Hard fault interrupt Memory management fault _ CC (©C CC CC CC cCcCccccc RCC Prefetch fault, memory access fault Undefined instruction or illegal state v SYS System service call via SWI instruction WWDG Debug monitor Pendable request for system service Analog Time base: System tick timer PVD interrupt through EXTI line 16 Timers Flash global interrupt RCC global interrupt RTC TIM1 break interrupt TIM1 update interrupt TIM1 v TIM2 TIM1 trigger and commutation interrupts TIM1 capture compare interrupt TIM3 TIM2 global interrupt Connectivity HAL TIM PWM 5Start(&htiml,TIM CHANNEL 2); 2,dem); uint32 t dem=0; while (1) { /* USER CODE END WHILE */ _ HALTIM SET COMPARE (&htiml,TIM CHANNEL i while (HAL GPIO ReadPin(GPIOA,GPIO PIN 0)==0); dem =dem+100; af (dem>=500) dem=500; if(HAL_GPIO ReadPin(GPIOA,GPIO PIN 1)==0) while (HAL GPIO ReadPin(GPIOPAI, N G1)P=I =0O); dem = dem-1990; if (dem SE me view ¬ System Core Slave Mode [Di- sable vị 6.6 66666 E “ ° ooo v | se DMA v | = GPIO v | Trigger Source [Disable IWDG v | NVIC Clock Source [internal Clock v | 4 RCC A SYS Channel [PWM Generation CH1 v | SYS_.JTMS-SWDI0 WWDG Channel2 [PWM Generation CH2 onstants TIMI_£H4 Channel3 [PWM Generation CH3 Analog @ 6 TIMI_CH3 Channel4 [PWM Generation CH4 TIMI_CH2 Timers Configuration RTC > Reset Configuration : STM32F103C6Tx 4 TIM2 v @ NVIC = Settings @ DMA _ Settings LQFP48 TIM3 SE ecm i Configure the below ¢ : a|Ssacn (CĐ ] © @ a8 8 Y Counter Settings 836 Prescaler (PSC - 16 bits value) T = = = Counter Mode Up Counter Perind (AutaRelnad Renister- 999 /* Infinite loop */ 1,100); 2,300); /* USER CODE BEGIN WHILE */ 3,700); 4,900); HAL TIM PWM Start (shtiml,TIM CHANNEL 1); HAL TIM PWM Start (shtiml,TIM CHANNEL 2); HAL TIM PWM Start (shtiml,TIM CHANNEL 3); HAL TIM PWM Start (shtiml,TIM CHANNEL 4); while (1) { /* USER CODE END WHILE */ TIH M SEA T CL OMPARE (shtiml,TIM CHANNEL HAL TIM SET COMPARE (shtiml,TIM CHANNEL HAL TIM SET COMPARE (shtiml,TIM CHANNEL TIH M SEA T CL OMPARE (shtiml,TIM CHANNEL /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ ƒ mm mm —.=———-—=.—.`"Aa‹ } sConfigOC.OCMode = TIM OCMODE PWM1; sConfigOC.Pulse = 9; sConfigOC.OCPolarity = TIM_OCPOLARILTOWY; //Chuyen HIGH thanh Low sConfigOC.OCNPolarity = TIM OCNPOLARITY HIGH; sConfigOC.OCFastMode = TIM OCFAST_ DISABLE; sConfigOC.OCIdleState = TIM OCIDLESTATE RESET; sConfigOC.OCNIdleState = TIM _OCNIDLESTATE RESET; if (HAL_TIM PWM ConfigChannel(éhtiml, &sConfigOC, TIM CHANNEL1) != HAL OK) { 7 7 as _ 4 1: Ql & ADC1 Mode and Configuration 4 0; Pinout view =: System view System Core v LIN0 #ẽ 1 ¡ , 5 9, IN1 - OO IN2 DMA GPIO - IN3 IWDG L1IN4 NVIC RCC 4 SYS Configuration WWDG Reset Configuration Anal LU @ NVIC Settings ® DMA Settings @ GPIO Settings aisg © Parameter Settings @ User Constants LOroAlDCT + afeancmn | © © (Configure the below parameters : apciint [Js : Timers > - Independent mode Right alignment v ADCs_Common_Settings Mode v ADC_Settings Data Alignment Connectivity > Scan Conversion Mode Disabled Continuous Conversion Mode Enabled i > ena Discontinuous Conversion Disabledaae ^^ ra ^ n~ rn ^ Computing *>+>*+x~x¬*# a te ee Oe ar Pr are rrr 1YÝ313%*VẰ*%**v ee ee ¬5w-r Continuous Conversion Mode Enabled External Trigger Conversion Regular Conversion launched by softw `» Rank 1 Channel Channel1 Sampling Time #include "main.h" data) uint32_t AD; char hienthi(uint32_t H f{ HAL GPIO WritePin(GPPIINO0B,d,atGasP0xI01O); HAL GPIO WritePin(GPIPN I1,O(dBat,a>G >1P )&0Ix0O1); HAL GPIO WritePin(GPIPN I2,O(dBat,a>G >2)P8I 0x0O1); HAL GPIO WritePin(GPIPN I3,O(B dat,a>G>3P )&0Ix0O1); HAL GPIO WritePin(GPIPN I4,O(B dat,a>G>4P )&0Ix0O1); HAL GPIO WritePin(GPIPN I5,O(dBat, a>>G5S)P&I 0x0O1); HAL GPIO WritePin(GPIPN I6,O(dBat,a>G >6)P&I 0x0O1); HAL GPIO WritePin(GPIPN I7,O(B dat,a>G>7P )&0Ix0O1); HAL GPIO WritePin(GPIPN I8,O(dBat,a>G >8)P&I 0x0O1); HAL GPIO WritePin(GPIPN I39,O(B dat,a>G>9P )&0Ix0O1); HAL GPIO WritePin(G PINP1I 0,O(dBat, a>>G10P ) I 0xO 01); HAL GPIO WritePin(G PINP1I1,O(dBat, a>>G11P )&I 0x0O1); "ở Mont one ee i a ~ fe HAL ADC Start (&shadcl); HAL ADC PollForConversion(&had10c0i0),; while (1) { /* USER CODE END WHILE */ AD=HAL ADC GetValue (&hadci); hienthi (AD); /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ a[ vị io} Software Packs w Pinout GE Pinout view == System view v ADC1 Mode and Configuration j System Core OO INo ^ DMA GPIO IWDG NVIC RCC A SYS WWDG Analog » "arameter Setting Cerne ne STM32F103C6Tx + LQFP48 4 ADC2 Configure the below p : Q|Search (Ctrit)_ | @ @ x ADCs_Common_ Settings Mode Independent mode Timers › v ADC_Settings Connectivity Data Alignment Right alignment > Scan Conversion Mode Disabled Continuous Conversion Mode