0% encontró este documento útil (0 votos)
395 vistas7 páginas

STM32 Examples

El documento describe cómo configurar y usar puertos GPIO, USART y PWM en STM32. Se muestran ejemplos de cómo asignar valores a puertos GPIO, leer y escribir en puertos, usar retardos, alternar y leer el estado de pins. También incluye código para transmitir datos a través de USART y generar PWM usando un timer para controlar LEDs.

Cargado por

JORGE
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
395 vistas7 páginas

STM32 Examples

El documento describe cómo configurar y usar puertos GPIO, USART y PWM en STM32. Se muestran ejemplos de cómo asignar valores a puertos GPIO, leer y escribir en puertos, usar retardos, alternar y leer el estado de pins. También incluye código para transmitir datos a través de USART y generar PWM usando un timer para controlar LEDs.

Cargado por

JORGE
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

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”

También podría gustarte