phs fan
/
PHSShield_F405hack
Hack STM32F405 on the PHS Shield
MCU_SWD
1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|
SWCLK | GND | SWDIO | RESET | JTDO |
MCU_UART
1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|
RX | TX | GND |
main.cpp@0:90cbfc14fcb7, 2015-05-11 (annotated)
- Committer:
- phsfan
- Date:
- Mon May 11 15:15:44 2015 +0000
- Revision:
- 0:90cbfc14fcb7
1st build;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
phsfan | 0:90cbfc14fcb7 | 1 | /* |
phsfan | 0:90cbfc14fcb7 | 2 | * select: Nucleo F401RE |
phsfan | 0:90cbfc14fcb7 | 3 | */ |
phsfan | 0:90cbfc14fcb7 | 4 | #include "mbed.h" |
phsfan | 0:90cbfc14fcb7 | 5 | |
phsfan | 0:90cbfc14fcb7 | 6 | Serial pc(PB_6, PB_7); |
phsfan | 0:90cbfc14fcb7 | 7 | |
phsfan | 0:90cbfc14fcb7 | 8 | Serial phs(PA_2, PA_3); |
phsfan | 0:90cbfc14fcb7 | 9 | DigitalOut rts(PA_1); |
phsfan | 0:90cbfc14fcb7 | 10 | DigitalIn cts(PA_0); |
phsfan | 0:90cbfc14fcb7 | 11 | |
phsfan | 0:90cbfc14fcb7 | 12 | DigitalOut led1(PC_6), led2(PC_7); |
phsfan | 0:90cbfc14fcb7 | 13 | DigitalOut pwr1(PC_9); |
phsfan | 0:90cbfc14fcb7 | 14 | DigitalIn pwr2(PA_8); |
phsfan | 0:90cbfc14fcb7 | 15 | |
phsfan | 0:90cbfc14fcb7 | 16 | |
phsfan | 0:90cbfc14fcb7 | 17 | int main() { |
phsfan | 0:90cbfc14fcb7 | 18 | pc.baud(115200); |
phsfan | 0:90cbfc14fcb7 | 19 | phs.baud(120000); |
phsfan | 0:90cbfc14fcb7 | 20 | pwr1 = 0; // DCDC enable |
phsfan | 0:90cbfc14fcb7 | 21 | pwr2.mode(PullUp); |
phsfan | 0:90cbfc14fcb7 | 22 | GPIOB->MODER = (GPIOB->MODER & ~(3<<22)) | (1<<22); // PB_11 output |
phsfan | 0:90cbfc14fcb7 | 23 | GPIOB->OTYPER = (1<<11); // open drain |
phsfan | 0:90cbfc14fcb7 | 24 | GPIOB->ODR &= ~(1<<11); // reser=0 |
phsfan | 0:90cbfc14fcb7 | 25 | // phs.set_flow_control(Serial::RTSCTS, PA_1, PA_0); |
phsfan | 0:90cbfc14fcb7 | 26 | cts.mode(PullUp); |
phsfan | 0:90cbfc14fcb7 | 27 | rts = 0; |
phsfan | 0:90cbfc14fcb7 | 28 | wait_ms(100); |
phsfan | 0:90cbfc14fcb7 | 29 | GPIOB->MODER &= ~(3<<22); // PB_11 input |
phsfan | 0:90cbfc14fcb7 | 30 | GPIOB->PUPDR = (GPIOB->MODER & ~(3<<22)) | (1<<22); // pullup |
phsfan | 0:90cbfc14fcb7 | 31 | |
phsfan | 0:90cbfc14fcb7 | 32 | pc.printf("*** PHSShield STM32F405\r\n"); |
phsfan | 0:90cbfc14fcb7 | 33 | |
phsfan | 0:90cbfc14fcb7 | 34 | for (;;) { |
phsfan | 0:90cbfc14fcb7 | 35 | if (phs.readable()) { |
phsfan | 0:90cbfc14fcb7 | 36 | pc.putc(phs.getc()); |
phsfan | 0:90cbfc14fcb7 | 37 | } |
phsfan | 0:90cbfc14fcb7 | 38 | if (pc.readable()) { |
phsfan | 0:90cbfc14fcb7 | 39 | phs.putc(pc.getc()); |
phsfan | 0:90cbfc14fcb7 | 40 | } |
phsfan | 0:90cbfc14fcb7 | 41 | led2 = cts; |
phsfan | 0:90cbfc14fcb7 | 42 | } |
phsfan | 0:90cbfc14fcb7 | 43 | } |