1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
use crate::gpio::{gpioa, gpiob, AltMode, Analog};
pub trait Pin {
fn into_mco(self);
}
impl Pin for gpioa::PA8<Analog> {
fn into_mco(self) {
self.set_alt_mode(AltMode::AF0);
}
}
impl Pin for gpioa::PA9<Analog> {
fn into_mco(self) {
self.set_alt_mode(AltMode::AF0);
}
}
impl Pin for gpiob::PB13<Analog> {
fn into_mco(self) {
self.set_alt_mode(AltMode::AF2);
}
}
impl<P1, P2> Pin for (P1, P2)
where
P1: Pin,
P2: Pin,
{
fn into_mco(self) {
self.0.into_mco();
self.1.into_mco();
}
}
impl<P1, P2, P3> Pin for (P1, P2, P3)
where
P1: Pin,
P2: Pin,
P3: Pin,
{
fn into_mco(self) {
self.0.into_mco();
self.1.into_mco();
self.2.into_mco();
}
}