GPIOD->ODR=0x0000; //ASIGNACION DE 0 EN HEX EN EL PUERTO D
GPIOD->ODR=0x5000; //ASIGNACION DE 5 EN HEX A LOS 4 BITS MAS SIGNIFICATIVOS
HAL_Delay(400); //RETARDO DE 400 MILISEGUNDOS
HAL_GPIO_TogglePin(GPIOD,GPIO_PIN_15); //CAMBIO DE ESTADO EN EL PIN “1 o 0” (UTILIZAR
CON DELAY)
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_13,0); //ESCRIBE EN EL PIN UN ESTADO LOGICO
HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); //LEER
VARIOS PINES
-----------------------------------------------------------------------------------------------------------------------------------
uint16_t b = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0); //DECLARACION DE VARIABLE INT DE 16
BITS
if (b==1) //CONDICIONAL DE b igual a 1
HAL_GPIO_TogglePin(GPIOD,GPIO_PIN_15);
HAL_Delay(100);
-----------------------------------------------------------------------------------------------------------------------------------
USO DEL USART PARA TRANSMITIR DATOS (TX)
Seleccionar el pin (PA2)
CONFICURARLO
ASINCRONO
9600 BAUDIOS
PARIDAD: NINGUNA
STOP BITS: 1
CODIGO
char datos[70] = "*** Hello World!! STM32F4 \n";
char datos1[70] = "UNIVERSIDAD CENTRAL \n";
char datos2[70] = "STM32\n";
while (1)
{
/* USER CODE END WHILE */
//MX_USB_HOST_Process();
HAL_UART_Transmit(&huart2,(uint8_t
*)datos,strlen(datos),100);
HAL_Delay(800);
HAL_UART_Transmit(&huart2,(uint8_t
*)datos1,strlen(datos1),100);
HAL_Delay(800);
HAL_UART_Transmit(&huart2,(uint8_t
*)datos2,strlen(datos2),100);
HAL_Delay(800);
/* USER CODE BEGIN 3 */
}
// PULSADOR AZUL STM COMO ENTRADA, ENCIENDE Y APAGA LEDS
while (1)
{
/* USER CODE END WHILE */
MX_USB_HOST_Process();
uint16_t b = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0); //DECLARACION DE VARIABLE
INT DE 16 BITS
if (b==1) //CONDICIONAL DE b igual a 1
{
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15,GPIO_PIN
_SET);
}
else
{
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15,GPIO_PIN
_RESET);
}
/* USER CODE BEGIN 3 */
}
// GPIO_PIN_SET coloca pin en 1
// GPIO_PIN_RESET coloca el pin en 0
-------------------------------------------------
while (1)
{
/* USER CODE END WHILE */
MX_USB_HOST_Process();
GPIOD->ODR ^= (0xFUL << 14); //CAMBIA ESTADO DEL PIN 14 Y 15 CADA 800 ms
HAL_Delay(800);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
GENERACION PWM
CONFIGURAR EL RELOJ INTERNO EN 16MHZ
// ESCOGER UN TIMER “Se utiliza un timer que posee un led en la tarjeta a modo
de ejemplo”
//SE CONFIGURA EL TIMMER 4
//PARA OBTENER UNA FRECUENCIA DE F=1HZ ----T= 1 SEG
//SE OBTIENE A PARTIR DE LA SIGUIENTE FORMULA
𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒𝑙 𝑟𝑒𝑙𝑜𝑗
𝑇=
𝑃𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟 ∗ 𝐶𝑜𝑛𝑡𝑎𝑑𝑜𝑟
Tener en cuenta que el Prescaler o el Contador no puede superar el valor de
65535 que es el valor máximo que se obtiene a partir de 16Bits
//Se escoge el Pulse el cual es el Dutycycle
// Se inicializa el PWM “Se escoge el Timmer y su respectivo canal”