SlideShare une entreprise Scribd logo
1  sur  4
Télécharger pour lire hors ligne
STM32 F4 (PWM,SPI and ADC Test Examples)
letselectronic.blogspot.com /2016/01/stm32-f4-pwmspi-and-adc-test.html
STM32 F4 (PWM,SPI and ADC Test Examples)
On Commence par definir ces 3 grandes protocoles électroniques :
PWM
La modulation de largeur d'impulsions (MLI ; en anglais : Pulse Width Modulation, soit PWM), est une technique
couramment utilisée pour synthétiser des signaux continus à l'aide de circuits à fonctionnement tout ou rien, ou plus
généralement à états discrets.
Le principe général est qu'en appliquant une succession d'états discrets pendant des durées bien choisies, on peut
obtenir en moyenne sur une certaine durée n'importe quelle valeur intermédiaire.
Ce phénomène est fortement recommandé pour assurer la variation de
vitesse de moteur a courant continu, aujourd'hui je vais vous démontrer
comment on peut générer un signal PWM déune STM32 et visualiser son
présence sur des diodes LEDs.
Voici un exemple de comment on genere un signal PWM using Mikro C
for ARM et STM32F4:
//Let's Electronic By Aymen Lachkhem
// www.letselectronic.blogspot.com
// Hello in this tutoriel we are going to use 4 buttons (digital Input), the first
two will increase and decrease the current duty for the
// first Led and the second two will make the same thing with the other Led.
unsigned int current_duty, old_duty, current_duty1, old_duty1;
unsigned int pwm_period1, pwm_period2;
void InitMain() {
GPIO_Digital_Input (&GPIOA_BASE, _GPIO_PINMASK_3 | _GPIO_PINMASK_4 | _GPIO_PINMASK_5
1/4
GPIO_Digital_Input (&GPIOA_BASE, _GPIO_PINMASK_3 | _GPIO_PINMASK_4 | _GPIO_PINMASK_5
| _GPIO_PINMASK_6); // configure PORTA pins as input
}
void main() {
InitMain();
current_duty = 100; // initial value for current_duty
current_duty1 = 100; // initial value for current_duty1
pwm_period1 = PWM_TIM1_Init(5000);
pwm_period2 = PWM_TIM4_Init(5000);
PWM_TIM1_Set_Duty(current_duty, _PWM_NON_INVERTED, _PWM_CHANNEL1); // Set current
duty for PWM_TIM1
PWM_TIM4_Set_Duty(current_duty1, _PWM_NON_INVERTED, _PWM_CHANNEL2); // Set current
duty for PWM_TIM4
PWM_TIM1_Start(_PWM_CHANNEL1, &_GPIO_MODULE_TIM1_CH1_PE9);
PWM_TIM4_Start(_PWM_CHANNEL2, &_GPIO_MODULE_TIM4_CH2_PD13);
while (1) { // endless loop
if (GPIOA_IDR.B3) { // button on RA3 pressed
Delay_ms(1);
current_duty = current_duty + 5; // increment current_duty
if (current_duty > pwm_period1) { // if we increase current_duty greater then
possible pwm_period1 value
current_duty = 0; // reset current_duty value to zero
}
PWM_TIM1_Set_Duty(current_duty, _PWM_NON_INVERTED, _PWM_CHANNEL1); // set newly
acquired duty ratio
}
if (GPIOA_IDR.B4) { // button on RA4 pressed
Delay_ms(1);
current_duty = current_duty - 5; // decrement current_duty
if (current_duty > pwm_period1) { // if we decrease current_duty greater then
possible pwm_period1 value (overflow)
current_duty = pwm_period1; // set current_duty to max possible value
}
PWM_TIM1_Set_Duty(current_duty, _PWM_NON_INVERTED, _PWM_CHANNEL1); // set newly
acquired duty ratio
}
if (GPIOA_IDR.B5) { // button on RA5 pressed
Delay_ms(1);
current_duty1 = current_duty1 + 5; // increment current_duty
if (current_duty1 > pwm_period2) { // if we increase current_duty1 greater then
possible pwm_period2 value
current_duty1 = 0; // reset current_duty1 value to zero
}
PWM_TIM4_Set_Duty(current_duty1, _PWM_NON_INVERTED, _PWM_CHANNEL2); // set newly
acquired duty ratio
}
if (GPIOA_IDR.B6) { // button on RA6 pressed
Delay_ms(1);
current_duty1 = current_duty1 - 5; // decrement current_duty
if (current_duty1 > pwm_period2) { // if we decrease current_duty1 greater then
possible pwm_period1 value (overflow)
current_duty1 = pwm_period2; // set current_duty to max possible value
}
PWM_TIM4_Set_Duty(current_duty1, _PWM_NON_INVERTED, _PWM_CHANNEL2);
}
Delay_ms(1); // slow down change pace a little
}
2/4
}
}
Voici une démonstration vidéo de fonctionnement :
SPI
Une liaison SPI (pour Serial Peripheral Interface) est un bus de données série synchrone baptisé ainsi par Motorola,
qui opère en mode Full-duplex. Les circuits communiquent selon un schéma maître-esclaves, où le maître s'occupe
totalement de la communication. Plusieurs esclaves peuvent coexister sur un même bus, dans ce cas, la sélection
du destinataire se fait par une ligne dédiée entre le maître et l'esclave appelée chip select.
Voici un exemple de comment interfacer un afficheur LCD 2X16
avec la carte STM232 en utilisant le Mikro c for ARM:
//Let's Electronic By Aymen
Lachkhem
// www.letselectronic.blogspot.com
// LCD module connections
sbit LCD_RS at GPIOB_ODR.B2;
sbit LCD_EN at GPIOB_ODR.B3;
sbit LCD_D4 at GPIOB_ODR.B4;
sbit LCD_D5 at GPIOB_ODR.B5;
sbit LCD_D6 at GPIOB_ODR.B6;
sbit LCD_D7 at GPIOB_ODR.B7;
// End LCD module connections
unsigned int adc_value;
void main(){
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
while(1) {
Lcd_Out(1, 3, "STM32 With LCD");
delay_ms(10);
}
}
Voici une démonstration vidéo de fonctionnement :
Convertisseur Analogique Numérique ADC
Un convertisseur analogique-numérique (CAN, parfois convertisseur A/N), ou en anglais ADC pour (Analog to
Digital Converter) ou plus simplement A/D, est un montage électronique dont la fonction est de traduire une
grandeur analogique en une valeur numérique(codée sur plusieurs bits), proportionnelle au rapport entre la
grandeur analogique d'entrée et la valeur maximale du signal.
Le signal converti est le plus souvent une tension électrique.
3/4
Voici un exemple de comment utiliser le protocole ADC avec la carte
STM232 en utilisant le Mikro c for ARM:
//Let's Electronic By Aymen Lachkhem
// www.letselectronic.blogspot.com
unsigned int adc_value;
void main(){
adc_value = ADC1_Read(3); // read analog value from ADC1 module channel
3
while(1) {
GPIOC_BASE = adc_value;
delay_ms(10);
}
}
Voici une démonstration vidéo de fonctionnement précédant juste ici on va lire la valeur analogique sur
le potentiomètre et la écrire sur le comportement d'une diode LED.
4/4

Contenu connexe

Tendances

Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGE
Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGEProjet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGE
Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGEHASSOU mohamed
 
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptwafawafa52
 
Présentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HODPrésentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HODwebmasterref68
 
Presentation arduino
Presentation arduinoPresentation arduino
Presentation arduinoSinGuy
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..sunprass
 
Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdlyassinesmz
 
Microprocesseur support de cours
Microprocesseur support de coursMicroprocesseur support de cours
Microprocesseur support de courssarah Benmerzouk
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseurPeronnin Eric
 
Projet PFE: Réalisation d'une armoire électrique
Projet PFE: Réalisation d'une armoire électriqueProjet PFE: Réalisation d'une armoire électrique
Projet PFE: Réalisation d'une armoire électriqueRidha Chayeh
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Sana Aroussi
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoiresSana Aroussi
 
Cours Bus de communication et réseaux industriels. Chapitre 1 : introduction.
Cours Bus de communication et réseaux industriels. Chapitre 1 :  introduction.Cours Bus de communication et réseaux industriels. Chapitre 1 :  introduction.
Cours Bus de communication et réseaux industriels. Chapitre 1 : introduction.Tarik Zakaria Benmerar
 
Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Mohsen Sadok
 
STM32F4+Android Application
STM32F4+Android ApplicationSTM32F4+Android Application
STM32F4+Android ApplicationHajer Dahech
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84guest1e7b02
 
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 2 Prof. Khalifa MANSOURICours  systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURIMansouri Khalifa
 
Architecture ordinateur-echange-de-donnees
Architecture ordinateur-echange-de-donneesArchitecture ordinateur-echange-de-donnees
Architecture ordinateur-echange-de-donneesAbdoulaye Dieng
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busSana Aroussi
 

Tendances (20)

Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGE
Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGEProjet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGE
Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGE
 
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
 
Présentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HODPrésentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HOD
 
Presentation arduino
Presentation arduinoPresentation arduino
Presentation arduino
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Exercices vhdl
Exercices vhdlExercices vhdl
Exercices vhdl
 
Microprocesseur support de cours
Microprocesseur support de coursMicroprocesseur support de cours
Microprocesseur support de cours
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
 
Projet PFE: Réalisation d'une armoire électrique
Projet PFE: Réalisation d'une armoire électriqueProjet PFE: Réalisation d'une armoire électrique
Projet PFE: Réalisation d'une armoire électrique
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86
 
Les systèmes embarqués arduino
Les systèmes embarqués arduinoLes systèmes embarqués arduino
Les systèmes embarqués arduino
 
Chapitre ii mémoires
Chapitre ii mémoiresChapitre ii mémoires
Chapitre ii mémoires
 
Cours Bus de communication et réseaux industriels. Chapitre 1 : introduction.
Cours Bus de communication et réseaux industriels. Chapitre 1 :  introduction.Cours Bus de communication et réseaux industriels. Chapitre 1 :  introduction.
Cours Bus de communication et réseaux industriels. Chapitre 1 : introduction.
 
Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)Rapport PFE Génie Electrique (2016)
Rapport PFE Génie Electrique (2016)
 
STM32F4+Android Application
STM32F4+Android ApplicationSTM32F4+Android Application
STM32F4+Android Application
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84
 
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 2 Prof. Khalifa MANSOURICours  systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
 
Architecture ordinateur-echange-de-donnees
Architecture ordinateur-echange-de-donneesArchitecture ordinateur-echange-de-donnees
Architecture ordinateur-echange-de-donnees
 
Chapitre iv entrées sorties et bus
Chapitre iv entrées sorties et busChapitre iv entrées sorties et bus
Chapitre iv entrées sorties et bus
 

En vedette

使用Eclipse快樂的mruby開發
使用Eclipse快樂的mruby開發使用Eclipse快樂的mruby開發
使用Eclipse快樂的mruby開發yamanekko
 
How to control physical devices with mruby
How to control physical devices with mrubyHow to control physical devices with mruby
How to control physical devices with mrubyyamanekko
 
STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1Jack Wang
 
Stm32 f4 first touch
Stm32 f4 first touchStm32 f4 first touch
Stm32 f4 first touchBenux Wei
 
2016-09-eclipse-iot-cf-summit
2016-09-eclipse-iot-cf-summit2016-09-eclipse-iot-cf-summit
2016-09-eclipse-iot-cf-summitMike Milinkovich
 
SPEED CONTROL OF INDUCTION MACHINE WITH REDUCTION IN TORQUE RIPPLE USING ROBU...
SPEED CONTROL OF INDUCTION MACHINE WITH REDUCTION IN TORQUE RIPPLE USING ROBU...SPEED CONTROL OF INDUCTION MACHINE WITH REDUCTION IN TORQUE RIPPLE USING ROBU...
SPEED CONTROL OF INDUCTION MACHINE WITH REDUCTION IN TORQUE RIPPLE USING ROBU...IAEME Publication
 
ARM Cortex-M3 Training
ARM Cortex-M3 TrainingARM Cortex-M3 Training
ARM Cortex-M3 TrainingRaghav Nayak
 
Up and running with Teensy 3.1
Up and running with Teensy 3.1Up and running with Teensy 3.1
Up and running with Teensy 3.1yoonghm
 
Introduction to the extended essay for supervisors
Introduction to the extended essay for supervisorsIntroduction to the extended essay for supervisors
Introduction to the extended essay for supervisorslindatw
 
Power the world with mbed LPC1768
Power the world with mbed LPC1768Power the world with mbed LPC1768
Power the world with mbed LPC1768yoonghm
 
Single Phase PWM Rectifier In Traction Application
Single Phase PWM Rectifier In Traction ApplicationSingle Phase PWM Rectifier In Traction Application
Single Phase PWM Rectifier In Traction ApplicationShubhamesh Patne
 
Deploy mbed IoT cloud
Deploy mbed IoT cloudDeploy mbed IoT cloud
Deploy mbed IoT cloud艾鍗科技
 
A Comparative Analysis Among PWM Control Z-source Inverter with Conventional ...
A Comparative Analysis Among PWM Control Z-source Inverter with Conventional ...A Comparative Analysis Among PWM Control Z-source Inverter with Conventional ...
A Comparative Analysis Among PWM Control Z-source Inverter with Conventional ...Mustafa Xaved
 
Matrix Converter based Direct Torque Control of Induction Motor
Matrix Converter based Direct Torque Control of Induction MotorMatrix Converter based Direct Torque Control of Induction Motor
Matrix Converter based Direct Torque Control of Induction MotorNeehar NLN
 
Simulation of sinosoidal pulse width modulation
Simulation of sinosoidal pulse width modulationSimulation of sinosoidal pulse width modulation
Simulation of sinosoidal pulse width modulationTanzeel Ahmad
 
Brochure postgraduate 2017
Brochure postgraduate 2017Brochure postgraduate 2017
Brochure postgraduate 2017CHEMIN D'ELITES
 

En vedette (20)

使用Eclipse快樂的mruby開發
使用Eclipse快樂的mruby開發使用Eclipse快樂的mruby開發
使用Eclipse快樂的mruby開發
 
How to control physical devices with mruby
How to control physical devices with mrubyHow to control physical devices with mruby
How to control physical devices with mruby
 
STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1
 
Stm32 f4 first touch
Stm32 f4 first touchStm32 f4 first touch
Stm32 f4 first touch
 
2016-09-eclipse-iot-cf-summit
2016-09-eclipse-iot-cf-summit2016-09-eclipse-iot-cf-summit
2016-09-eclipse-iot-cf-summit
 
SPEED CONTROL OF INDUCTION MACHINE WITH REDUCTION IN TORQUE RIPPLE USING ROBU...
SPEED CONTROL OF INDUCTION MACHINE WITH REDUCTION IN TORQUE RIPPLE USING ROBU...SPEED CONTROL OF INDUCTION MACHINE WITH REDUCTION IN TORQUE RIPPLE USING ROBU...
SPEED CONTROL OF INDUCTION MACHINE WITH REDUCTION IN TORQUE RIPPLE USING ROBU...
 
ARM Cortex-M3 Training
ARM Cortex-M3 TrainingARM Cortex-M3 Training
ARM Cortex-M3 Training
 
Up and running with Teensy 3.1
Up and running with Teensy 3.1Up and running with Teensy 3.1
Up and running with Teensy 3.1
 
5 geo 2º bim
5 geo 2º bim5 geo 2º bim
5 geo 2º bim
 
Lpc1768
Lpc1768Lpc1768
Lpc1768
 
Introduction to the extended essay for supervisors
Introduction to the extended essay for supervisorsIntroduction to the extended essay for supervisors
Introduction to the extended essay for supervisors
 
Power the world with mbed LPC1768
Power the world with mbed LPC1768Power the world with mbed LPC1768
Power the world with mbed LPC1768
 
Design Report
Design ReportDesign Report
Design Report
 
Single Phase PWM Rectifier In Traction Application
Single Phase PWM Rectifier In Traction ApplicationSingle Phase PWM Rectifier In Traction Application
Single Phase PWM Rectifier In Traction Application
 
Deploy mbed IoT cloud
Deploy mbed IoT cloudDeploy mbed IoT cloud
Deploy mbed IoT cloud
 
A Comparative Analysis Among PWM Control Z-source Inverter with Conventional ...
A Comparative Analysis Among PWM Control Z-source Inverter with Conventional ...A Comparative Analysis Among PWM Control Z-source Inverter with Conventional ...
A Comparative Analysis Among PWM Control Z-source Inverter with Conventional ...
 
Matrix Converter based Direct Torque Control of Induction Motor
Matrix Converter based Direct Torque Control of Induction MotorMatrix Converter based Direct Torque Control of Induction Motor
Matrix Converter based Direct Torque Control of Induction Motor
 
Direct Torque Control of Matrix Converter fed BLDC motor
Direct Torque Control of Matrix Converter fed BLDC motorDirect Torque Control of Matrix Converter fed BLDC motor
Direct Torque Control of Matrix Converter fed BLDC motor
 
Simulation of sinosoidal pulse width modulation
Simulation of sinosoidal pulse width modulationSimulation of sinosoidal pulse width modulation
Simulation of sinosoidal pulse width modulation
 
Brochure postgraduate 2017
Brochure postgraduate 2017Brochure postgraduate 2017
Brochure postgraduate 2017
 

Similaire à STM32 F4 (PWM,SPI And ADC Test Examples)

Gestion de la batterie d'un micro-drone projet fin d'année NIDBELKACEM Mouhci...
Gestion de la batterie d'un micro-drone projet fin d'année NIDBELKACEM Mouhci...Gestion de la batterie d'un micro-drone projet fin d'année NIDBELKACEM Mouhci...
Gestion de la batterie d'un micro-drone projet fin d'année NIDBELKACEM Mouhci...Mouhcine Nid Belkacem
 
Electronique et-loisirs-n011
Electronique et-loisirs-n011Electronique et-loisirs-n011
Electronique et-loisirs-n011Cecilia Bevilaqua
 
Microcontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptxMicrocontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptxSABIR Hamza
 
Formation arduino 2018
Formation arduino 2018Formation arduino 2018
Formation arduino 2018Hichem Hamdi
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicmorin moli
 
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...Yassine Selmi
 
SEND SMS WITHOUT USING AT COMMANDS
SEND SMS WITHOUT USING AT COMMANDSSEND SMS WITHOUT USING AT COMMANDS
SEND SMS WITHOUT USING AT COMMANDSKhalil Chortani
 
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Fatima Zahra Fagroud
 
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSProgrammation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSECAM Brussels Engineering School
 
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variableMayssa Rjaibia
 
Matlab simulink partie 2
Matlab simulink partie 2Matlab simulink partie 2
Matlab simulink partie 2babaoui mohamed
 
Chap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdfChap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdfDAPcreat
 
Cours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfCours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfHouBou3
 
DSP FPGA.pdf
DSP FPGA.pdfDSP FPGA.pdf
DSP FPGA.pdfHouBou3
 
Rapport Projet ENSMM - programmation sur microcontrôleur
Rapport Projet ENSMM - programmation sur microcontrôleurRapport Projet ENSMM - programmation sur microcontrôleur
Rapport Projet ENSMM - programmation sur microcontrôleurYanis Marchand
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptxSihemNasri3
 
SDH technology
SDH technologySDH technology
SDH technologymarwan23
 

Similaire à STM32 F4 (PWM,SPI And ADC Test Examples) (20)

Gestion de la batterie d'un micro-drone projet fin d'année NIDBELKACEM Mouhci...
Gestion de la batterie d'un micro-drone projet fin d'année NIDBELKACEM Mouhci...Gestion de la batterie d'un micro-drone projet fin d'année NIDBELKACEM Mouhci...
Gestion de la batterie d'un micro-drone projet fin d'année NIDBELKACEM Mouhci...
 
T ps dsp
T ps dspT ps dsp
T ps dsp
 
Electronique et-loisirs-n011
Electronique et-loisirs-n011Electronique et-loisirs-n011
Electronique et-loisirs-n011
 
Microcontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptxMicrocontroller/microcontroleur/pic.pptx
Microcontroller/microcontroleur/pic.pptx
 
Formation arduino 2018
Formation arduino 2018Formation arduino 2018
Formation arduino 2018
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasic
 
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
[Présentation PFE] Conception et implémentation d'un estimateur conjoint de l...
 
SEND SMS WITHOUT USING AT COMMANDS
SEND SMS WITHOUT USING AT COMMANDSSEND SMS WITHOUT USING AT COMMANDS
SEND SMS WITHOUT USING AT COMMANDS
 
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
 
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSProgrammation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
 
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
Exam IIA5 INSAT 2018
Exam IIA5 INSAT  2018Exam IIA5 INSAT  2018
Exam IIA5 INSAT 2018
 
Matlab simulink partie 2
Matlab simulink partie 2Matlab simulink partie 2
Matlab simulink partie 2
 
Chap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdfChap 1 Intro Microcontroleurs et Interruptions.pdf
Chap 1 Intro Microcontroleurs et Interruptions.pdf
 
Cours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfCours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdf
 
DSP FPGA.pdf
DSP FPGA.pdfDSP FPGA.pdf
DSP FPGA.pdf
 
Rapport Projet ENSMM - programmation sur microcontrôleur
Rapport Projet ENSMM - programmation sur microcontrôleurRapport Projet ENSMM - programmation sur microcontrôleur
Rapport Projet ENSMM - programmation sur microcontrôleur
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
SDH technology
SDH technologySDH technology
SDH technology
 

Dernier

JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).FatimaEzzahra753100
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...maach1
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 

Dernier (11)

JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 

STM32 F4 (PWM,SPI And ADC Test Examples)

  • 1. STM32 F4 (PWM,SPI and ADC Test Examples) letselectronic.blogspot.com /2016/01/stm32-f4-pwmspi-and-adc-test.html STM32 F4 (PWM,SPI and ADC Test Examples) On Commence par definir ces 3 grandes protocoles électroniques : PWM La modulation de largeur d'impulsions (MLI ; en anglais : Pulse Width Modulation, soit PWM), est une technique couramment utilisée pour synthétiser des signaux continus à l'aide de circuits à fonctionnement tout ou rien, ou plus généralement à états discrets. Le principe général est qu'en appliquant une succession d'états discrets pendant des durées bien choisies, on peut obtenir en moyenne sur une certaine durée n'importe quelle valeur intermédiaire. Ce phénomène est fortement recommandé pour assurer la variation de vitesse de moteur a courant continu, aujourd'hui je vais vous démontrer comment on peut générer un signal PWM déune STM32 et visualiser son présence sur des diodes LEDs. Voici un exemple de comment on genere un signal PWM using Mikro C for ARM et STM32F4: //Let's Electronic By Aymen Lachkhem // www.letselectronic.blogspot.com // Hello in this tutoriel we are going to use 4 buttons (digital Input), the first two will increase and decrease the current duty for the // first Led and the second two will make the same thing with the other Led. unsigned int current_duty, old_duty, current_duty1, old_duty1; unsigned int pwm_period1, pwm_period2; void InitMain() { GPIO_Digital_Input (&GPIOA_BASE, _GPIO_PINMASK_3 | _GPIO_PINMASK_4 | _GPIO_PINMASK_5 1/4
  • 2. GPIO_Digital_Input (&GPIOA_BASE, _GPIO_PINMASK_3 | _GPIO_PINMASK_4 | _GPIO_PINMASK_5 | _GPIO_PINMASK_6); // configure PORTA pins as input } void main() { InitMain(); current_duty = 100; // initial value for current_duty current_duty1 = 100; // initial value for current_duty1 pwm_period1 = PWM_TIM1_Init(5000); pwm_period2 = PWM_TIM4_Init(5000); PWM_TIM1_Set_Duty(current_duty, _PWM_NON_INVERTED, _PWM_CHANNEL1); // Set current duty for PWM_TIM1 PWM_TIM4_Set_Duty(current_duty1, _PWM_NON_INVERTED, _PWM_CHANNEL2); // Set current duty for PWM_TIM4 PWM_TIM1_Start(_PWM_CHANNEL1, &_GPIO_MODULE_TIM1_CH1_PE9); PWM_TIM4_Start(_PWM_CHANNEL2, &_GPIO_MODULE_TIM4_CH2_PD13); while (1) { // endless loop if (GPIOA_IDR.B3) { // button on RA3 pressed Delay_ms(1); current_duty = current_duty + 5; // increment current_duty if (current_duty > pwm_period1) { // if we increase current_duty greater then possible pwm_period1 value current_duty = 0; // reset current_duty value to zero } PWM_TIM1_Set_Duty(current_duty, _PWM_NON_INVERTED, _PWM_CHANNEL1); // set newly acquired duty ratio } if (GPIOA_IDR.B4) { // button on RA4 pressed Delay_ms(1); current_duty = current_duty - 5; // decrement current_duty if (current_duty > pwm_period1) { // if we decrease current_duty greater then possible pwm_period1 value (overflow) current_duty = pwm_period1; // set current_duty to max possible value } PWM_TIM1_Set_Duty(current_duty, _PWM_NON_INVERTED, _PWM_CHANNEL1); // set newly acquired duty ratio } if (GPIOA_IDR.B5) { // button on RA5 pressed Delay_ms(1); current_duty1 = current_duty1 + 5; // increment current_duty if (current_duty1 > pwm_period2) { // if we increase current_duty1 greater then possible pwm_period2 value current_duty1 = 0; // reset current_duty1 value to zero } PWM_TIM4_Set_Duty(current_duty1, _PWM_NON_INVERTED, _PWM_CHANNEL2); // set newly acquired duty ratio } if (GPIOA_IDR.B6) { // button on RA6 pressed Delay_ms(1); current_duty1 = current_duty1 - 5; // decrement current_duty if (current_duty1 > pwm_period2) { // if we decrease current_duty1 greater then possible pwm_period1 value (overflow) current_duty1 = pwm_period2; // set current_duty to max possible value } PWM_TIM4_Set_Duty(current_duty1, _PWM_NON_INVERTED, _PWM_CHANNEL2); } Delay_ms(1); // slow down change pace a little } 2/4
  • 3. } } Voici une démonstration vidéo de fonctionnement : SPI Une liaison SPI (pour Serial Peripheral Interface) est un bus de données série synchrone baptisé ainsi par Motorola, qui opère en mode Full-duplex. Les circuits communiquent selon un schéma maître-esclaves, où le maître s'occupe totalement de la communication. Plusieurs esclaves peuvent coexister sur un même bus, dans ce cas, la sélection du destinataire se fait par une ligne dédiée entre le maître et l'esclave appelée chip select. Voici un exemple de comment interfacer un afficheur LCD 2X16 avec la carte STM232 en utilisant le Mikro c for ARM: //Let's Electronic By Aymen Lachkhem // www.letselectronic.blogspot.com // LCD module connections sbit LCD_RS at GPIOB_ODR.B2; sbit LCD_EN at GPIOB_ODR.B3; sbit LCD_D4 at GPIOB_ODR.B4; sbit LCD_D5 at GPIOB_ODR.B5; sbit LCD_D6 at GPIOB_ODR.B6; sbit LCD_D7 at GPIOB_ODR.B7; // End LCD module connections unsigned int adc_value; void main(){ Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF); while(1) { Lcd_Out(1, 3, "STM32 With LCD"); delay_ms(10); } } Voici une démonstration vidéo de fonctionnement : Convertisseur Analogique Numérique ADC Un convertisseur analogique-numérique (CAN, parfois convertisseur A/N), ou en anglais ADC pour (Analog to Digital Converter) ou plus simplement A/D, est un montage électronique dont la fonction est de traduire une grandeur analogique en une valeur numérique(codée sur plusieurs bits), proportionnelle au rapport entre la grandeur analogique d'entrée et la valeur maximale du signal. Le signal converti est le plus souvent une tension électrique. 3/4
  • 4. Voici un exemple de comment utiliser le protocole ADC avec la carte STM232 en utilisant le Mikro c for ARM: //Let's Electronic By Aymen Lachkhem // www.letselectronic.blogspot.com unsigned int adc_value; void main(){ adc_value = ADC1_Read(3); // read analog value from ADC1 module channel 3 while(1) { GPIOC_BASE = adc_value; delay_ms(10); } } Voici une démonstration vidéo de fonctionnement précédant juste ici on va lire la valeur analogique sur le potentiomètre et la écrire sur le comportement d'une diode LED. 4/4