@@ -22,31 +22,49 @@ use crate::dma::{
22
22
self ,
23
23
Buffer
24
24
} ;
25
- use crate :: gpio:: gpioa:: { PA10 , PA9 } ;
26
- use crate :: gpio:: gpiob:: { PB6 , PB7 } ;
27
- use crate :: gpio:: { AltMode , OpenDrain , Output } ;
28
25
use crate :: pac:: {
29
26
i2c1:: {
30
27
RegisterBlock ,
31
28
cr2:: RD_WRN_A ,
32
29
}
33
30
} ;
34
- pub use crate :: pac:: I2C1 ;
35
31
use crate :: rcc:: Rcc ;
36
32
use crate :: time:: Hertz ;
37
33
use cast:: u8;
38
34
39
- #[ cfg( feature = "stm32l0x1" ) ]
40
- use crate :: gpio:: gpioa:: { PA13 , PA4 } ;
41
-
42
- #[ cfg( any( feature = "stm32l0x2" , feature = "stm32l0x3" ) ) ]
35
+ // I/O Imports
36
+ use crate :: gpio:: { AltMode , OpenDrain , Output } ;
37
+ #[ cfg( feature = "io-STM32L021" ) ]
38
+ use crate :: {
39
+ gpio:: {
40
+ gpioa:: { PA4 , PA9 , PA10 , PA13 } ,
41
+ gpiob:: { PB6 , PB7 , PB8 } ,
42
+ } ,
43
+ pac:: I2C1 ,
44
+ } ;
45
+ #[ cfg( feature = "io-STM32L031" ) ]
46
+ use crate :: {
47
+ gpio:: {
48
+ gpioa:: { PA9 , PA10 } ,
49
+ gpiob:: { PB6 , PB7 , PB8 , PB9 } ,
50
+ } ,
51
+ pac:: I2C1 ,
52
+ } ;
53
+ #[ cfg( feature = "io-STM32L051" ) ]
54
+ use crate :: {
55
+ gpio:: {
56
+ gpiob:: { PB6 , PB7 , PB8 , PB9 , PB10 , PB11 , PB13 , PB14 } ,
57
+ } ,
58
+ pac:: { I2C1 , I2C2 } ,
59
+ } ;
60
+ #[ cfg( feature = "io-STM32L071" ) ]
43
61
use crate :: {
44
62
gpio:: {
45
- gpioa:: PA8 ,
46
- gpiob:: { PB10 , PB11 , PB13 , PB14 , PB4 , PB8 , PB9 } ,
47
- gpioc:: { PC0 , PC1 } ,
63
+ gpioa:: { PA8 , PA9 , PA10 } ,
64
+ gpiob:: { PB4 , PB6 , PB7 , PB8 , PB9 , PB10 , PB11 , PB13 , PB14 } ,
65
+ gpioc:: { PC0 , PC1 , PC9 } ,
48
66
} ,
49
- pac:: { I2C2 , I2C3 } ,
67
+ pac:: { I2C1 , I2C2 , I2C3 } ,
50
68
} ;
51
69
52
70
/// I2C abstraction
@@ -488,32 +506,71 @@ macro_rules! i2c {
488
506
} ;
489
507
}
490
508
491
- #[ cfg( feature = "stm32l0x1" ) ]
509
+
510
+ #[ cfg( feature = "io-STM32L021" ) ]
492
511
i2c ! (
493
- I2C1 ,
494
- i2c1en,
495
- i2c1rst,
512
+ I2C1 , i2c1en, i2c1rst,
496
513
sda: [
497
- ( PB7 <Output <OpenDrain >>, AltMode :: AF1 ) ,
498
- ( PA10 <Output <OpenDrain >>, AltMode :: AF6 ) ,
514
+ ( PA10 <Output <OpenDrain >>, AltMode :: AF1 ) ,
499
515
( PA13 <Output <OpenDrain >>, AltMode :: AF3 ) ,
516
+ ( PB7 <Output <OpenDrain >>, AltMode :: AF1 ) ,
500
517
] ,
501
518
scl: [
502
- ( PB6 <Output <OpenDrain >>, AltMode :: AF1 ) ,
503
- ( PA9 <Output <OpenDrain >>, AltMode :: AF6 ) ,
504
519
( PA4 <Output <OpenDrain >>, AltMode :: AF3 ) ,
520
+ ( PA9 <Output <OpenDrain >>, AltMode :: AF1 ) ,
521
+ ( PB6 <Output <OpenDrain >>, AltMode :: AF1 ) ,
522
+ ( PB8 <Output <OpenDrain >>, AltMode :: AF4 ) ,
523
+ ] ,
524
+ ) ;
525
+
526
+ #[ cfg( feature = "io-STM32L031" ) ]
527
+ i2c ! (
528
+ I2C1 , i2c1en, i2c1rst,
529
+ sda: [
530
+ ( PA10 <Output <OpenDrain >>, AltMode :: AF1 ) ,
531
+ ( PB7 <Output <OpenDrain >>, AltMode :: AF1 ) ,
532
+ ( PB9 <Output <OpenDrain >>, AltMode :: AF4 ) ,
533
+ ] ,
534
+ scl: [
535
+ ( PA9 <Output <OpenDrain >>, AltMode :: AF1 ) ,
536
+ ( PB6 <Output <OpenDrain >>, AltMode :: AF1 ) ,
537
+ ( PB8 <Output <OpenDrain >>, AltMode :: AF4 ) ,
538
+ ] ,
539
+ ) ;
540
+
541
+ #[ cfg( feature = "io-STM32L051" ) ]
542
+ i2c ! (
543
+ I2C1 , i2c1en, i2c1rst,
544
+ sda: [
545
+ ( PB7 <Output <OpenDrain >>, AltMode :: AF1 ) ,
546
+ ( PB9 <Output <OpenDrain >>, AltMode :: AF4 ) ,
547
+ ] ,
548
+ scl: [
549
+ ( PB6 <Output <OpenDrain >>, AltMode :: AF1 ) ,
550
+ ( PB8 <Output <OpenDrain >>, AltMode :: AF4 ) ,
551
+ ] ,
552
+ ) ;
553
+
554
+ #[ cfg( feature = "io-STM32L051" ) ]
555
+ i2c ! (
556
+ I2C2 , i2c2en, i2c2rst,
557
+ sda: [
558
+ ( PB11 <Output <OpenDrain >>, AltMode :: AF6 ) ,
559
+ ( PB14 <Output <OpenDrain >>, AltMode :: AF5 ) ,
560
+ ] ,
561
+ scl: [
562
+ ( PB10 <Output <OpenDrain >>, AltMode :: AF6 ) ,
563
+ ( PB13 <Output <OpenDrain >>, AltMode :: AF5 ) ,
505
564
] ,
506
565
) ;
507
566
508
- #[ cfg( any ( feature = "stm32l0x2" , feature = "stm32l0x3" ) ) ]
567
+ #[ cfg( feature = "io-STM32L071" ) ]
509
568
i2c ! (
510
- I2C1 ,
511
- i2c1en,
512
- i2c1rst,
569
+ I2C1 , i2c1en, i2c1rst,
513
570
sda: [
514
571
( PA10 <Output <OpenDrain >>, AltMode :: AF6 ) ,
515
- ( PB7 <Output <OpenDrain >>, AltMode :: AF1 ) ,
516
- ( PB9 <Output <OpenDrain >>, AltMode :: AF4 ) ,
572
+ ( PB7 <Output <OpenDrain >>, AltMode :: AF1 ) ,
573
+ ( PB9 <Output <OpenDrain >>, AltMode :: AF4 ) ,
517
574
] ,
518
575
scl: [
519
576
( PA9 <Output <OpenDrain >>, AltMode :: AF6 ) ,
@@ -522,11 +579,9 @@ i2c!(
522
579
] ,
523
580
) ;
524
581
525
- #[ cfg( any ( feature = "stm32l0x2" , feature = "stm32l0x3" ) ) ]
582
+ #[ cfg( feature = "io-STM32L071" ) ]
526
583
i2c ! (
527
- I2C2 ,
528
- i2c2en,
529
- i2c2rst,
584
+ I2C2 , i2c2en, i2c2rst,
530
585
sda: [
531
586
( PB11 <Output <OpenDrain >>, AltMode :: AF6 ) ,
532
587
( PB14 <Output <OpenDrain >>, AltMode :: AF5 ) ,
@@ -537,22 +592,20 @@ i2c!(
537
592
] ,
538
593
) ;
539
594
540
- #[ cfg( any ( feature = "stm32l0x2" , feature = "stm32l0x3" ) ) ]
595
+ #[ cfg( feature = "io-STM32L071" ) ]
541
596
i2c ! (
542
- I2C3 ,
543
- i2c3en,
544
- i2c3rst,
597
+ I2C3 , i2c3en, i2c3rst,
545
598
sda: [
546
599
( PB4 <Output <OpenDrain >>, AltMode :: AF7 ) ,
547
600
( PC1 <Output <OpenDrain >>, AltMode :: AF7 ) ,
601
+ ( PC9 <Output <OpenDrain >>, AltMode :: AF7 ) ,
548
602
] ,
549
603
scl: [
550
604
( PA8 <Output <OpenDrain >>, AltMode :: AF7 ) ,
551
605
( PC0 <Output <OpenDrain >>, AltMode :: AF7 ) ,
552
606
] ,
553
607
) ;
554
608
555
-
556
609
/// Token used for DMA transfers
557
610
///
558
611
/// This is an implementation detail. The user doesn't have to deal with this
0 commit comments