Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
lwc
/
compare
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Pipelines
Members
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d4fb65b1
authored
Jul 09, 2019
by
Enrico Pozzobon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
blackpill template builds
parent
cac7c7a9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
319 additions
and
297 deletions
+319
-297
compile_all.py
+8
-4
templates/blackpill/Src/main.c
+311
-293
No files found.
compile_all.py
View file @
d4fb65b1
...
...
@@ -8,7 +8,7 @@ import random
import
subprocess
def
build
(
algo_dir
,
template_dir
=
"templates/linux"
):
def
build
(
algo_dir
,
template_dir
):
# create a new directory for the build
build_dir
=
None
while
build_dir
is
None
:
...
...
@@ -131,8 +131,8 @@ def main(argv):
# For testing, we only do the first
files
=
files
[:
1
]
# For testing, we only do the first
5
files
=
files
[:
5
]
# Clear the build directory as it is a leftover from the previous execution
if
os
.
path
.
isdir
(
'build'
):
...
...
@@ -148,11 +148,15 @@ def main(argv):
for
t
,
d
in
files
:
print
()
print
(
d
)
b
=
build
(
d
)
b
=
build
(
d
,
template_dir
)
test_script
.
write
(
"./test.py
%
s
%
s
\n
"
%
(
t
,
os
.
path
.
join
(
b
,
'test'
)))
st
=
os
.
stat
(
test_script_path
)
os
.
chmod
(
test_script_path
,
st
.
st_mode
|
stat
.
S_IEXEC
)
print
()
print
()
print
(
"Now execute '
%
s ' to start the test"
%
test_script_path
)
if
__name__
==
"__main__"
:
sys
.
exit
(
main
(
sys
.
argv
))
templates/blackpill/Src/main.c
View file @
d4fb65b1
...
...
@@ -44,32 +44,21 @@
#include "crypto_aead.h"
#include "api.h"
#ifndef KEY_LENGTH
#define KEY_LENGTH 16
#endif
#define MAX_LEN 1400
#ifndef NSEC_LENGTH
#define NSEC_LENGTH 0
#endif
#ifndef NPUB_LENGTH
#define NPUB_LENGTH 0
#endif
unsigned
char
c
[
1400
];
unsigned
char
c
[
MAX_LEN
];
unsigned
long
long
clen
=
0
;
unsigned
char
m
[
1400
];
unsigned
char
m
[
MAX_LEN
];
unsigned
long
long
mlen
=
0
;
unsigned
char
ad
[
1400
];
unsigned
char
ad
[
MAX_LEN
];
unsigned
long
long
adlen
=
0
;
unsigned
char
nsec
[
512
];
unsigned
long
long
nslen
=
NSEC_LENGTH
;
unsigned
char
npub
[
512
]
;
unsigned
long
long
nplen
=
NPUB_LENGTH
;
unsigned
char
k
[
512
]
;
unsigned
long
long
klen
=
KEY_LENGTH
;
unsigned
char
rcv
;
unsigned
char
nsec
[
CRYPTO_NSECBYTES
]
;
const
unsigned
long
long
nslen
=
CRYPTO_NSECBYTES
;
unsigned
char
npub
[
CRYPTO_NPUBBYTES
]
;
const
unsigned
long
long
nplen
=
CRYPTO_NPUBBYTES
;
unsigned
char
k
[
CRYPTO_KEYBYTES
]
;
const
unsigned
long
long
klen
=
CRYPTO_KEYBYTES
;
/* Private function prototypes -----------------------------------------------*/
void
SystemClock_Config
(
void
);
...
...
@@ -78,296 +67,325 @@ static void MX_USART1_UART_Init(void);
static
void
read_variable_serial
(
unsigned
char
action
);
static
void
write_variable_serial
(
unsigned
char
target
[],
unsigned
long
long
len
);
static
void
read_variable_serial
(
unsigned
char
action
){
uint32_t
len
;
for
(
int
i
=
3
;
i
>=
0
;
i
--
)
{
while
(
LL_USART_IsActiveFlag_RXNE
(
USART1
));
rcv
=
LL_USART_ReceiveData8
(
USART1
);
len
|=
(
uint32_t
)
rcv
<<
i
*
8
;
}
for
(
int
i
=
0
;
i
<
len
;
i
++
)
{
while
(
LL_USART_IsActiveFlag_RXNE
(
USART1
));
rcv
=
LL_USART_ReceiveData8
(
USART1
);
// Implement all cases or use another concept at all
switch
(
action
)
{
case
'k'
:
k
[
i
]
=
rcv
;
break
;
default
:
return
-
1
:
}
}
static
void
read_serial
(
void
*
dst
,
unsigned
int
len
)
{
unsigned
char
*
buf
=
dst
;
for
(
int
i
=
0
;
i
<
len
;
i
++
)
{
while
(
LL_USART_IsActiveFlag_RXNE
(
USART1
));
buf
[
i
]
=
LL_USART_ReceiveData8
(
USART1
);
}
}
static
void
write_serial
(
const
void
*
src
,
unsigned
int
len
)
{
const
unsigned
char
*
buf
=
src
;
for
(
int
i
=
0
;
i
<
len
;
i
++
)
{
while
(
!
LL_USART_IsActiveFlag_TXE
(
USART1
));
LL_USART_TransmitData8
(
USART1
,
buf
[
i
]);
}
}
static
void
read_variable_serial
(
unsigned
char
action
)
{
uint32_t
len
;
read_serial
(
&
len
,
sizeof
(
len
));
switch
(
action
)
{
case
'k'
:
while
(
len
!=
CRYPTO_KEYBYTES
);
read_serial
(
k
,
len
);
break
;
case
'p'
:
while
(
len
!=
CRYPTO_NPUBBYTES
);
read_serial
(
k
,
len
);
break
;
case
's'
:
while
(
len
!=
CRYPTO_NSECBYTES
);
read_serial
(
k
,
len
);
break
;
case
'a'
:
while
(
len
>
MAX_LEN
);
adlen
=
len
;
read_serial
(
ad
,
len
);
break
;
case
'm'
:
while
(
len
>
MAX_LEN
);
mlen
=
len
;
read_serial
(
m
,
len
);
break
;
case
'c'
:
while
(
len
>
MAX_LEN
);
clen
=
len
;
read_serial
(
c
,
len
);
break
;
default:
for
(;;);
}
}
static
void
write_variable_serial
(
unsigned
char
target
[],
unsigned
long
long
len
)
{
write_serial
(
&
len
,
sizeof
(
len
));
write_serial
(
target
,
len
);
}
int
main
(
void
)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_AFIO
);
LL_APB1_GRP1_EnableClock
(
LL_APB1_GRP1_PERIPH_PWR
);
NVIC_SetPriorityGrouping
(
NVIC_PRIORITYGROUP_4
);
/* System interrupt init*/
/**NOJTAG: JTAG-DP Disabled and SW-DP Enabled
*/
LL_GPIO_AF_Remap_SWJ_NOJTAG
();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config
();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init
();
MX_USART1_UART_Init
();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
unsigned
char
rcv
;
int
res
;
while
(
1
)
{
read_serial
(
&
rcv
,
sizeof
(
rcv
));
switch
(
rcv
)
{
case
'c'
:
case
'm'
:
case
'a'
:
case
'k'
:
case
's'
:
case
'p'
:
read_variable_serial
(
rcv
);
break
;
case
'C'
:
write_variable_serial
(
c
,
clen
);
break
;
case
'M'
:
write_variable_serial
(
m
,
mlen
);
break
;
case
'A'
:
write_variable_serial
(
ad
,
adlen
);
break
;
case
'K'
:
write_variable_serial
(
k
,
klen
);
break
;
case
'S'
:
write_variable_serial
(
nsec
,
nslen
);
break
;
case
'P'
:
write_variable_serial
(
npub
,
nplen
);
break
;
case
'd'
:
res
=
crypto_aead_decrypt
(
m
,
&
mlen
,
nsec
,
c
,
clen
,
ad
,
adlen
,
npub
,
k
);
break
;
case
'e'
:
res
=
crypto_aead_encrypt
(
c
,
&
clen
,
m
,
mlen
,
ad
,
adlen
,
nsec
,
npub
,
k
);
break
;
default:
return
2
;
}
/* USER CODE END WHILE */
}
}
static
void
write_variable_serial
(
unsigned
char
target
[],
unsigned
long
long
len
)
{
unsigned
char
trm
;
for
(
int
i
=
3
;
i
>=
0
;
i
--
)
{
trm
=
(
uint8_t
)
len
>>
i
*
8
;
while
(
!
LL_USART_IsActiveFlag_TXE
(
USART1
));
LL_USART_TransmitData8
(
USART1
,
trm
);
}
for
(
int
i
=
0
;
i
<
len
;
i
++
)
{
while
(
!
LL_USART_IsActiveFlag_TXE
(
USART1
));
LL_USART_TransmitData8
(
USART1
,
target
[
i
]);
}
/**
* @brief System Clock Configuration
* @retval None
*/
void
SystemClock_Config
(
void
)
{
LL_FLASH_SetLatency
(
LL_FLASH_LATENCY_1
);
if
(
LL_FLASH_GetLatency
()
!=
LL_FLASH_LATENCY_1
)
{
Error_Handler
();
}
LL_RCC_HSI_SetCalibTrimming
(
16
);
LL_RCC_HSI_Enable
();
/* Wait till HSI is ready */
while
(
LL_RCC_HSI_IsReady
()
!=
1
)
{
}
LL_RCC_PLL_ConfigDomain_SYS
(
LL_RCC_PLLSOURCE_HSI_DIV_2
,
LL_RCC_PLL_MUL_12
);
LL_RCC_PLL_Enable
();
/* Wait till PLL is ready */
while
(
LL_RCC_PLL_IsReady
()
!=
1
)
{
}
LL_RCC_SetAHBPrescaler
(
LL_RCC_SYSCLK_DIV_1
);
LL_RCC_SetAPB1Prescaler
(
LL_RCC_APB1_DIV_2
);
LL_RCC_SetAPB2Prescaler
(
LL_RCC_APB2_DIV_1
);
LL_RCC_SetSysClkSource
(
LL_RCC_SYS_CLKSOURCE_PLL
);
/* Wait till System clock is ready */
while
(
LL_RCC_GetSysClkSource
()
!=
LL_RCC_SYS_CLKSOURCE_STATUS_PLL
)
{
}
LL_Init1msTick
(
48000000
);
LL_SYSTICK_SetClkSource
(
LL_SYSTICK_CLKSOURCE_HCLK
);
LL_SetSystemCoreClock
(
48000000
);
}
}
/**
* @brief USART1 Initialization Function
* @param None
* @retval None
*/
static
void
MX_USART1_UART_Init
(
void
)
{
/* USER CODE BEGIN USART1_Init 0 */
int
main
(
void
)
{
/* USER CODE BEGIN 1 */
/* USER CODE END USART1_Init 0 */
/* USER CODE END 1 */
LL_USART_InitTypeDef
USART_InitStruct
=
{
0
};
/* MCU Configuration--------------------------------------------------------*/
LL_GPIO_InitTypeDef
GPIO_InitStruct
=
{
0
};
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
/* Peripheral clock enable */
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_USART1
);
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_GPIOA
);
/**USART1 GPIO Configuration
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_9
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_ALTERNATE
;
GPIO_InitStruct
.
Speed
=
LL_GPIO_SPEED_FREQ_HIGH
;
GPIO_InitStruct
.
OutputType
=
LL_GPIO_OUTPUT_PUSHPULL
;
LL_GPIO_Init
(
GPIOA
,
&
GPIO_InitStruct
);
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_AFIO
);
LL_APB1_GRP1_EnableClock
(
LL_APB1_GRP1_PERIPH_PWR
);
NVIC_SetPriorityGrouping
(
NVIC_PRIORITYGROUP_4
);
/* System interrupt init*/
/**NOJTAG: JTAG-DP Disabled and SW-DP Enabled
*/
LL_GPIO_AF_Remap_SWJ_NOJTAG
();
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_10
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_FLOATING
;
LL_GPIO_Init
(
GPIOA
,
&
GPIO_InitStruct
);
/* USER CODE BEGIN Init
*/
/* USER CODE BEGIN USART1_Init 1
*/
/* USER CODE END Init */
/* USER CODE END USART1_Init 1 */
USART_InitStruct
.
BaudRate
=
115200
;
USART_InitStruct
.
DataWidth
=
LL_USART_DATAWIDTH_8B
;
USART_InitStruct
.
StopBits
=
LL_USART_STOPBITS_1
;
USART_InitStruct
.
Parity
=
LL_USART_PARITY_NONE
;
USART_InitStruct
.
TransferDirection
=
LL_USART_DIRECTION_TX_RX
;
USART_InitStruct
.
HardwareFlowControl
=
LL_USART_HWCONTROL_NONE
;
LL_USART_Init
(
USART1
,
&
USART_InitStruct
);
LL_USART_ConfigAsyncMode
(
USART1
);
LL_USART_Enable
(
USART1
);
/* USER CODE BEGIN USART1_Init 2 */
/* Configure the system clock */
SystemClock_Config
();
/* USER CODE END USART1_Init 2 */
/* USER CODE BEGIN SysInit */
}
/* USER CODE END SysInit */
/**
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static
void
MX_GPIO_Init
(
void
)
{
LL_GPIO_InitTypeDef
GPIO_InitStruct
=
{
0
};
/* GPIO Ports Clock Enable */
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_GPIOC
);
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_GPIOD
);
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_GPIOA
);
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_GPIOB
);
/**/
LL_GPIO_ResetOutputPin
(
GPIOB
,
LL_GPIO_PIN_12
);
/**/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_13
|
LL_GPIO_PIN_14
|
LL_GPIO_PIN_15
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_ANALOG
;
LL_GPIO_Init
(
GPIOC
,
&
GPIO_InitStruct
);
/**/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_0
|
LL_GPIO_PIN_1
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_ANALOG
;
LL_GPIO_Init
(
GPIOD
,
&
GPIO_InitStruct
);
/**/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_0
|
LL_GPIO_PIN_1
|
LL_GPIO_PIN_2
|
LL_GPIO_PIN_3
|
LL_GPIO_PIN_4
|
LL_GPIO_PIN_5
|
LL_GPIO_PIN_6
|
LL_GPIO_PIN_7
|
LL_GPIO_PIN_8
|
LL_GPIO_PIN_11
|
LL_GPIO_PIN_12
|
LL_GPIO_PIN_15
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_ANALOG
;
LL_GPIO_Init
(
GPIOA
,
&
GPIO_InitStruct
);
/**/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_0
|
LL_GPIO_PIN_1
|
LL_GPIO_PIN_2
|
LL_GPIO_PIN_10
|
LL_GPIO_PIN_11
|
LL_GPIO_PIN_13
|
LL_GPIO_PIN_14
|
LL_GPIO_PIN_15
|
LL_GPIO_PIN_3
|
LL_GPIO_PIN_4
|
LL_GPIO_PIN_5
|
LL_GPIO_PIN_6
|
LL_GPIO_PIN_7
|
LL_GPIO_PIN_8
|
LL_GPIO_PIN_9
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_ANALOG
;
LL_GPIO_Init
(
GPIOB
,
&
GPIO_InitStruct
);
/**/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_12
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_OUTPUT
;
GPIO_InitStruct
.
Speed
=
LL_GPIO_SPEED_FREQ_LOW
;
GPIO_InitStruct
.
OutputType
=
LL_GPIO_OUTPUT_PUSHPULL
;
LL_GPIO_Init
(
GPIOB
,
&
GPIO_InitStruct
);
/**/
LL_GPIO_AF_EnableRemap_PD01
();
}
/* USER CODE BEGIN 4 */
/* USER CODE END 4 */
/* Initialize all configured peripherals */
MX_GPIO_Init
();
MX_USART1_UART_Init
();
/* USER CODE BEGIN 2 */
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void
Error_Handler
(
void
)
{
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while
(
1
)
{
/* USER CODE END WHILE */
while
(
LL_USART_IsActiveFlag_RXNE
(
USART1
));
rcv
=
LL_USART_ReceiveData8
(
USART1
);
switch
(
rcv
)
{
case
'c'
:
case
'm'
:
case
'a'
:
case
'k'
:
case
's'
:
case
'p'
:
read_variable
(
rcv
);
break
;
case
'C'
:
write_variable
(
c
,
clen
);
break
;
case
'M'
:
write_variable
(
m
,
mlen
);
break
;
case
'A'
:
write_variable
(
ad
,
adlen
);
break
;
case
'K'
:
write_variable
(
k
,
klen
);
break
;
case
'S'
:
write_variable
(
nsec
,
nslen
);
break
;
case
'P'
:
write_variable
(
npub
,
nplen
);
break
;
case
'e'
:
res
=
crypto_aead_encrypt
(
c
,
&
clen
,
m
,
mlen
,
ad
,
adlen
,
nsec
,
npub
,
k
);
break
;
default
:
return
2
;
}
/**
* @brief System Clock Configuration
* @retval None
*/
void
SystemClock_Config
(
void
)
{
LL_FLASH_SetLatency
(
LL_FLASH_LATENCY_1
);
if
(
LL_FLASH_GetLatency
()
!=
LL_FLASH_LATENCY_1
)
{
Error_Handler
();
}
LL_RCC_HSI_SetCalibTrimming
(
16
);
LL_RCC_HSI_Enable
();
/* Wait till HSI is ready */
while
(
LL_RCC_HSI_IsReady
()
!=
1
)
{
}
LL_RCC_PLL_ConfigDomain_SYS
(
LL_RCC_PLLSOURCE_HSI_DIV_2
,
LL_RCC_PLL_MUL_12
);
LL_RCC_PLL_Enable
();
/* Wait till PLL is ready */
while
(
LL_RCC_PLL_IsReady
()
!=
1
)
{
}
LL_RCC_SetAHBPrescaler
(
LL_RCC_SYSCLK_DIV_1
);
LL_RCC_SetAPB1Prescaler
(
LL_RCC_APB1_DIV_2
);
LL_RCC_SetAPB2Prescaler
(
LL_RCC_APB2_DIV_1
);
LL_RCC_SetSysClkSource
(
LL_RCC_SYS_CLKSOURCE_PLL
);
/* Wait till System clock is ready */
while
(
LL_RCC_GetSysClkSource
()
!=
LL_RCC_SYS_CLKSOURCE_STATUS_PLL
)
{
}
LL_Init1msTick
(
48000000
);
LL_SYSTICK_SetClkSource
(
LL_SYSTICK_CLKSOURCE_HCLK
);
LL_SetSystemCoreClock
(
48000000
);
}
/**
* @brief USART1 Initialization Function
* @param None
* @retval None
*/
static
void
MX_USART1_UART_Init
(
void
)
{
/* USER CODE BEGIN USART1_Init 0 */
/* USER CODE END USART1_Init 0 */
LL_USART_InitTypeDef
USART_InitStruct
=
{
0
};
LL_GPIO_InitTypeDef
GPIO_InitStruct
=
{
0
};
/* Peripheral clock enable */
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_USART1
);
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_GPIOA
);
/**USART1 GPIO Configuration
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_9
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_ALTERNATE
;
GPIO_InitStruct
.
Speed
=
LL_GPIO_SPEED_FREQ_HIGH
;
GPIO_InitStruct
.
OutputType
=
LL_GPIO_OUTPUT_PUSHPULL
;
LL_GPIO_Init
(
GPIOA
,
&
GPIO_InitStruct
);
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_10
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_FLOATING
;
LL_GPIO_Init
(
GPIOA
,
&
GPIO_InitStruct
);
/* USER CODE BEGIN USART1_Init 1 */
/* USER CODE END USART1_Init 1 */
USART_InitStruct
.
BaudRate
=
115200
;
USART_InitStruct
.
DataWidth
=
LL_USART_DATAWIDTH_8B
;
USART_InitStruct
.
StopBits
=
LL_USART_STOPBITS_1
;
USART_InitStruct
.
Parity
=
LL_USART_PARITY_NONE
;
USART_InitStruct
.
TransferDirection
=
LL_USART_DIRECTION_TX_RX
;
USART_InitStruct
.
HardwareFlowControl
=
LL_USART_HWCONTROL_NONE
;
LL_USART_Init
(
USART1
,
&
USART_InitStruct
);
LL_USART_ConfigAsyncMode
(
USART1
);
LL_USART_Enable
(
USART1
);
/* USER CODE BEGIN USART1_Init 2 */
/* USER CODE END USART1_Init 2 */
}
/**
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static
void
MX_GPIO_Init
(
void
)
{
LL_GPIO_InitTypeDef
GPIO_InitStruct
=
{
0
};
/* GPIO Ports Clock Enable */
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_GPIOC
);
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_GPIOD
);
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_GPIOA
);
LL_APB2_GRP1_EnableClock
(
LL_APB2_GRP1_PERIPH_GPIOB
);
/**/
LL_GPIO_ResetOutputPin
(
GPIOB
,
LL_GPIO_PIN_12
);
/**/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_13
|
LL_GPIO_PIN_14
|
LL_GPIO_PIN_15
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_ANALOG
;
LL_GPIO_Init
(
GPIOC
,
&
GPIO_InitStruct
);
/**/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_0
|
LL_GPIO_PIN_1
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_ANALOG
;
LL_GPIO_Init
(
GPIOD
,
&
GPIO_InitStruct
);
/**/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_0
|
LL_GPIO_PIN_1
|
LL_GPIO_PIN_2
|
LL_GPIO_PIN_3
|
LL_GPIO_PIN_4
|
LL_GPIO_PIN_5
|
LL_GPIO_PIN_6
|
LL_GPIO_PIN_7
|
LL_GPIO_PIN_8
|
LL_GPIO_PIN_11
|
LL_GPIO_PIN_12
|
LL_GPIO_PIN_15
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_ANALOG
;
LL_GPIO_Init
(
GPIOA
,
&
GPIO_InitStruct
);
/**/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_0
|
LL_GPIO_PIN_1
|
LL_GPIO_PIN_2
|
LL_GPIO_PIN_10
|
LL_GPIO_PIN_11
|
LL_GPIO_PIN_13
|
LL_GPIO_PIN_14
|
LL_GPIO_PIN_15
|
LL_GPIO_PIN_3
|
LL_GPIO_PIN_4
|
LL_GPIO_PIN_5
|
LL_GPIO_PIN_6
|
LL_GPIO_PIN_7
|
LL_GPIO_PIN_8
|
LL_GPIO_PIN_9
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_ANALOG
;
LL_GPIO_Init
(
GPIOB
,
&
GPIO_InitStruct
);
/**/
GPIO_InitStruct
.
Pin
=
LL_GPIO_PIN_12
;
GPIO_InitStruct
.
Mode
=
LL_GPIO_MODE_OUTPUT
;
GPIO_InitStruct
.
Speed
=
LL_GPIO_SPEED_FREQ_LOW
;
GPIO_InitStruct
.
OutputType
=
LL_GPIO_OUTPUT_PUSHPULL
;
LL_GPIO_Init
(
GPIOB
,
&
GPIO_InitStruct
);
/**/
LL_GPIO_AF_EnableRemap_PD01
();
}
/* USER CODE BEGIN 4 */
/* USER CODE END 4 */
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void
Error_Handler
(
void
)
{
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
/* USER CODE END Error_Handler_Debug */
}
/* USER CODE END Error_Handler_Debug */
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void
assert_failed
(
uint8_t
*
file
,
uint32_t
line
)
{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void
assert_failed
(
uint8_t
*
file
,
uint32_t
line
)
{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* USER CODE END 6 */
}
/* USER CODE END 6 */
}
#endif
/* USE_FULL_ASSERT */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment