Autor Tema: Entorno de desarrollo para STM32F4  (Leído 14915 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Entorno de desarrollo para STM32F4
« Respuesta #45 en: 31 de Mayo de 2017, 17:48:24 »
He intentado esto y no funciona:

Código: C
  1. /* Infinite loop */
  2.   /* USER CODE BEGIN WHILE */
  3.   while (1)
  4.   {
  5.   /* USER CODE END WHILE */
  6.  
  7.   /* USER CODE BEGIN 3 */
  8.     HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_10); //Toggle the state of pin PC10
  9.     HAL_Delay(500); //delay 500ms
  10.   }
  11.   /* USER CODE END 3 */

El resto del código está creado de forma automática por STM32CubeMX para un STM32F407VET6
Estoy a punto de tirar la placa a la basura.

¿Algún alma caritativa que me ayude a salir del pozo?

Un saludo.

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Entorno de desarrollo para STM32F4
« Respuesta #46 en: 31 de Mayo de 2017, 18:20:21 »
Que significa no funciona?
Compila y se graba en el micro pero no corre?
Probaste de resetear el micro despues de grabar? porque interfaz y con que programa grabaste el .hex?

publicaá el main.c completo, por favor.

saludos
« Última modificación: 31 de Mayo de 2017, 18:26:32 por elgarbe »
-
Leonardo Garberoglio

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Entorno de desarrollo para STM32F4
« Respuesta #47 en: 31 de Mayo de 2017, 18:43:46 »
.

A ver como has configurado el puerto en CubeMX.


Esta es una configuración en uno de mis programas, controlando varios led, un laser, un acelerómetro, un módulo de radio a 2.4Ghz, leyendo botones, todo funcionó perfectamente a la primera. Recomendable poner etiquetas a los puertos, el programa se hace mucho más legible.

Programa de test básico.

Código: [Seleccionar]
#define B2_CERRADO HAL_GPIO_ReadPin(BOTON2_GPIO_Port, BOTON2_Pin) == GPIO_PIN_SET
#define APAGA_LASER HAL_GPIO_WritePin(LASER_GPIO_Port, LASER_Pin, GPIO_PIN_RESET);
#define ENCIENDE_LASER HAL_GPIO_WritePin(LASER_GPIO_Port, LASER_Pin, GPIO_PIN_SET);
#define CAMBIA_ESTADO_LASER HAL_GPIO_TogglePin(LASER_GPIO_Port, LASER_Pin);
#define ENCIENDE_LED1_ROJO HAL_GPIO_WritePin(LED1_ROJO_GPIO_Port, LED1_ROJO_Pin, GPIO_PIN_RESET);
#define APAGA_LED1_ROJO HAL_GPIO_WritePin(LED1_ROJO_GPIO_Port, LED1_ROJO_Pin, GPIO_PIN_SET);
#define CAMBIA_ESTADO_LED1_ROJO HAL_GPIO_TogglePin(LED1_ROJO_GPIO_Port, LED1_ROJO_Pin);

//****** DEBUG ************
 while (1)
  {

// DEBUG ---
if (B2_CERRADO) {
                           ENCIENDE_LED1_ROJO
           ENCIENDE_LASER
           HAL_Delay(100); //delay 200ms
                 } else {
                                  APAGA_LED1_ROJO
                  APAGA_LASER
                        }
leo_sensores(); // Leo acelerometro, giroscopo, magnetometro
  }
//**********************************






« Última modificación: 31 de Mayo de 2017, 19:12:10 por planeta9999 »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Entorno de desarrollo para STM32F4
« Respuesta #48 en: 01 de Junio de 2017, 10:07:53 »
Solo he configurado el reloj (con oscilador interno para no tener problemas) y dos puertos de salida (dos led).


* Pinout.png
(31.04 kB, 550x602 - visto 502 veces)



* Clock.png
(60 kB, 1128x542 - visto 501 veces)



* PinConfig.png
(11.17 kB, 708x184 - visto 478 veces)


Un saludo.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Entorno de desarrollo para STM32F4
« Respuesta #49 en: 01 de Junio de 2017, 12:35:41 »
El compilador con Eclipse me genera un fichero *.bin dentro del directorio Debug, que es el que estoy grabando en el micro.
Quizás el formato no sea el adecuado. ¿No debería generar un *.hex?

Saludos.

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Entorno de desarrollo para STM32F4
« Respuesta #50 en: 01 de Junio de 2017, 13:06:09 »
arm-none-eabi-gcc tengo entendido que genera un elf con la configuracion que viene por defecto en el systemworkbench

Luego:
arm-none-eabi-objcopy -O ihex xxxx.elf xxx.hex
para producir el hex.

tambien podes agregar al post build esto:

'arm-non-eabi-objcopy -0 ihex ${BuildArtifactFileName}${BuildArtifactFileBaseName}.hex'

no lo prové en system workbench por que en mi caso le doy al bichito verde (debug) y solo se compila y graba.

Saludos
« Última modificación: 01 de Junio de 2017, 13:09:02 por elgarbe »
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Entorno de desarrollo para STM32F4
« Respuesta #51 en: 01 de Junio de 2017, 13:09:34 »
Si lo quieres en .hex si... Pero el .bin te serviria tambien.. El .bin es parecido al .hex nomas que es directo y no posee ninguna "codificacion/checksum"

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Entorno de desarrollo para STM32F4
« Respuesta #52 en: 01 de Junio de 2017, 13:14:57 »
Pero eso es muy complejo y el bin grabado con J-Link no funciona.
Me voy a esperar a que me llegue el ST-Link y si funciona bien, tiro el JLink a la basura (junk-box).

Saludos.


Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Entorno de desarrollo para STM32F4
« Respuesta #53 en: 01 de Junio de 2017, 14:52:53 »
Con la ST-LInk no tenes que hacer nada, solo la conectas a los pines SWD de la placa tuya y listo. Cuando le das a debug, se compila, graba en el micro y arranaca en modo debug.

Tenes identificado los pines del SWD en la placa tuya?

sds.
-
Leonardo Garberoglio

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Entorno de desarrollo para STM32F4
« Respuesta #54 en: 01 de Junio de 2017, 15:06:45 »
No. Sólo tengo los pines PD14, PA6, etc.

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Entorno de desarrollo para STM32F4
« Respuesta #55 en: 01 de Junio de 2017, 15:29:13 »
En el CubeMX, en el panel de perifèricos en RCC creo, tenes que habilitar el debug por SWD y entonces se te van a marcar los pines que pertenecen al SWD. Esos pines son los que vas a conectar al STLink.
La otra opcion es con cable JTAG, pero eso nunca lo probe. Yo soy fiel a "lo que funciona no se cambia" y como a mí el SWD me funcionó siempre a la perfeccion, pues en mis placa es lo que uso.

La placa tuya de ST no tiene un conector en algun rincon que diga SWD?

sds.
-
Leonardo Garberoglio

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Entorno de desarrollo para STM32F4
« Respuesta #56 en: 01 de Junio de 2017, 16:20:39 »
No. Solo tiene el conector JLink.

http://www.ebay.com/itm/142124645773

Gracias. Cuando me llegue el programador estudiaré los pines.

Saludos.



Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Entorno de desarrollo para STM32F4
« Respuesta #57 en: 01 de Junio de 2017, 16:28:25 »
Me resisto a buscar que pines son los del JLink, pero me animo a decirte que entre ellos estan los del SWD.
-
Leonardo Garberoglio

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Entorno de desarrollo para STM32F4
« Respuesta #58 en: 02 de Junio de 2017, 03:58:10 »
.

Los pines del SWD los tienes en el datasheet del micro, además en esa placa tienes un hermoso conector que tiene toda la pinta de ser un JTAG (2x10 pines), ¿ no te han dado ninguna documentación de la placa ?.  Te están dando un cable Dupont que puedes usar para conectar al programador.

SWDIO ---> PA13
SWCLK ---> PA14
RESET ----> NRST (pin14 en un TQFP100)
GND
+3.3v


Te has complicado la vida de mala manera, una Discovery lo lleva todo, programador integrado incluido, se conecta por USB y lo puedes programar y debugear sin problemas. Tratar de usar un Jlink para programar/debugear un STM32 también son ganas de hacerlo difícil.


PF: confirmado, en la imagen de la serigrafía de tu placa, pone JTAG en el conector de 2x10. El STLink también tiene JTAG y te lo dan con el correspondiente cable plano, probablemente lo puedas conectar directamente. Yo en mis placas, solo pongo un conector de 5 pines para programar por SWD, y conecto al STLink con un cable hecho a medida. También puedes usar el modo BOOT para cargar firmware, pero sin debug.

« Última modificación: 02 de Junio de 2017, 04:11:50 por planeta9999 »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Entorno de desarrollo para STM32F4
« Respuesta #59 en: 02 de Junio de 2017, 10:36:39 »
Gracias.
Ha sido un error de principiante. A partir de ahora utilizaré el STLink para cualquier STM32.

Saludos.