@@ -198,6 +198,16 @@ pub enum Resistor {
198
198
PullDown ,
199
199
}
200
200
201
+ /// GPIO interrupt trigger edge selection
202
+ pub enum Edge {
203
+ /// Rising edge of voltage
204
+ Rising ,
205
+ /// Falling edge of voltage
206
+ Falling ,
207
+ /// Rising and falling edge of voltage
208
+ RisingFalling ,
209
+ }
210
+
201
211
/// Generic pin
202
212
pub struct Pin < GPIO , INDEX , MODE > {
203
213
gpio : GPIO ,
@@ -586,6 +596,7 @@ macro_rules! gpio {
586
596
GPIO : $GPIOX: ident,
587
597
gpio: $gpiox: ident,
588
598
Gpio : $Gpiox: ty,
599
+ port_index: $port_index: literal,
589
600
gpio_mapped: $gpioy: ident,
590
601
gpio_mapped_ioen: $iopxen: ident,
591
602
gpio_mapped_iorst: $iopxrst: ident,
@@ -769,7 +780,7 @@ macro_rules! gpio {
769
780
pacs: $pacs: tt,
770
781
ports: [ $(
771
782
{
772
- port: ( $X: ident/$x: ident, pac : $gpioy: ident) ,
783
+ port: ( $X: ident/$x: ident, $port_index : literal , $gpioy: ident) ,
773
784
pins: [ $(
774
785
$i: literal => {
775
786
reset: $MODE: ty,
@@ -787,6 +798,7 @@ macro_rules! gpio {
787
798
GPIO : [ <GPIO $X>] ,
788
799
gpio: [ <gpio $x>] ,
789
800
Gpio : [ <Gpio $x>] ,
801
+ port_index: $port_index,
790
802
gpio_mapped: $gpioy,
791
803
gpio_mapped_ioen: [ <iop $x en>] ,
792
804
gpio_mapped_iorst: [ <iop $x rst>] ,
@@ -802,14 +814,14 @@ macro_rules! gpio {
802
814
} ;
803
815
}
804
816
// auto-generated using codegen
805
- // STM32CubeMX DB release: DB.6.0.0
817
+ // STM32CubeMX DB release: DB.6.0.10
806
818
807
819
#[ cfg( feature = "gpio-f302" ) ]
808
820
gpio ! ( {
809
821
pacs: [ gpioa, gpiob, gpioc] ,
810
822
ports: [
811
823
{
812
- port: ( A /a, pac : gpioa) ,
824
+ port: ( A /a, 0 , gpioa) ,
813
825
pins: [
814
826
0 => { reset: Input , afr: L , af: [ 1 , 3 , 7 , 15 ] } ,
815
827
1 => { reset: Input , afr: L , af: [ 0 , 1 , 3 , 7 , 9 , 15 ] } ,
@@ -830,7 +842,7 @@ gpio!({
830
842
] ,
831
843
} ,
832
844
{
833
- port: ( B /b, pac : gpiob) ,
845
+ port: ( B /b, 1 , gpiob) ,
834
846
pins: [
835
847
0 => { reset: Input , afr: L , af: [ 3 , 6 , 15 ] } ,
836
848
1 => { reset: Input , afr: L , af: [ 3 , 6 , 8 , 15 ] } ,
@@ -851,7 +863,7 @@ gpio!({
851
863
] ,
852
864
} ,
853
865
{
854
- port: ( C /c, pac : gpioc) ,
866
+ port: ( C /c, 2 , gpioc) ,
855
867
pins: [
856
868
0 => { reset: Input , afr: L , af: [ 1 , 2 ] } ,
857
869
1 => { reset: Input , afr: L , af: [ 1 , 2 ] } ,
@@ -872,13 +884,13 @@ gpio!({
872
884
] ,
873
885
} ,
874
886
{
875
- port: ( D /d, pac : gpioc) ,
887
+ port: ( D /d, 3 , gpioc) ,
876
888
pins: [
877
889
2 => { reset: Input , afr: L , af: [ 1 ] } ,
878
890
] ,
879
891
} ,
880
892
{
881
- port: ( F /f, pac : gpioc) ,
893
+ port: ( F /f, 5 , gpioc) ,
882
894
pins: [
883
895
0 => { reset: Input , afr: L , af: [ 4 , 5 , 6 ] } ,
884
896
1 => { reset: Input , afr: L , af: [ 4 , 5 ] } ,
@@ -892,7 +904,7 @@ gpio!({
892
904
pacs: [ gpioa, gpiob, gpioc] ,
893
905
ports: [
894
906
{
895
- port: ( A /a, pac : gpioa) ,
907
+ port: ( A /a, 0 , gpioa) ,
896
908
pins: [
897
909
0 => { reset: Input , afr: L , af: [ 1 , 3 , 7 , 8 , 9 , 10 , 15 ] } ,
898
910
1 => { reset: Input , afr: L , af: [ 0 , 1 , 3 , 7 , 9 , 15 ] } ,
@@ -913,7 +925,7 @@ gpio!({
913
925
] ,
914
926
} ,
915
927
{
916
- port: ( B /b, pac : gpiob) ,
928
+ port: ( B /b, 1 , gpiob) ,
917
929
pins: [
918
930
0 => { reset: Input , afr: L , af: [ 2 , 3 , 4 , 6 , 15 ] } ,
919
931
1 => { reset: Input , afr: L , af: [ 2 , 3 , 4 , 6 , 8 , 15 ] } ,
@@ -934,7 +946,7 @@ gpio!({
934
946
] ,
935
947
} ,
936
948
{
937
- port: ( C /c, pac : gpioc) ,
949
+ port: ( C /c, 2 , gpioc) ,
938
950
pins: [
939
951
0 => { reset: Input , afr: L , af: [ 1 , 2 ] } ,
940
952
1 => { reset: Input , afr: L , af: [ 1 , 2 ] } ,
@@ -955,7 +967,7 @@ gpio!({
955
967
] ,
956
968
} ,
957
969
{
958
- port: ( D /d, pac : gpioc) ,
970
+ port: ( D /d, 3 , gpioc) ,
959
971
pins: [
960
972
0 => { reset: Input , afr: L , af: [ 1 , 7 , 12 ] } ,
961
973
1 => { reset: Input , afr: L , af: [ 1 , 4 , 6 , 7 , 12 ] } ,
@@ -976,7 +988,7 @@ gpio!({
976
988
] ,
977
989
} ,
978
990
{
979
- port: ( E /e, pac : gpioc) ,
991
+ port: ( E /e, 4 , gpioc) ,
980
992
pins: [
981
993
0 => { reset: Input , afr: L , af: [ 1 , 2 , 4 , 6 , 7 , 12 ] } ,
982
994
1 => { reset: Input , afr: L , af: [ 1 , 4 , 6 , 7 , 12 ] } ,
@@ -997,7 +1009,7 @@ gpio!({
997
1009
] ,
998
1010
} ,
999
1011
{
1000
- port: ( F /f, pac : gpioc) ,
1012
+ port: ( F /f, 5 , gpioc) ,
1001
1013
pins: [
1002
1014
0 => { reset: Input , afr: L , af: [ 1 , 4 , 5 , 6 ] } ,
1003
1015
1 => { reset: Input , afr: L , af: [ 1 , 4 , 5 ] } ,
@@ -1018,7 +1030,7 @@ gpio!({
1018
1030
] ,
1019
1031
} ,
1020
1032
{
1021
- port: ( G /g, pac : gpioc) ,
1033
+ port: ( G /g, 6 , gpioc) ,
1022
1034
pins: [
1023
1035
0 => { reset: Input , afr: L , af: [ 1 , 2 , 12 ] } ,
1024
1036
1 => { reset: Input , afr: L , af: [ 1 , 2 , 12 ] } ,
@@ -1039,7 +1051,7 @@ gpio!({
1039
1051
] ,
1040
1052
} ,
1041
1053
{
1042
- port: ( H /h, pac : gpioc) ,
1054
+ port: ( H /h, 7 , gpioc) ,
1043
1055
pins: [
1044
1056
0 => { reset: Input , afr: L , af: [ 1 , 2 , 12 ] } ,
1045
1057
1 => { reset: Input , afr: L , af: [ 1 , 2 , 12 ] } ,
@@ -1054,7 +1066,7 @@ gpio!({
1054
1066
pacs: [ gpioa, gpiob, gpioc] ,
1055
1067
ports: [
1056
1068
{
1057
- port: ( A /a, pac : gpioa) ,
1069
+ port: ( A /a, 0 , gpioa) ,
1058
1070
pins: [
1059
1071
0 => { reset: Input , afr: L , af: [ 1 , 3 , 7 , 8 , 9 , 10 , 15 ] } ,
1060
1072
1 => { reset: Input , afr: L , af: [ 0 , 1 , 3 , 7 , 9 , 15 ] } ,
@@ -1075,7 +1087,7 @@ gpio!({
1075
1087
] ,
1076
1088
} ,
1077
1089
{
1078
- port: ( B /b, pac : gpiob) ,
1090
+ port: ( B /b, 1 , gpiob) ,
1079
1091
pins: [
1080
1092
0 => { reset: Input , afr: L , af: [ 2 , 3 , 4 , 6 , 15 ] } ,
1081
1093
1 => { reset: Input , afr: L , af: [ 2 , 3 , 4 , 6 , 8 , 15 ] } ,
@@ -1096,7 +1108,7 @@ gpio!({
1096
1108
] ,
1097
1109
} ,
1098
1110
{
1099
- port: ( C /c, pac : gpioc) ,
1111
+ port: ( C /c, 2 , gpioc) ,
1100
1112
pins: [
1101
1113
0 => { reset: Input , afr: L , af: [ 1 ] } ,
1102
1114
1 => { reset: Input , afr: L , af: [ 1 ] } ,
@@ -1117,7 +1129,7 @@ gpio!({
1117
1129
] ,
1118
1130
} ,
1119
1131
{
1120
- port: ( D /d, pac : gpioc) ,
1132
+ port: ( D /d, 3 , gpioc) ,
1121
1133
pins: [
1122
1134
0 => { reset: Input , afr: L , af: [ 1 , 7 ] } ,
1123
1135
1 => { reset: Input , afr: L , af: [ 1 , 4 , 6 , 7 ] } ,
@@ -1138,7 +1150,7 @@ gpio!({
1138
1150
] ,
1139
1151
} ,
1140
1152
{
1141
- port: ( E /e, pac : gpioc) ,
1153
+ port: ( E /e, 4 , gpioc) ,
1142
1154
pins: [
1143
1155
0 => { reset: Input , afr: L , af: [ 1 , 2 , 4 , 7 ] } ,
1144
1156
1 => { reset: Input , afr: L , af: [ 1 , 4 , 7 ] } ,
@@ -1159,7 +1171,7 @@ gpio!({
1159
1171
] ,
1160
1172
} ,
1161
1173
{
1162
- port: ( F /f, pac : gpioc) ,
1174
+ port: ( F /f, 5 , gpioc) ,
1163
1175
pins: [
1164
1176
0 => { reset: Input , afr: L , af: [ 4 , 6 ] } ,
1165
1177
1 => { reset: Input , afr: L , af: [ 4 ] } ,
@@ -1178,7 +1190,7 @@ gpio!({
1178
1190
pacs: [ gpioa, gpiob, gpioc] ,
1179
1191
ports: [
1180
1192
{
1181
- port: ( A /a, pac : gpioa) ,
1193
+ port: ( A /a, 0 , gpioa) ,
1182
1194
pins: [
1183
1195
0 => { reset: Input , afr: L , af: [ 1 , 3 , 7 , 15 ] } ,
1184
1196
1 => { reset: Input , afr: L , af: [ 1 , 3 , 7 , 9 , 15 ] } ,
@@ -1199,7 +1211,7 @@ gpio!({
1199
1211
] ,
1200
1212
} ,
1201
1213
{
1202
- port: ( B /b, pac : gpiob) ,
1214
+ port: ( B /b, 1 , gpiob) ,
1203
1215
pins: [
1204
1216
0 => { reset: Input , afr: L , af: [ 2 , 3 , 6 , 15 ] } ,
1205
1217
1 => { reset: Input , afr: L , af: [ 2 , 3 , 6 , 8 , 13 , 15 ] } ,
@@ -1220,7 +1232,7 @@ gpio!({
1220
1232
] ,
1221
1233
} ,
1222
1234
{
1223
- port: ( C /c, pac : gpioc) ,
1235
+ port: ( C /c, 2 , gpioc) ,
1224
1236
pins: [
1225
1237
0 => { reset: Input , afr: L , af: [ 1 , 2 ] } ,
1226
1238
1 => { reset: Input , afr: L , af: [ 1 , 2 ] } ,
@@ -1241,13 +1253,13 @@ gpio!({
1241
1253
] ,
1242
1254
} ,
1243
1255
{
1244
- port: ( D /d, pac : gpioc) ,
1256
+ port: ( D /d, 3 , gpioc) ,
1245
1257
pins: [
1246
1258
2 => { reset: Input , afr: L , af: [ 1 , 2 ] } ,
1247
1259
] ,
1248
1260
} ,
1249
1261
{
1250
- port: ( F /f, pac : gpioc) ,
1262
+ port: ( F /f, 5 , gpioc) ,
1251
1263
pins: [
1252
1264
0 => { reset: Input , afr: L , af: [ 6 ] } ,
1253
1265
1 => { reset: Input , afr: L , af: [ ] } ,
@@ -1261,7 +1273,7 @@ gpio!({
1261
1273
pacs: [ gpioa, gpiob, gpioc, gpiod] ,
1262
1274
ports: [
1263
1275
{
1264
- port: ( A /a, pac : gpioa) ,
1276
+ port: ( A /a, 0 , gpioa) ,
1265
1277
pins: [
1266
1278
0 => { reset: Input , afr: L , af: [ 1 , 2 , 3 , 7 , 8 , 11 , 15 ] } ,
1267
1279
1 => { reset: Input , afr: L , af: [ 0 , 1 , 2 , 3 , 6 , 7 , 9 , 11 , 15 ] } ,
@@ -1282,7 +1294,7 @@ gpio!({
1282
1294
] ,
1283
1295
} ,
1284
1296
{
1285
- port: ( B /b, pac : gpiob) ,
1297
+ port: ( B /b, 1 , gpiob) ,
1286
1298
pins: [
1287
1299
0 => { reset: Input , afr: L , af: [ 2 , 3 , 5 , 10 , 15 ] } ,
1288
1300
1 => { reset: Input , afr: L , af: [ 2 , 3 , 15 ] } ,
@@ -1300,7 +1312,7 @@ gpio!({
1300
1312
] ,
1301
1313
} ,
1302
1314
{
1303
- port: ( C /c, pac : gpioc) ,
1315
+ port: ( C /c, 2 , gpioc) ,
1304
1316
pins: [
1305
1317
0 => { reset: Input , afr: L , af: [ 1 , 2 ] } ,
1306
1318
1 => { reset: Input , afr: L , af: [ 1 , 2 ] } ,
@@ -1321,7 +1333,7 @@ gpio!({
1321
1333
] ,
1322
1334
} ,
1323
1335
{
1324
- port: ( D /d, pac : gpiod) ,
1336
+ port: ( D /d, 3 , gpiod) ,
1325
1337
pins: [
1326
1338
0 => { reset: Input , afr: L , af: [ 1 , 2 , 7 ] } ,
1327
1339
1 => { reset: Input , afr: L , af: [ 1 , 2 , 7 ] } ,
@@ -1342,7 +1354,7 @@ gpio!({
1342
1354
] ,
1343
1355
} ,
1344
1356
{
1345
- port: ( E /e, pac : gpioc) ,
1357
+ port: ( E /e, 4 , gpioc) ,
1346
1358
pins: [
1347
1359
0 => { reset: Input , afr: L , af: [ 1 , 2 , 7 ] } ,
1348
1360
1 => { reset: Input , afr: L , af: [ 1 , 7 ] } ,
@@ -1363,7 +1375,7 @@ gpio!({
1363
1375
] ,
1364
1376
} ,
1365
1377
{
1366
- port: ( F /f, pac : gpioc) ,
1378
+ port: ( F /f, 5 , gpioc) ,
1367
1379
pins: [
1368
1380
0 => { reset: Input , afr: L , af: [ 4 ] } ,
1369
1381
1 => { reset: Input , afr: L , af: [ 4 ] } ,
0 commit comments