Archivos de encabezado STM32 ARM para usar con Eclipse y GCC

2

Soy un estudiante de ingeniería mecatrónica (mecánica y eléctrica) y quiero aprender a programar microprocesadores ARM. He utilizado Atmel ATMegas anteriormente. Estoy usando un mac y siendo estudiante no quiero usar software costoso, por lo que instalé eclipse, Yagarto y openocd según esto publicación de blog . Sin embargo, lo que quiero saber es dónde obtengo los archivos de encabezado para chips individuales, ya que quiero programar en C no en ensamblaje.

Estoy planeando usar chips STM32 ya que estos y los chips LPC de NXP parecen ser los más populares y los chips STM32 parecen ser más avanzados. Descubrí que hay algunos archivos de encabezado cuando forman parte de las placas de desarrollo, como para el STM32F103RBT6 cuando forman parte de STM32-H103 de Olimex pero parece que no puedo encontrar archivos de encabezado para otros chips en la misma familia.

Una pregunta secundaria es, ¿hay tutoriales para la programación en C de chips STM32 o chips basados en Cortex-M? Parece que no puedo encontrar ningún tutorial que vaya a través de los conceptos básicos, como parpadear un LED.

    
pregunta richendes

2 respuestas

0

Un buen libro que presenta los microcontroladores basados en Cortex-M3 es " La guía definitiva para el ARM Cortex-M3, Segunda edición "escrito por Joseph Yiu. Contiene explicaciones de hardware y software.

Hay un estándar de interfaz de software para los procesadores Cortex-M que se llama CMSIS (Software de interfaz de microcontrolador Cortex). Puede descargar las bibliotecas de periféricos estándar desde el sitio web del fabricante del microcontrolador que contiene los archivos de encabezado y CMSIS de CMSIS.

También necesitará un código de inicio para inicializar su microcontrolador antes de ejecutar el bucle principal. Generalmente es proporcionado por el IDE pero no sé si hay paquetes de Eclipse que puedan hacer el trabajo por usted.

    
respondido por el johsey
0

Aquí hay un programa muy simple para encender un LED en la placa STM32VLDISCOVERY, que usa la STM32F100RB:

/* Test.c
** Simple program for STM32F100RB to flash LED on PC_9
**
*/

#include <stm32f10x.h>

void delay(void);

void main(void)
{
  // I/O port C clock enable
  RCC->APB2ENR = RCC_APB2ENR_IOPCEN;
  // Set PC_9 to output 
  GPIOC->CRH &= ~(GPIO_CRH_MODE9 | GPIO_CRH_CNF9);
  GPIOC->CRH |= GPIO_CRH_MODE9;

  while(1)
  {
    GPIOC->BSRR = (1<<9);
    delay();
    GPIOC->BRR = (1<<9);
    delay();
  }
}

void delay(void)
{
  volatile unsigned int i;

  for (i = 0; i < 20000; i++)
    ;
}
    
respondido por el Leon Heller

Lea otras preguntas en las etiquetas