1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #include <stdint.h>
- #include <string.h>
- #include "em_device.h"
- #include "em_chip.h"
- #include "em_cmu.h"
- #include "em_gpio.h"
- #include "em_usart.h"
- #include "efm32gg11_hal.h"
- //make flashing device lock bootloader
- //const uint32_t __attribute__((section (".debug_lock"))) user_lock_word[1] = {0xFFFFFFFD};
- void platform_init(void)
- {
- CHIP_Init();
-
- CMU_HFXOInit_TypeDef hfxoInit = CMU_HFXOINIT_EXTERNAL_CLOCK;
- CMU_HFXOInit(&hfxoInit);
- CMU_ClockSelectSet(cmuClock_HF, cmuSelect_HFXO);
- CMU_OscillatorEnable(cmuOsc_HFRCO, false, false);
-
- CMU_ClockEnable(cmuClock_GPIO, true);
- CMU_ClockEnable(cmuClock_USART1, true);
- }
- void init_uart(void)
- {
- GPIO_PinModeSet(gpioPortE, 10, gpioModePushPull, 1); //PE10 = Tx
- GPIO_PinModeSet(gpioPortE, 11, gpioModeInput, 0); //PE11 = RX
-
- #error "Unfinished HAL - need to enable IO pin mux here"
-
- USART_InitAsync_TypeDef init = USART_INITASYNC_DEFAULT;
- init.baudrate = 38400;
- init.refFreq = 7.3728E6;
-
- USART_InitAsync(USART0, &init);
- }
- void putch(char c)
- {
- USART_Tx(USART0, c);
- }
- char getch(void)
- {
- return USART_Rx(USART0);
- }
- void trigger_setup(void)
- {
- GPIO_PinModeSet(gpioPortB, 8, gpioModePushPull, 0);
- }
- void trigger_low(void)
- {
- GPIO_PinOutClear(gpioPortB, 8);
- }
- void trigger_high(void)
- {
- GPIO_PinOutSet(gpioPortB, 8);
- }
|