Thursday, January 14, 2016

Let's Discover STM32 (Blinking Led, Delay, GPIO I/O)

Let's Discover STM32 (Blinking Led, Delay, GPIO I/O)

La famille des microprocesseurs STM32 de ST Micro�lectroniques fournit une vaste gamme de p�riph�riques autour d'un c�ur d'ARM Cortex, allant du simple GPIO (port d'entr�e-sortie g�n�raliste) et interface de communication serie synchrone (SPI) ou asynchrone (RS232) aux interfaces aussi complexes que l'USB, Ethernet ou HDMI. 




 
Un point remarquable est qu'un certain nombre de ces processeurs poss�dent deux convertisseurs analogique-num�riques, permettant un �chantillonnage simultan�e de deux grandeurs analogiques. Cadence sur un r�sonateur interne ou sur un quartz externe haute fr�quence 8 MHz (multiplie en interne au maximum  a 72 MHz).
Afficher l'image d'origine



R�sultat de recherche d'images pour "stm32 microcontrollers"
Le kit STM32F4Discovery de STMicroelectronics est con�u pour �valuer les caract�ristiques des microcontr�leurs des s�ries STM32F407 et STM32F417. Les microcontr�leurs STM32F407 et STM32F417 sont bas�s sur le c�ur 32 bits ARM Cortex-M4F hautes performances.
Les familles STM32F405, STM32F407, STM32F415, STM32F417 de microcontr�leurs sont bas�es sur le noyau RISC 32 bits ARM Cortex-M4 de qualit� sup�rieure qui fonctionne � une fr�quence de jusqu'� 168 MHz. Le noyau Cortex-M4 offre une unit� de virgule flottante (FPU) � pr�cision simple qui prend en charge toutes les instructions de traitement de donn�es et types de donn�es � pr�cision simple ARM. Il ex�cute �galement toute une s�rie d'instructions DSP et une unit� de protection de m�moire (MPU) qui am�liore la s�curit� d'application.

         Microcontr�leur STM32F407VGT6 avec noyau Cortex-M4F 32 bits ARM, flash 1 Mo, 192 Ko de RAM dans un bo�tier LQFP100
         ST-LINK/V2 int�gr� avec choix de commutation des modes pour utiliser le kit comme
         ST-LINK/V2 autonome (avec connecteur SWD pour la programmation et le d�bogage)
         L'alimentation de la carte se fait par bus USB ou via tension d'alimentation externe de 5 V
         Alimentation d'application externe : 3 et 5 V
         Acc�l�rom�tre LIS302DL ou LIS3DSH ST MEMS
         MP45DT02, capteur audio ST MEMS, microphone num�rique omnidirectionnel
         CS43L22, DAC audio avec pilote de haut-parleur de classe D int�gr�
         Huit LED : LD1 (rouge/verte) pour la communication USB, LD2 (rouge) pour la mise sous tension 3,3 V.
         Quatre LED utilisateur, LD3 (orange), LD4 (verte), LD5 (rouge) et LD6 (bleue), 2
         LED OTG USB LD7 (vertes) VBus et LD8 (rouge), surintensit�
         Deux boutons-poussoirs (utilisateur et Reset)
         USB OTG FS avec micro-connecteur AB
         Extension d'embase pour toutes les E/S LQFP100 de connexion rapide pour la
 
  SDIO (entr�e/sortie num�rique s�curis�e)
USART, SPI, I�C
  I�S (son Inter-IC) + PLL audio
Timers 16 et 32 bits
ADC jusqu'� 3 x 12 bits
Basse tension 1,7 � 3,6 V
     
     Voici des exemples de r�alisation pratique �quip�es avec les codes sources et des vid�os d�monstratifs
     
     1- STM32 Tutoriel #1 (Control Leds Using externel Button) 



CODE IS HERE :


/*Let's Electronic By Aymen Lachkhem */ #include "stm32f4xx_hal.h" int main() { GPIO_InitTypeDef GPIO_InitStructure; //HAL_Init(); /* GPIO Ports Clock Enable */ __GPIOD_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); /* Configure PD10 as output pushpull mode */ GPIO_InitStructure.Pin = GPIO_PIN_10; GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStructure.Speed = GPIO_SPEED_LOW; GPIO_InitStructure.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(GPIOD, &GPIO_InitStructure); /* Configure PA1 in input mode*/ GPIO_InitStructure.Pin = GPIO_PIN_1; GPIO_InitStructure.Mode = GPIO_MODE_INPUT; GPIO_InitStructure.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); while(1) { if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1) == GPIO_PIN_SET) HAL_GPIO_WritePin(GPIOD, GPIO_PIN_10, GPIO_PIN_SET); else HAL_GPIO_WritePin(GPIOD, GPIO_PIN_10, GPIO_PIN_RESET); } }
Have Fun 

   2- STM32 Tutoriel #2 (Control DC Motor in Both Direction) 




CODE IS HERE :

/*Let's Electronic By Aymen Lachkhem*/ #include "stm32f4xx_hal.h" int main() { GPIO_InitTypeDef GPIO_InitStructure; //HAL_Init(); /* GPIO Ports Clock Enable */ __GPIOD_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); /* Configure PD11, PD10 in output pushpull mode to control DC Motor / GPIO_InitStructure.Pin = GPIO_PIN_10 | GPIO_PIN_11 ; GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStructure.Speed = GPIO_SPEED_LOW; GPIO_InitStructure.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(GPIOD, &GPIO_InitStructure); /* Configure PA1 in input mode for DC motor's direction*/ GPIO_InitStructure.Pin = GPIO_PIN_1; GPIO_InitStructure.Mode = GPIO_MODE_INPUT; GPIO_InitStructure.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); while (1) if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1)){ HAL_GPIO_WritePin(GPIOD, GPIO_PIN_11,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_10,GPIO_PIN_RESET); } else { HAL_GPIO_WritePin(GPIOD, GPIO_PIN_11,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_10,GPIO_PIN_SET); }}

Have Fun 

    3 - STM32 Tutoriel #3 (Toggle Leds Using Mikro C for ARM)  




CODE IS HERE :


// Let's Electronic By Aymen Lachkhem unsigned int oldstate; void main() { GPIO_Digital_Input(&GPIOA_IDR, _GPIO_PINMASK_0); // Set PA0 as digital input GPIO_Digital_Output(&GPIOD_ODR, _GPIO_PINMASK_ALL); // Set PORTD as digital output oldstate = 0; do { if (Button(&GPIOA_IDR, 0, 1, 1)) // detect logical one on PA0 pin oldstate = 1; if (oldstate && Button(&GPIOA_IDR, 0, 1, 0)) { // detect one-to-zero transition on PA0 pin GPIOD_ODR = ~GPIOD_ODR; // invert PORTD value oldstate = 0; } } while(1); // endless loop }

Have Fun 

3

No comments:

Post a Comment