tinygo/src/machine/board_stm32f469disco.go
2022-02-28 10:19:26 +01:00

80 строки
1,3 КиБ
Go

//go:build stm32f469disco
// +build stm32f469disco
package machine
import (
"device/stm32"
"runtime/interrupt"
)
const (
LED = LED_BUILTIN
LED1 = LED_GREEN
LED2 = LED_ORANGE
LED3 = LED_RED
LED4 = LED_BLUE
LED_BUILTIN = LED_GREEN
LED_GREEN = PG6
LED_ORANGE = PD4
LED_RED = PD5
LED_BLUE = PK3
)
const (
BUTTON = PA0
)
// UART pins
const (
UART_TX_PIN = PB10
UART_RX_PIN = PB11
)
var (
UART3 = &_UART3
_UART3 = UART{
Buffer: NewRingBuffer(),
Bus: stm32.USART3,
TxAltFuncSelector: AF7_USART1_2_3,
RxAltFuncSelector: AF7_USART1_2_3,
}
DefaultUART = UART3
)
// set up RX IRQ handler. Follow similar pattern for other UARTx instances
func init() {
UART3.Interrupt = interrupt.New(stm32.IRQ_USART3, _UART3.handleInterrupt)
}
// SPI pins
const (
SPI1_SCK_PIN = PA5
SPI1_SDI_PIN = PA6
SPI1_SDO_PIN = PA7
SPI0_SCK_PIN = SPI1_SCK_PIN
SPI0_SDI_PIN = SPI1_SDI_PIN
SPI0_SDO_PIN = SPI1_SDO_PIN
)
// Since the first interface is named SPI1, both SPI0 and SPI1 refer to SPI1.
// TODO: implement SPI2 and SPI3.
var (
SPI0 = SPI{
Bus: stm32.SPI1,
AltFuncSelector: AF5_SPI1_SPI2,
}
SPI1 = &SPI0
)
const (
I2C0_SCL_PIN = PB6
I2C0_SDA_PIN = PB9
)
var (
I2C0 = &I2C{
Bus: stm32.I2C1,
AltFuncSelector: AF4_I2C1_2_3,
}
)