use common::gpio;
use common::nvic;
use common::i2c;
+use common::uart;
use common::usb_serial;
use common::display;
gpio::set_direction(gpio::GPIOB, 1 << 16, gpio::Direction::Output);
port::set_af(port::PORTB, 16, 1);
+ // Configure pins for UART0.
+ port::set_af(port::PORTE, 20, 4);
+ port::set_af(port::PORTE, 21, 4);
+
+ // Configure pin for the GPS's reset line.
+ gpio::set_direction(gpio::GPIOB, 1 << 1, gpio::Direction::Output);
+ port::set_af(port::PORTB, 1, 1);
+
// Configure upper right push button.
gpio::set_direction(gpio::GPIOA, 1 << 12, gpio::Direction::Input);
port::set_af(port::PORTA, 12, 1);
display.init();
display.clear();
+ // Hold GPS in reset while configuring its UART.
+ gpio::clear(gpio::GPIOB, 1);
+ systick::delay_ms(50);
+ uart::configure(uart::UART0);
+ systick::delay_ms(50);
+ gpio::set(gpio::GPIOB, 1);
+
+ nvic::enable_irq(12); // UART0
+
loop {
systick::delay_ms(1000);