void gpio_init(GPIO_TypeDef *port, uint16_t pin) {
port->MODER &= ~(0x3 << (pin * 2));
port->MODER |= (0x1 << (pin * 2));
port->OTYPER &= ~(1 << pin);
port->OSPEEDR |= (0x3 << (pin * 2));
}
static inline void spi_transfer(uint8_t *buf, size_t len) {
while (len--) {
SPI1->DR = *buf;
while (!(SPI1->SR & SPI_SR_TXE));
*buf++ = SPI1->DR;
}
}
{{ t.heroBody1 }}
{{ t.heroBody2 }}