tinygo/src/machine/board_bluepill.go
2022-12-19 23:20:11 +01:00

110 строки
1,4 КиБ
Go

//go:build bluepill
package machine
import (
"device/stm32"
"runtime/interrupt"
)
// Pins printed on the silkscreen
const (
C13 = PC13
C14 = PC14
C15 = PC15
A0 = PA0
A1 = PA1
A2 = PA2
A3 = PA3
A4 = PA4
A5 = PA5
A6 = PA6
A7 = PA7
B0 = PB0
B1 = PB1
B10 = PB10
B11 = PB11
B12 = PB12
B13 = PB13
B14 = PB14
B15 = PB15
A8 = PA8
A9 = PA9
A10 = PA10
A11 = PA11
A12 = PA12
A13 = PA13
A14 = PA14
A15 = PA15
B3 = PB3
B4 = PB4
B5 = PB5
B6 = PB6
B7 = PB7
B8 = PB8
B9 = PB9
)
// Analog Pins
const (
ADC0 = PA0
ADC1 = PA1
ADC2 = PA2
ADC3 = PA3
ADC4 = PA4
ADC5 = PA5
ADC6 = PA6
ADC7 = PA7
ADC8 = PB0
ADC9 = PB1
)
const (
// This board does not have a user button, so
// use first GPIO pin by default
BUTTON = PA0
LED = PC13
)
var DefaultUART = UART1
// UART pins
const (
UART_TX_PIN = PA9
UART_RX_PIN = PA10
UART_ALT_TX_PIN = PB6
UART_ALT_RX_PIN = PB7
)
var (
// USART1 is the first hardware serial port on the STM32.
UART1 = &_UART1
_UART1 = UART{
Buffer: NewRingBuffer(),
Bus: stm32.USART1,
}
UART2 = &_UART2
_UART2 = UART{
Buffer: NewRingBuffer(),
Bus: stm32.USART2,
}
)
func init() {
UART1.Interrupt = interrupt.New(stm32.IRQ_USART1, _UART1.handleInterrupt)
UART2.Interrupt = interrupt.New(stm32.IRQ_USART2, _UART2.handleInterrupt)
}
// SPI pins
const (
SPI0_SCK_PIN = PA5
SPI0_SDO_PIN = PA7
SPI0_SDI_PIN = PA6
)
// I2C pins
const (
I2C0_SDA_PIN = PB7
I2C0_SCL_PIN = PB6
)