Question

Please add comments to each instruction line. Then write another program for different I/O ports. #include "stm3214xx.h" void delayMS(volatile int n); int main() { outputs RCC->AHB2ENR |=(1<<1); // enable GPIO

B GPIOB -> MODER &= ~((0x3<<2) | (0x3<<26) |(0x3<<28) |(0x3<<30)); GPIOB -> MODER |= (1<<2) | (1<<26) |(1<<28) | (1<<30); //PB1, PB13, Pb14 < pb15 set asa volatile int K; while(1) { K=K + 1; if (K>1000){ K=0;} if (K<500){ else{ GPIOB->ODR =(1<<1) | (1<<15); //activate PB1 & PB15 delayMS(3); GPIOB->ODR =(1<<1) | (1<<13); delayMS(3); GPIOB->ODR =(1<<13) | (1<<14); delayMS(3); GPIOB->ODR =(1<<14) | (1<<15); delayMS(3);} GPIOB->ODR =(1<<14) | (1<<15); //activate PB1 & PB15 delayMS(3); GPIOB->ODR =(1<<14) | (1<<13); } } } while(1){ }*/ delayMS(3); GPIOB->ODR=(1<<1) | (1<<13); delayMS(3); GPIOB->ODR =(1<<1) | (1<<15); delayMS(3);} GPIOB->ODR =(1<<1) | (1<<15); //activate PB1 & PB15 delayMS(3); GPIOB->ODR =(1<<1) | (1<<13); delayMS(3); GPIOB->ODR =(1<<13) | (1<<14); delayMS(3); GPIOB->ODR =(1<<14) | (1<<15); delayMS(3); void delayMS (volatile int n) { volatile int i; for (; n<0; n--); for (i=0; i<350; i++); Board pinout reference. PC10 PC12 VDD BOOTO IN 1 IN2 IN3 IN4 IN5 IN6 IN7 NC NC PA13 PA14 PA15 GND PB7 PC13 PC14 PC15 PHO PH1 VBAT PC2 PC3 Figure 24. NUCLEO-L476RG + 5--12V CN7 CN6 9 10 11 12 13 14 15 16 20 21 22 23 24 25 26 CN8 NUCLEO-L476RG PC11 PD2 E5V GND NC NC IOREF IOREF RESET RESET +3V3 +3V3 +5V +5V GND GND GND GND VIN VIN NC PAO АО PA1 A1 PA4 A2 РВО A3 PC1 A4 PCO A5 Stepper Motor driver reference ULN2003 pinouts. Arduino PC9 PB8 D15 D14 PB9 AVDD AVDD GND GND D13 PA5 D12 PA6 D11 PA7 D10 PB6 D9 PC7 PA9 D8 D7 PA8 D6 PB10 D5 PB4 D4 PB5 D3 PB3 D2 PA10 D1 PA2 DO PA3 Morpho CN5 CN10 CN9 GRES D GEHO eftirs 56 21 22 23 24 25 26 PC8 PC6 PC5 U5V NC PA12 PA11 PB12 PB11 GND PB2 PB1 PB15 PB14 PB13 AGND PC4 NC NC MSV36556V1