use stm32f4xx_hal::{
adc::Adc,
hal::{self, blocking::spi::Transfer, digital::v2::OutputPin},
gpio::{
AF5, Alternate, Analog, Floating, Input,
gpioa::*,
gpiob::*,
gpioc::*,
gpiod::*,
gpioe::*,
gpiof::*,
gpiog::*,
GpioExt,
Output, PushPull,
Speed::VeryHigh,
},
otg_fs::USB,
rcc::Clocks,
pwm::{self, PwmChannels},
spi::{Spi, NoMiso},
stm32::{
ADC1,
GPIOA, GPIOB, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG,
OTG_FS_GLOBAL, OTG_FS_DEVICE, OTG_FS_PWRCLK,
SPI2, SPI4, SPI5,
TIM1, TIM3,
},
time::U32Ext,
};
use stm32_eth::EthPins;
use crate::{
channel::{Channel0, Channel1},
leds::Leds,
};
pub type EthernetPins = EthPins<
PA1>,
PA2>,
PC1>,
PA7>,
PB11>,
PG13>,
PB13>,
PC4>,
PC5>,
>;
pub trait ChannelPins {
type DacSpi: Transfer;
type DacSync: OutputPin;
type Shdn: OutputPin;
type VRefPin;
type ItecPin;
type DacFeedbackPin;
type TecUMeasPin;
}
impl ChannelPins for Channel0 {
type DacSpi = Dac0Spi;
type DacSync = PE4