Professional Documents
Culture Documents
VI IU KHIN STM32 L G
STM32 From Wikipedia STM32F10X DATASHEET STM32F10X USER MANUAL
1. Phn c nh bao gm th mc Libraries, ta ch s dng phn ny, khng c php modify, chnh sa source. 2. Phn user project : trn hnh c 1 project c to sn c tn l BASE, v sau ny nu mun to project mi ta ch cn COPY th mc BASE v RENAME n thnh tn project m bn cn lm.
BASE project c to ra vi 1 s thnh phn c xem l cn thit cho tt c cc project thng thng, v d nh GPIO v USART. USART c retarget chng ta c th hon ton s dng cc hm xut nhp C chun trong th vin stdio.h v d nh printf(), scanf(), getchar(), putchar()---> rt hu ch cho vic debug firmware. + main.c : Cha code chnh ca project + stm32f10x_it.c : Cc hm interrupt handler c khai bo trong y. + StdPeriph_Driver: Cc hm th vin ngoi vi chun ca ST (Phn ny ta ch s dng v ko c php chnh sa) + CMSIS: Cc hm th vin chun lin quan n Core ARM Cortex-M3 (Ch s dng v khng c php chnh sa) + Startup: Code Assembly cho vic startup h thng (nm trong th vin chun, ch c php sa nu thc s cm thy cn thit) + Retarget: nh ngha li cc hm xut nhp th vin stidio.h c th lm vic c vi USART1.
- nh ngha thm 1 s hm, macro tin cho vic lp trnh, v d ny ta thc hin thao tc o trng thi sng tt ca n LED, cc macro s c nh ngha nh sau (t pha trn hm main (line 45):
Khi mun thc hin o trng thi (toggle) ta c th vit theo c php sau:
LED((BitAction)(1-LED_STATUS));
trng hp ny ta set PB1 mode GPIO_Mode_Out_PP ( output push pull) - K n chng ta cn c 1 on code thc hin chc nng delay 1 khong thi gian no :
- Cui cng, chng ta add on code toggle LED vo vng loop chnh ca hm main():
Vi project c bn stm32_base.rar chng ta c th vit chng trnh chp tt n LED trong vng 5 pht. Sau khi bin dch vo load firmware vo MCU th chng trnh s in ra console dng ch Hello World v ng thi chp tt n LED trn portB PB1.