[WIP] Add syntax check for rust and C\C++ code (#108)
* proof of concept * fix syntax for rust and add auto fix syntax * fix syntax for C * fix bug with files owner * add information to wiki * try to add ci * format code from master * even more format fixes * change docker to docker-compose * Exclude ./target_*/build directories from format check * Run rustfmt only on project files * add ulimit setup for long clang list * merge * fix rustfmt, exclude target Inc directory * sync with master * abspath Co-authored-by: aanper <mail@s3f.ru> Co-authored-by: Vadim Kaushan <admin@disasm.info>
This commit is contained in:
parent
7ded31c19d
commit
110a9efc3c
86
.clang-format
Normal file
86
.clang-format
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
AccessModifierOffset: -4
|
||||||
|
AlignAfterOpenBracket: Align
|
||||||
|
AlignConsecutiveAssignments: false
|
||||||
|
AlignConsecutiveDeclarations: false
|
||||||
|
AlignEscapedNewlines: Left
|
||||||
|
AlignOperands: true
|
||||||
|
AlignTrailingComments: false
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: false
|
||||||
|
AllowShortBlocksOnASingleLine: false
|
||||||
|
AllowShortCaseLabelsOnASingleLine: false
|
||||||
|
AllowShortFunctionsOnASingleLine: None
|
||||||
|
AllowShortIfStatementsOnASingleLine: true
|
||||||
|
AllowShortLoopsOnASingleLine: true
|
||||||
|
AlwaysBreakAfterDefinitionReturnType: None
|
||||||
|
AlwaysBreakAfterReturnType: None
|
||||||
|
AlwaysBreakBeforeMultilineStrings: false
|
||||||
|
AlwaysBreakTemplateDeclarations: false
|
||||||
|
BinPackArguments: false
|
||||||
|
BinPackParameters: false
|
||||||
|
BreakBeforeBinaryOperators: None
|
||||||
|
BreakBeforeBraces: Attach
|
||||||
|
BreakBeforeTernaryOperators: false
|
||||||
|
BreakConstructorInitializers: BeforeComma
|
||||||
|
BreakStringLiterals: false
|
||||||
|
ColumnLimit: 99
|
||||||
|
CompactNamespaces: false
|
||||||
|
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||||
|
ConstructorInitializerIndentWidth: 4
|
||||||
|
ContinuationIndentWidth: 4
|
||||||
|
Cpp11BracedListStyle: true
|
||||||
|
DerivePointerAlignment: false
|
||||||
|
DisableFormat: false
|
||||||
|
ExperimentalAutoDetectBinPacking: false
|
||||||
|
FixNamespaceComments: false
|
||||||
|
|
||||||
|
IncludeBlocks: Preserve
|
||||||
|
IncludeCategories:
|
||||||
|
- Regex: '.*'
|
||||||
|
Priority: 1
|
||||||
|
IncludeIsMainRegex: '(Test)?$'
|
||||||
|
IndentCaseLabels: false
|
||||||
|
IndentPPDirectives: None
|
||||||
|
IndentWidth: 4
|
||||||
|
IndentWrappedFunctionNames: false
|
||||||
|
JavaScriptQuotes: Leave
|
||||||
|
JavaScriptWrapImports: true
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||||
|
MacroBlockBegin: ''
|
||||||
|
MacroBlockEnd: ''
|
||||||
|
MaxEmptyLinesToKeep: 1
|
||||||
|
NamespaceIndentation: None
|
||||||
|
ObjCBinPackProtocolList: Auto
|
||||||
|
ObjCBlockIndentWidth: 4
|
||||||
|
ObjCSpaceAfterProperty: true
|
||||||
|
ObjCSpaceBeforeProtocolList: true
|
||||||
|
|
||||||
|
# Taken from git's rules
|
||||||
|
PenaltyBreakAssignment: 10
|
||||||
|
PenaltyBreakBeforeFirstCallParameter: 30
|
||||||
|
PenaltyBreakComment: 10
|
||||||
|
PenaltyBreakFirstLessLess: 0
|
||||||
|
PenaltyBreakString: 10
|
||||||
|
PenaltyExcessCharacter: 100
|
||||||
|
PenaltyReturnTypeOnItsOwnLine: 60
|
||||||
|
|
||||||
|
PointerAlignment: Left
|
||||||
|
ReflowComments: false
|
||||||
|
SortIncludes: false
|
||||||
|
SortUsingDeclarations: false
|
||||||
|
SpaceAfterCStyleCast: false
|
||||||
|
SpaceAfterTemplateKeyword: true
|
||||||
|
SpaceBeforeAssignmentOperators: true
|
||||||
|
SpaceBeforeCtorInitializerColon: true
|
||||||
|
SpaceBeforeInheritanceColon: true
|
||||||
|
SpaceBeforeParens: Never
|
||||||
|
SpaceBeforeRangeBasedForLoopColon: true
|
||||||
|
SpaceInEmptyParentheses: false
|
||||||
|
SpacesBeforeTrailingComments: 1
|
||||||
|
SpacesInAngles: false
|
||||||
|
SpacesInContainerLiterals: false
|
||||||
|
SpacesInCStyleCastParentheses: false
|
||||||
|
SpacesInParentheses: false
|
||||||
|
SpacesInSquareBrackets: false
|
||||||
|
Standard: Cpp03
|
||||||
|
TabWidth: 4
|
||||||
|
UseTab: Never
|
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@ -23,6 +23,12 @@ jobs:
|
|||||||
- name: Build docker image
|
- name: Build docker image
|
||||||
uses: ./.github/actions/docker
|
uses: ./.github/actions/docker
|
||||||
|
|
||||||
|
- name: Check syntax
|
||||||
|
uses: ./.github/actions/docker
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
run: /syntax_check.sh
|
||||||
|
|
||||||
- name: Build target_lo in docker
|
- name: Build target_lo in docker
|
||||||
uses: ./.github/actions/docker
|
uses: ./.github/actions/docker
|
||||||
with:
|
with:
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,4 @@
|
|||||||
.idea/
|
.idea/
|
||||||
target_lo/build/
|
|
||||||
target_*/build/
|
target_*/build/
|
||||||
bindings/
|
bindings/
|
||||||
|
|
||||||
|
@ -9,9 +9,7 @@ void coreglitch_demo_0(void* p) {
|
|||||||
fuprintf(log, "coreglitch demo!\n");
|
fuprintf(log, "coreglitch demo!\n");
|
||||||
|
|
||||||
// open record
|
// open record
|
||||||
FuriRecordSubscriber* fb_record = furi_open(
|
FuriRecordSubscriber* fb_record = furi_open("u8g2_fb", false, false, NULL, NULL, NULL);
|
||||||
"u8g2_fb", false, false, NULL, NULL, NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
if(fb_record == NULL) {
|
if(fb_record == NULL) {
|
||||||
fuprintf(log, "[widget] cannot create fb record\n");
|
fuprintf(log, "[widget] cannot create fb record\n");
|
||||||
@ -33,13 +31,12 @@ void coreglitch_demo_0(void* p) {
|
|||||||
1.0,
|
1.0,
|
||||||
1.5,
|
1.5,
|
||||||
0.75,
|
0.75,
|
||||||
0.8
|
0.8,
|
||||||
};
|
};
|
||||||
|
|
||||||
uint8_t cnt = 0;
|
uint8_t cnt = 0;
|
||||||
|
|
||||||
while(1) {
|
while(1) {
|
||||||
|
|
||||||
for(size_t note_idx = 0; note_idx < 400; note_idx++) {
|
for(size_t note_idx = 0; note_idx < 400; note_idx++) {
|
||||||
float scale = scales[((cnt + note_idx) / 16) % 4];
|
float scale = scales[((cnt + note_idx) / 16) % 4];
|
||||||
|
|
||||||
@ -56,7 +53,6 @@ void coreglitch_demo_0(void* p) {
|
|||||||
|
|
||||||
cnt++;
|
cnt++;
|
||||||
|
|
||||||
|
|
||||||
u8g2_t* fb = furi_take(fb_record);
|
u8g2_t* fb = furi_take(fb_record);
|
||||||
if(fb != NULL) {
|
if(fb != NULL) {
|
||||||
u8g2_SetDrawColor(fb, 0);
|
u8g2_SetDrawColor(fb, 0);
|
||||||
|
@ -7,7 +7,8 @@ extern SPI_HandleTypeDef hspi1;
|
|||||||
|
|
||||||
// TODO rewrite u8g2 to pass thread-local context in this handlers
|
// TODO rewrite u8g2 to pass thread-local context in this handlers
|
||||||
|
|
||||||
static uint8_t u8g2_gpio_and_delay_stm32(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) {
|
static uint8_t
|
||||||
|
u8g2_gpio_and_delay_stm32(u8x8_t* u8x8, uint8_t msg, uint8_t arg_int, void* arg_ptr) {
|
||||||
switch(msg) {
|
switch(msg) {
|
||||||
//Initialize SPI peripheral
|
//Initialize SPI peripheral
|
||||||
case U8X8_MSG_GPIO_AND_DELAY_INIT:
|
case U8X8_MSG_GPIO_AND_DELAY_INIT:
|
||||||
@ -36,7 +37,8 @@ static uint8_t u8g2_gpio_and_delay_stm32(u8x8_t *u8x8, uint8_t msg, uint8_t arg_
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TODO change it to FuriRecord pin
|
// TODO change it to FuriRecord pin
|
||||||
HAL_GPIO_WritePin(DISPLAY_RST_GPIO_Port, DISPLAY_RST_Pin, arg_int ? GPIO_PIN_SET : GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(
|
||||||
|
DISPLAY_RST_GPIO_Port, DISPLAY_RST_Pin, arg_int ? GPIO_PIN_SET : GPIO_PIN_RESET);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -67,7 +69,8 @@ static uint8_t u8x8_hw_spi_stm32(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, voi
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TODO change it to FuriRecord pin
|
// TODO change it to FuriRecord pin
|
||||||
HAL_GPIO_WritePin(DISPLAY_DI_GPIO_Port, DISPLAY_DI_Pin, arg_int ? GPIO_PIN_SET : GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(
|
||||||
|
DISPLAY_DI_GPIO_Port, DISPLAY_DI_Pin, arg_int ? GPIO_PIN_SET : GPIO_PIN_RESET);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case U8X8_MSG_BYTE_INIT:
|
case U8X8_MSG_BYTE_INIT:
|
||||||
@ -131,8 +134,10 @@ void display_u8g2(void* p) {
|
|||||||
HAL_GPIO_WritePin(DISPLAY_BACKLIGHT_GPIO_Port, DISPLAY_BACKLIGHT_Pin, GPIO_PIN_SET);
|
HAL_GPIO_WritePin(DISPLAY_BACKLIGHT_GPIO_Port, DISPLAY_BACKLIGHT_Pin, GPIO_PIN_SET);
|
||||||
|
|
||||||
u8g2_t _u8g2;
|
u8g2_t _u8g2;
|
||||||
u8g2_Setup_st7565_erc12864_alt_f(&_u8g2, U8G2_R0, u8x8_hw_spi_stm32, u8g2_gpio_and_delay_stm32);
|
u8g2_Setup_st7565_erc12864_alt_f(
|
||||||
u8g2_InitDisplay(&_u8g2); // send init sequence to the display, display is in sleep mode after this
|
&_u8g2, U8G2_R0, u8x8_hw_spi_stm32, u8g2_gpio_and_delay_stm32);
|
||||||
|
u8g2_InitDisplay(
|
||||||
|
&_u8g2); // send init sequence to the display, display is in sleep mode after this
|
||||||
u8g2_SetContrast(&_u8g2, 36);
|
u8g2_SetContrast(&_u8g2, 36);
|
||||||
|
|
||||||
if(!furi_create("u8g2_fb", (void*)&_u8g2, sizeof(_u8g2))) {
|
if(!furi_create("u8g2_fb", (void*)&_u8g2, sizeof(_u8g2))) {
|
||||||
@ -153,9 +158,8 @@ void display_u8g2(void* p) {
|
|||||||
DisplayCtx ctx = {.update = update, .log = log};
|
DisplayCtx ctx = {.update = update, .log = log};
|
||||||
|
|
||||||
// subscribe to record. ctx will be passed to handle_fb_change
|
// subscribe to record. ctx will be passed to handle_fb_change
|
||||||
FuriRecordSubscriber* fb_record = furi_open(
|
FuriRecordSubscriber* fb_record =
|
||||||
"u8g2_fb", false, false, handle_fb_change, NULL, &ctx
|
furi_open("u8g2_fb", false, false, handle_fb_change, NULL, &ctx);
|
||||||
);
|
|
||||||
|
|
||||||
if(fb_record == NULL) {
|
if(fb_record == NULL) {
|
||||||
fuprintf(log, "[display] cannot open fb record\n");
|
fuprintf(log, "[display] cannot open fb record\n");
|
||||||
|
@ -78,9 +78,8 @@ void application_ipc_display(void* p) {
|
|||||||
IpcCtx ctx = {.events = events, .log = log};
|
IpcCtx ctx = {.events = events, .log = log};
|
||||||
|
|
||||||
// subscribe to record. ctx will be passed to handle_fb_change
|
// subscribe to record. ctx will be passed to handle_fb_change
|
||||||
FuriRecordSubscriber* fb_record = furi_open(
|
FuriRecordSubscriber* fb_record =
|
||||||
"test_fb", false, false, handle_fb_change, NULL, &ctx
|
furi_open("test_fb", false, false, handle_fb_change, NULL, &ctx);
|
||||||
);
|
|
||||||
|
|
||||||
if(fb_record == NULL) {
|
if(fb_record == NULL) {
|
||||||
fuprintf(log, "[display] cannot open fb record\n");
|
fuprintf(log, "[display] cannot open fb record\n");
|
||||||
@ -120,15 +119,12 @@ void application_ipc_display(void* p) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Widget application
|
// Widget application
|
||||||
void application_ipc_widget(void* p) {
|
void application_ipc_widget(void* p) {
|
||||||
FuriRecordSubscriber* log = get_default_log();
|
FuriRecordSubscriber* log = get_default_log();
|
||||||
|
|
||||||
// open record
|
// open record
|
||||||
FuriRecordSubscriber* fb_record = furi_open(
|
FuriRecordSubscriber* fb_record = furi_open("test_fb", false, false, NULL, NULL, NULL);
|
||||||
"test_fb", false, false, NULL, NULL, NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
if(fb_record == NULL) {
|
if(fb_record == NULL) {
|
||||||
fuprintf(log, "[widget] cannot create fb record\n");
|
fuprintf(log, "[widget] cannot create fb record\n");
|
||||||
|
@ -8,9 +8,7 @@ void u8g2_example(void* p) {
|
|||||||
delay(1000);
|
delay(1000);
|
||||||
|
|
||||||
// open record
|
// open record
|
||||||
FuriRecordSubscriber* fb_record = furi_open(
|
FuriRecordSubscriber* fb_record = furi_open("u8g2_fb", false, false, NULL, NULL, NULL);
|
||||||
"u8g2_fb", false, false, NULL, NULL, NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
if(fb_record == NULL) {
|
if(fb_record == NULL) {
|
||||||
fuprintf(log, "[widget] cannot create fb record\n");
|
fuprintf(log, "[widget] cannot create fb record\n");
|
||||||
|
@ -30,9 +30,8 @@ bool test_furi_pipe_record(FuriRecordSubscriber* log) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 2. Open/subscribe to it
|
// 2. Open/subscribe to it
|
||||||
FuriRecordSubscriber* pipe_record = furi_open(
|
FuriRecordSubscriber* pipe_record =
|
||||||
"test/pipe", false, false, pipe_record_cb, NULL, NULL
|
furi_open("test/pipe", false, false, pipe_record_cb, NULL, NULL);
|
||||||
);
|
|
||||||
if(pipe_record == NULL) {
|
if(pipe_record == NULL) {
|
||||||
fuprintf(log, "cannot open record\n");
|
fuprintf(log, "cannot open record\n");
|
||||||
return false;
|
return false;
|
||||||
@ -97,9 +96,8 @@ bool test_furi_holding_data(FuriRecordSubscriber* log) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 2. Open/Subscribe on it
|
// 2. Open/Subscribe on it
|
||||||
FuriRecordSubscriber* holding_record = furi_open(
|
FuriRecordSubscriber* holding_record =
|
||||||
"test/holding", false, false, holding_record_cb, NULL, NULL
|
furi_open("test/holding", false, false, holding_record_cb, NULL, NULL);
|
||||||
);
|
|
||||||
if(holding_record == NULL) {
|
if(holding_record == NULL) {
|
||||||
fuprintf(log, "cannot open record\n");
|
fuprintf(log, "cannot open record\n");
|
||||||
return false;
|
return false;
|
||||||
@ -163,9 +161,8 @@ typedef struct {
|
|||||||
void furi_concurent_app(void* p) {
|
void furi_concurent_app(void* p) {
|
||||||
FuriRecordSubscriber* log = (FuriRecordSubscriber*)p;
|
FuriRecordSubscriber* log = (FuriRecordSubscriber*)p;
|
||||||
|
|
||||||
FuriRecordSubscriber* holding_record = furi_open(
|
FuriRecordSubscriber* holding_record =
|
||||||
"test/concurrent", false, false, NULL, NULL, NULL
|
furi_open("test/concurrent", false, false, NULL, NULL, NULL);
|
||||||
);
|
|
||||||
if(holding_record == NULL) {
|
if(holding_record == NULL) {
|
||||||
fuprintf(log, "cannot open record\n");
|
fuprintf(log, "cannot open record\n");
|
||||||
furiac_exit(NULL);
|
furiac_exit(NULL);
|
||||||
@ -202,18 +199,15 @@ bool test_furi_concurrent_access(FuriRecordSubscriber* log) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 2. Open it
|
// 2. Open it
|
||||||
FuriRecordSubscriber* holding_record = furi_open(
|
FuriRecordSubscriber* holding_record =
|
||||||
"test/concurrent", false, false, NULL, NULL, NULL
|
furi_open("test/concurrent", false, false, NULL, NULL, NULL);
|
||||||
);
|
|
||||||
if(holding_record == NULL) {
|
if(holding_record == NULL) {
|
||||||
fuprintf(log, "cannot open record\n");
|
fuprintf(log, "cannot open record\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Create second app for interact with it
|
// 3. Create second app for interact with it
|
||||||
FuriApp* second_app = furiac_start(
|
FuriApp* second_app = furiac_start(furi_concurent_app, "furi concurent app", (void*)log);
|
||||||
furi_concurent_app, "furi concurent app", (void*)log
|
|
||||||
);
|
|
||||||
|
|
||||||
// 4. multiply ConcurrentValue::a
|
// 4. multiply ConcurrentValue::a
|
||||||
for(size_t i = 0; i < 4; i++) {
|
for(size_t i = 0; i < 4; i++) {
|
||||||
@ -259,7 +253,6 @@ TEST: non-existent data
|
|||||||
TODO: implement this test
|
TODO: implement this test
|
||||||
*/
|
*/
|
||||||
bool test_furi_nonexistent_data(FuriRecordSubscriber* log) {
|
bool test_furi_nonexistent_data(FuriRecordSubscriber* log) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -326,9 +319,8 @@ void furi_mute_parent_app(void* p) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 2. Open watch handler: solo=false, no_mute=false, subscribe to data
|
// 2. Open watch handler: solo=false, no_mute=false, subscribe to data
|
||||||
FuriRecordSubscriber* watch_handler = furi_open(
|
FuriRecordSubscriber* watch_handler =
|
||||||
"test/mute", false, false, mute_record_cb, NULL, NULL
|
furi_open("test/mute", false, false, mute_record_cb, NULL, NULL);
|
||||||
);
|
|
||||||
if(watch_handler == NULL) {
|
if(watch_handler == NULL) {
|
||||||
fuprintf(log, "cannot open watch handler\n");
|
fuprintf(log, "cannot open watch handler\n");
|
||||||
furiac_exit(NULL);
|
furiac_exit(NULL);
|
||||||
@ -342,16 +334,13 @@ void furi_mute_parent_app(void* p) {
|
|||||||
|
|
||||||
bool test_furi_mute_algorithm(FuriRecordSubscriber* log) {
|
bool test_furi_mute_algorithm(FuriRecordSubscriber* log) {
|
||||||
// 1. Create "parent" application:
|
// 1. Create "parent" application:
|
||||||
FuriApp* parent_app = furiac_start(
|
FuriApp* parent_app = furiac_start(furi_mute_parent_app, "parent app", (void*)log);
|
||||||
furi_mute_parent_app, "parent app", (void*)log
|
|
||||||
);
|
|
||||||
|
|
||||||
delay(2); // wait creating record
|
delay(2); // wait creating record
|
||||||
|
|
||||||
// 2. Open handler A: solo=false, no_mute=false, NULL subscriber. Subscribe to state.
|
// 2. Open handler A: solo=false, no_mute=false, NULL subscriber. Subscribe to state.
|
||||||
FuriRecordSubscriber* handler_a = furi_open(
|
FuriRecordSubscriber* handler_a =
|
||||||
"test/mute", false, false, NULL, mute_record_state_cb, NULL
|
furi_open("test/mute", false, false, NULL, mute_record_state_cb, NULL);
|
||||||
);
|
|
||||||
if(handler_a == NULL) {
|
if(handler_a == NULL) {
|
||||||
fuprintf(log, "cannot open handler A\n");
|
fuprintf(log, "cannot open handler A\n");
|
||||||
return false;
|
return false;
|
||||||
@ -371,9 +360,7 @@ bool test_furi_mute_algorithm(FuriRecordSubscriber* log) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 3. Open handler B: solo=true, no_mute=true, NULL subscriber.
|
// 3. Open handler B: solo=true, no_mute=true, NULL subscriber.
|
||||||
FuriRecordSubscriber* handler_b = furi_open(
|
FuriRecordSubscriber* handler_b = furi_open("test/mute", true, true, NULL, NULL, NULL);
|
||||||
"test/mute", true, true, NULL, NULL, NULL
|
|
||||||
);
|
|
||||||
if(handler_b == NULL) {
|
if(handler_b == NULL) {
|
||||||
fuprintf(log, "cannot open handler B\n");
|
fuprintf(log, "cannot open handler B\n");
|
||||||
return false;
|
return false;
|
||||||
@ -400,7 +387,6 @@ bool test_furi_mute_algorithm(FuriRecordSubscriber* log) {
|
|||||||
|
|
||||||
test_counter = 3;
|
test_counter = 3;
|
||||||
|
|
||||||
|
|
||||||
// Try to write data to B and check that subscriber get data.
|
// Try to write data to B and check that subscriber get data.
|
||||||
if(!furi_write(handler_b, &test_counter, sizeof(uint8_t))) {
|
if(!furi_write(handler_b, &test_counter, sizeof(uint8_t))) {
|
||||||
fuprintf(log, "write to B failed\n");
|
fuprintf(log, "write to B failed\n");
|
||||||
@ -412,11 +398,8 @@ bool test_furi_mute_algorithm(FuriRecordSubscriber* log) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 4. Open hadler C: solo=true, no_mute=false, NULL subscriber.
|
// 4. Open hadler C: solo=true, no_mute=false, NULL subscriber.
|
||||||
FuriRecordSubscriber* handler_c = furi_open(
|
FuriRecordSubscriber* handler_c = furi_open("test/mute", true, false, NULL, NULL, NULL);
|
||||||
"test/mute", true, false, NULL, NULL, NULL
|
|
||||||
);
|
|
||||||
if(handler_c == NULL) {
|
if(handler_c == NULL) {
|
||||||
fuprintf(log, "cannot open handler C\n");
|
fuprintf(log, "cannot open handler C\n");
|
||||||
return false;
|
return false;
|
||||||
@ -427,9 +410,7 @@ bool test_furi_mute_algorithm(FuriRecordSubscriber* log) {
|
|||||||
// TODO: Try to write data to C and check that subscriber get data.
|
// TODO: Try to write data to C and check that subscriber get data.
|
||||||
|
|
||||||
// 5. Open handler D: solo=false, no_mute=false, NULL subscriber.
|
// 5. Open handler D: solo=false, no_mute=false, NULL subscriber.
|
||||||
FuriRecordSubscriber* handler_d = furi_open(
|
FuriRecordSubscriber* handler_d = furi_open("test/mute", false, false, NULL, NULL, NULL);
|
||||||
"test/mute", false, false, NULL, NULL, NULL
|
|
||||||
);
|
|
||||||
if(handler_d == NULL) {
|
if(handler_d == NULL) {
|
||||||
fuprintf(log, "cannot open handler D\n");
|
fuprintf(log, "cannot open handler D\n");
|
||||||
return false;
|
return false;
|
||||||
|
@ -66,6 +66,5 @@ void flipper_test_app(void* p) {
|
|||||||
|
|
||||||
rust_uart_write();
|
rust_uart_write();
|
||||||
|
|
||||||
|
|
||||||
furiac_exit(NULL);
|
furiac_exit(NULL);
|
||||||
}
|
}
|
@ -8,6 +8,8 @@ fn main() {
|
|||||||
cbindgen::generate(&crate_dir)
|
cbindgen::generate(&crate_dir)
|
||||||
.expect("Unable to generate cbindgen bindings")
|
.expect("Unable to generate cbindgen bindings")
|
||||||
.write_to_file(
|
.write_to_file(
|
||||||
Path::new(&crate_dir).join("bindings").join(format!("{}.h", pkg_name))
|
Path::new(&crate_dir)
|
||||||
|
.join("bindings")
|
||||||
|
.join(format!("{}.h", pkg_name)),
|
||||||
);
|
);
|
||||||
}
|
}
|
@ -1,14 +1,13 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
|
|
||||||
#[cfg(target_arch = "arm")]
|
#[cfg(target_arch = "arm")]
|
||||||
use flipper_f1_sys::hal::{HAL_UART_Transmit_IT, huart1};
|
use flipper_f1_sys::hal::{huart1, HAL_UART_Transmit_IT};
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn add(a: u32, b: u32) -> u32 {
|
pub extern "C" fn add(a: u32, b: u32) -> u32 {
|
||||||
a + b
|
a + b
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn rust_uart_write() {
|
pub extern "C" fn rust_uart_write() {
|
||||||
let string = "Rust test string\n";
|
let string = "Rust test string\n";
|
||||||
@ -28,12 +27,13 @@ pub extern "C" fn rust_uart_write() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
mod aux {
|
mod aux {
|
||||||
use core::panic::PanicInfo;
|
use core::panic::PanicInfo;
|
||||||
|
|
||||||
#[panic_handler]
|
#[panic_handler]
|
||||||
fn panic(_info: &PanicInfo) -> ! {
|
fn panic(_info: &PanicInfo) -> ! {
|
||||||
loop { continue }
|
loop {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,28 +64,23 @@ impl BindingsGenerator {
|
|||||||
let includes = [
|
let includes = [
|
||||||
// This are bindings generated by cbindgen nearby
|
// This are bindings generated by cbindgen nearby
|
||||||
&flipper_core_bindings.to_string_lossy(),
|
&flipper_core_bindings.to_string_lossy(),
|
||||||
|
|
||||||
&self.gcc_include_dir.to_string_lossy(),
|
&self.gcc_include_dir.to_string_lossy(),
|
||||||
];
|
];
|
||||||
|
|
||||||
#[rustfmt::skip]
|
#[rustfmt::skip]
|
||||||
return bindgen::Builder::default()
|
return bindgen::Builder::default()
|
||||||
.use_core()
|
.use_core()
|
||||||
|
|
||||||
.ctypes_prefix("self")
|
.ctypes_prefix("self")
|
||||||
.blacklist_type("__uint8_t")
|
.blacklist_type("__uint8_t")
|
||||||
.blacklist_type("__uint32_t")
|
.blacklist_type("__uint32_t")
|
||||||
.blacklist_type("c_int")
|
.blacklist_type("c_int")
|
||||||
.blacklist_type("__int32_t")
|
.blacklist_type("__int32_t")
|
||||||
|
|
||||||
// TODO there's no .no_debug method, to disable only for specific type
|
// TODO there's no .no_debug method, to disable only for specific type
|
||||||
.derive_debug(false)
|
.derive_debug(false)
|
||||||
|
|
||||||
.clang_arg("-DUSE_HAL_DRIVER")
|
.clang_arg("-DUSE_HAL_DRIVER")
|
||||||
.clang_arg("-DSTM32L476xx")
|
.clang_arg("-DSTM32L476xx")
|
||||||
.clang_arg("-DBUTON_INVERT=false")
|
.clang_arg("-DBUTON_INVERT=false")
|
||||||
.clang_arg("-DDEBUG_UART=huart1")
|
.clang_arg("-DDEBUG_UART=huart1")
|
||||||
|
|
||||||
.clang_args(
|
.clang_args(
|
||||||
(includes.iter().map(|x| From::from(x as &str)).chain(stm32_sdk_includes))
|
(includes.iter().map(|x| From::from(x as &str)).chain(stm32_sdk_includes))
|
||||||
.map(|include| format!("-I{}", include))
|
.map(|include| format!("-I{}", include))
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
|
|
||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
#![allow(non_camel_case_types)]
|
#![allow(non_camel_case_types)]
|
||||||
#![allow(non_upper_case_globals)]
|
#![allow(non_upper_case_globals)]
|
||||||
|
26
core/furi.c
26
core/furi.c
@ -57,9 +57,8 @@ bool furi_create(const char* name, void* value, size_t size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
records[current_buffer_idx].mute_counter = 0;
|
records[current_buffer_idx].mute_counter = 0;
|
||||||
records[current_buffer_idx].mutex = xSemaphoreCreateMutexStatic(
|
records[current_buffer_idx].mutex =
|
||||||
&records[current_buffer_idx].mutex_buffer
|
xSemaphoreCreateMutexStatic(&records[current_buffer_idx].mutex_buffer);
|
||||||
);
|
|
||||||
records[current_buffer_idx].value = value;
|
records[current_buffer_idx].value = value;
|
||||||
records[current_buffer_idx].size = size;
|
records[current_buffer_idx].size = size;
|
||||||
records[current_buffer_idx].name = name;
|
records[current_buffer_idx].name = name;
|
||||||
@ -74,14 +73,12 @@ bool furi_create(const char* name, void* value, size_t size) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
FuriRecordSubscriber* furi_open(
|
FuriRecordSubscriber* furi_open(const char* name,
|
||||||
const char* name,
|
|
||||||
bool solo,
|
bool solo,
|
||||||
bool no_mute,
|
bool no_mute,
|
||||||
FlipperRecordCallback value_callback,
|
FlipperRecordCallback value_callback,
|
||||||
FlipperRecordStateCallback state_callback,
|
FlipperRecordStateCallback state_callback,
|
||||||
void* ctx
|
void* ctx) {
|
||||||
) {
|
|
||||||
#ifdef FURI_DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] opening %s record\n", name);
|
printf("[FURI] opening %s record\n", name);
|
||||||
#endif
|
#endif
|
||||||
@ -155,7 +152,6 @@ FuriRecordSubscriber* furi_open(
|
|||||||
return subscriber;
|
return subscriber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void furi_close(FuriRecordSubscriber* handler) {
|
void furi_close(FuriRecordSubscriber* handler) {
|
||||||
#ifdef FURI_DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] closing %s record\n", handler->record->name);
|
printf("[FURI] closing %s record\n", handler->record->name);
|
||||||
@ -181,10 +177,7 @@ static void furi_notify(FuriRecordSubscriber* handler, const void* value, size_t
|
|||||||
if(handler->record->subscribers[i].allocated) {
|
if(handler->record->subscribers[i].allocated) {
|
||||||
if(handler->record->subscribers[i].cb != NULL) {
|
if(handler->record->subscribers[i].cb != NULL) {
|
||||||
handler->record->subscribers[i].cb(
|
handler->record->subscribers[i].cb(
|
||||||
value,
|
value, size, handler->record->subscribers[i].ctx);
|
||||||
size,
|
|
||||||
handler->record->subscribers[i].ctx
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -240,7 +233,9 @@ bool furi_write(FuriRecordSubscriber* handler, const void* value, size_t size) {
|
|||||||
|
|
||||||
if(handler == NULL || handler->record == NULL || value == NULL) {
|
if(handler == NULL || handler->record == NULL || value == NULL) {
|
||||||
#ifdef FURI_DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] write: null param %x %x\n", (uint32_t)(size_t)handler, (uint32_t)(size_t)value);
|
printf("[FURI] write: null param %x %x\n",
|
||||||
|
(uint32_t)(size_t)handler,
|
||||||
|
(uint32_t)(size_t)value);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -262,10 +257,7 @@ bool furi_write(FuriRecordSubscriber* handler, const void* value, size_t size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check mute
|
// check mute
|
||||||
if(
|
if(handler->record->mute_counter != handler->mute_counter && !handler->no_mute) {
|
||||||
handler->record->mute_counter != handler->mute_counter
|
|
||||||
&& !handler->no_mute
|
|
||||||
) {
|
|
||||||
#ifdef FURI_DEBUG
|
#ifdef FURI_DEBUG
|
||||||
printf("[FURI] write: muted\n");
|
printf("[FURI] write: muted\n");
|
||||||
#endif
|
#endif
|
||||||
|
@ -90,7 +90,6 @@ bool furiac_kill(FuriApp* app);
|
|||||||
// find task pointer by handle
|
// find task pointer by handle
|
||||||
FuriApp* find_task(TaskHandle_t handler);
|
FuriApp* find_task(TaskHandle_t handler);
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Creates named FURI record.
|
Creates named FURI record.
|
||||||
\param[in] name you can open this record anywhere
|
\param[in] name you can open this record anywhere
|
||||||
@ -110,14 +109,12 @@ When appication has exited or record has closed, all handlers is unmuted.
|
|||||||
It may be useful for concurrently acces to resources like framebuffer or beeper.
|
It may be useful for concurrently acces to resources like framebuffer or beeper.
|
||||||
\param[in] no_mute if true, another applications cannot mute this handler.
|
\param[in] no_mute if true, another applications cannot mute this handler.
|
||||||
*/
|
*/
|
||||||
FuriRecordSubscriber* furi_open(
|
FuriRecordSubscriber* furi_open(const char* name,
|
||||||
const char* name,
|
|
||||||
bool solo,
|
bool solo,
|
||||||
bool no_mute,
|
bool no_mute,
|
||||||
FlipperRecordCallback value_callback,
|
FlipperRecordCallback value_callback,
|
||||||
FlipperRecordStateCallback state_callback,
|
FlipperRecordStateCallback state_callback,
|
||||||
void* ctx
|
void* ctx);
|
||||||
);
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
|
@ -44,15 +44,14 @@ FuriApp* furiac_start(FlipperApplication app, const char* name, void* param) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create task on static stack memory
|
// create task on static stack memory
|
||||||
task_buffer[current_buffer_idx].handler = xTaskCreateStatic(
|
task_buffer[current_buffer_idx].handler =
|
||||||
(TaskFunction_t)app,
|
xTaskCreateStatic((TaskFunction_t)app,
|
||||||
(const char* const)name,
|
(const char* const)name,
|
||||||
DEFAULT_STACK_SIZE / 4, // freertos specify stack size in words
|
DEFAULT_STACK_SIZE / 4, // freertos specify stack size in words
|
||||||
(void* const)param,
|
(void* const)param,
|
||||||
tskIDLE_PRIORITY + 3, // normal priority
|
tskIDLE_PRIORITY + 3, // normal priority
|
||||||
stack_buffer[current_buffer_idx],
|
stack_buffer[current_buffer_idx],
|
||||||
&task_info_buffer[current_buffer_idx]
|
&task_info_buffer[current_buffer_idx]);
|
||||||
);
|
|
||||||
|
|
||||||
// save task
|
// save task
|
||||||
task_buffer[current_buffer_idx].application = app;
|
task_buffer[current_buffer_idx].application = app;
|
||||||
|
@ -41,7 +41,9 @@ bool register_tty_uart() {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE* fp = fopencookie(NULL, "w", (cookie_io_functions_t) {
|
FILE* fp = fopencookie(NULL,
|
||||||
|
"w",
|
||||||
|
(cookie_io_functions_t){
|
||||||
.read = NULL,
|
.read = NULL,
|
||||||
.write = stdout_write,
|
.write = stdout_write,
|
||||||
.seek = NULL,
|
.seek = NULL,
|
||||||
|
@ -12,4 +12,5 @@ services:
|
|||||||
working_dir: "/project"
|
working_dir: "/project"
|
||||||
environment:
|
environment:
|
||||||
DISPLAY: $DISPLAY
|
DISPLAY: $DISPLAY
|
||||||
|
TERM: xterm-256color
|
||||||
PATH: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
PATH: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
FROM ubuntu:18.04
|
FROM ubuntu:18.04
|
||||||
|
|
||||||
RUN apt-get update && \
|
ENV PATH /root/.cargo/bin:$PATH
|
||||||
|
|
||||||
|
RUN apt update && \
|
||||||
apt install -y --no-install-recommends \
|
apt install -y --no-install-recommends \
|
||||||
make \
|
make \
|
||||||
gcc-arm-none-eabi \
|
gcc-arm-none-eabi \
|
||||||
@ -17,10 +19,15 @@ RUN apt-get update && \
|
|||||||
python \
|
python \
|
||||||
python-pip \
|
python-pip \
|
||||||
libstdc++-arm-none-eabi-newlib \
|
libstdc++-arm-none-eabi-newlib \
|
||||||
libclang-10-dev && \
|
libclang-10-dev \
|
||||||
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
clang-format-10 \
|
||||||
|
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile=minimal --target thumbv7em-none-eabi thumbv7em-none-eabihf
|
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile=minimal --target thumbv7em-none-eabi thumbv7em-none-eabihf && \
|
||||||
|
rustup component add rustfmt --toolchain stable-x86_64-unknown-linux-gnu
|
||||||
|
|
||||||
|
COPY entrypoint.sh syntax_check.sh /
|
||||||
|
|
||||||
|
RUN chmod +x /syntax_check.sh
|
||||||
|
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
|
||||||
ENTRYPOINT ["/entrypoint.sh"]
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
43
docker/syntax_check.sh
Executable file
43
docker/syntax_check.sh
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
CLANG_FORMAT_BIN="/usr/bin/clang-format-10"
|
||||||
|
PATH="$HOME/.cargo/bin:${PATH}"
|
||||||
|
|
||||||
|
PROJECT_DIR=$(pwd)
|
||||||
|
|
||||||
|
cd $PROJECT_DIR
|
||||||
|
|
||||||
|
echo "RUN C\C++ SYNTAX CHECK"
|
||||||
|
C_FILES=$(find . \
|
||||||
|
-not \( -path './target_*/Middlewares' -prune \) \
|
||||||
|
-not \( -path './target_*/Drivers' -prune \) \
|
||||||
|
-not \( -path './target_*/build' -prune \) \
|
||||||
|
-not \( -path './target_*/Inc' -prune \) \
|
||||||
|
-not \( -path ./lib -prune \) \
|
||||||
|
-name *.c -o -name *.h -o -name *.cpp)
|
||||||
|
|
||||||
|
ulimit -s 65536
|
||||||
|
$CLANG_FORMAT_BIN --verbose -style=file -n --Werror --ferror-limit=0 $C_FILES
|
||||||
|
c_syntax_rc=$?
|
||||||
|
|
||||||
|
echo "RUN RUST SYNTAX CHECK"
|
||||||
|
cd $PROJECT_DIR/core-rs && cargo fmt -- --check
|
||||||
|
rust_syntax_rc=$?
|
||||||
|
|
||||||
|
if [[ $rust_syntax_rc -eq 0 ]] && [[ $c_syntax_rc -eq 0 ]]; then
|
||||||
|
echo "Code looks fine for me!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -p "Do you want fix syntax? (y/n): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1
|
||||||
|
|
||||||
|
cd $PROJECT_DIR/core-rs && cargo fmt --
|
||||||
|
|
||||||
|
cd $PROJECT_DIR
|
||||||
|
|
||||||
|
# We use root in container and clang-format rewriting files. We'll need change owner to original
|
||||||
|
local_user=$(stat -c '%u' .clang-format)
|
||||||
|
$CLANG_FORMAT_BIN -style=file -i $C_FILES
|
||||||
|
chown $local_user $C_FILES
|
4
syntax_check.sh
Executable file
4
syntax_check.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
echo "RUN SYNTAX CHECK INSIDE CONTAINER"
|
||||||
|
docker-compose exec dev ./docker/syntax_check.sh
|
@ -111,15 +111,22 @@ PRIORITY THAN THIS! (higher priorities are lower numeric values. */
|
|||||||
|
|
||||||
/* Interrupt priorities used by the kernel port layer itself. These are generic
|
/* Interrupt priorities used by the kernel port layer itself. These are generic
|
||||||
to all Cortex-M ports, and do not rely on any particular library functions. */
|
to all Cortex-M ports, and do not rely on any particular library functions. */
|
||||||
#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
|
#define configKERNEL_INTERRUPT_PRIORITY \
|
||||||
|
(configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))
|
||||||
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
|
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
|
||||||
See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
|
See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
|
||||||
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
|
#define configMAX_SYSCALL_INTERRUPT_PRIORITY \
|
||||||
|
(configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))
|
||||||
|
|
||||||
/* Normal assert() semantics without relying on the provision of an assert.h
|
/* Normal assert() semantics without relying on the provision of an assert.h
|
||||||
header file. */
|
header file. */
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
#define configASSERT( x ) if ((x) == 0) {taskDISABLE_INTERRUPTS(); for( ;; );}
|
#define configASSERT(x) \
|
||||||
|
if((x) == 0) { \
|
||||||
|
taskDISABLE_INTERRUPTS(); \
|
||||||
|
for(;;) \
|
||||||
|
; \
|
||||||
|
}
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
|
/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
|
||||||
|
@ -9,11 +9,7 @@ GPIO and HAL implementations
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum { GpioModeInput, GpioModeOutput, GpioModeOpenDrain } GpioMode;
|
||||||
GpioModeInput,
|
|
||||||
GpioModeOutput,
|
|
||||||
GpioModeOpenDrain
|
|
||||||
} GpioMode;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
GPIO_TypeDef* port;
|
GPIO_TypeDef* port;
|
||||||
@ -50,7 +46,8 @@ inline void app_tim_ic_init(bool both) {
|
|||||||
HAL_TIM_OC_Stop(&htim8, TIM_CHANNEL_2);
|
HAL_TIM_OC_Stop(&htim8, TIM_CHANNEL_2);
|
||||||
|
|
||||||
TIM_IC_InitTypeDef sConfigIC = {0};
|
TIM_IC_InitTypeDef sConfigIC = {0};
|
||||||
sConfigIC.ICPolarity = both ? TIM_INPUTCHANNELPOLARITY_BOTHEDGE : TIM_INPUTCHANNELPOLARITY_FALLING;
|
sConfigIC.ICPolarity = both ? TIM_INPUTCHANNELPOLARITY_BOTHEDGE :
|
||||||
|
TIM_INPUTCHANNELPOLARITY_FALLING;
|
||||||
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
||||||
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
||||||
sConfigIC.ICFilter = 0;
|
sConfigIC.ICFilter = 0;
|
||||||
|
@ -38,10 +38,7 @@ extern "C" {
|
|||||||
/* Exported types ------------------------------------------------------------*/
|
/* Exported types ------------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN ET */
|
/* USER CODE BEGIN ET */
|
||||||
|
|
||||||
typedef enum {
|
typedef enum { TimerEventInputCapture, TimerEventEndOfPulse } TimerEvent;
|
||||||
TimerEventInputCapture,
|
|
||||||
TimerEventEndOfPulse
|
|
||||||
} TimerEvent;
|
|
||||||
|
|
||||||
/* USER CODE END ET */
|
/* USER CODE END ET */
|
||||||
|
|
||||||
@ -138,12 +135,24 @@ void register_tim8_callback_ch2(void(*callback)(uint16_t ccr, TimerEvent tim_eve
|
|||||||
#define EM_PIN_GPIO_Port RFID_OUT_GPIO_Port
|
#define EM_PIN_GPIO_Port RFID_OUT_GPIO_Port
|
||||||
#define EM_PIN_Pin RFID_OUT_Pin
|
#define EM_PIN_Pin RFID_OUT_Pin
|
||||||
|
|
||||||
#define MISO_PIN GpioPin{.port = GPIOC, .pin = GPIO_PIN_11}
|
#define MISO_PIN \
|
||||||
|
GpioPin { \
|
||||||
|
.port = GPIOC, .pin = GPIO_PIN_11 \
|
||||||
|
}
|
||||||
// #define MOSI_PIN 11
|
// #define MOSI_PIN 11
|
||||||
#define SS_PIN GpioPin{.port = CC1101_CS_GPIO_Port, .pin = CC1101_CS_Pin}
|
#define SS_PIN \
|
||||||
|
GpioPin { \
|
||||||
|
.port = CC1101_CS_GPIO_Port, .pin = CC1101_CS_Pin \
|
||||||
|
}
|
||||||
//2 main, 5 remote, 3 M16
|
//2 main, 5 remote, 3 M16
|
||||||
#define GDO2 GpioPin{.port = NULL, .pin = 0}
|
#define GDO2 \
|
||||||
#define GDO0 GpioPin{.port = CC1101_G0_GPIO_Port, .pin = CC1101_G0_Pin}
|
GpioPin { \
|
||||||
|
.port = NULL, .pin = 0 \
|
||||||
|
}
|
||||||
|
#define GDO0 \
|
||||||
|
GpioPin { \
|
||||||
|
.port = CC1101_G0_GPIO_Port, .pin = CC1101_G0_Pin \
|
||||||
|
}
|
||||||
|
|
||||||
/* USER CODE END Private defines */
|
/* USER CODE END Private defines */
|
||||||
|
|
||||||
|
@ -141,7 +141,8 @@
|
|||||||
* which is subject to manufacturing process variations.
|
* which is subject to manufacturing process variations.
|
||||||
*/
|
*/
|
||||||
#if !defined(HSI48_VALUE)
|
#if !defined(HSI48_VALUE)
|
||||||
#define HSI48_VALUE ((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for USB FS/SDMMC/RNG in Hz.
|
#define HSI48_VALUE \
|
||||||
|
((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for USB FS/SDMMC/RNG in Hz.
|
||||||
The real value my vary depending on manufacturing process variations.*/
|
The real value my vary depending on manufacturing process variations.*/
|
||||||
#endif /* HSI48_VALUE */
|
#endif /* HSI48_VALUE */
|
||||||
|
|
||||||
@ -172,7 +173,8 @@
|
|||||||
* frequency.
|
* frequency.
|
||||||
*/
|
*/
|
||||||
#if !defined(EXTERNAL_SAI1_CLOCK_VALUE)
|
#if !defined(EXTERNAL_SAI1_CLOCK_VALUE)
|
||||||
#define EXTERNAL_SAI1_CLOCK_VALUE ((uint32_t)2097000U) /*!< Value of the SAI1 External clock source in Hz*/
|
#define EXTERNAL_SAI1_CLOCK_VALUE \
|
||||||
|
((uint32_t)2097000U) /*!< Value of the SAI1 External clock source in Hz*/
|
||||||
#endif /* EXTERNAL_SAI1_CLOCK_VALUE */
|
#endif /* EXTERNAL_SAI1_CLOCK_VALUE */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -181,7 +183,8 @@
|
|||||||
* frequency.
|
* frequency.
|
||||||
*/
|
*/
|
||||||
#if !defined(EXTERNAL_SAI2_CLOCK_VALUE)
|
#if !defined(EXTERNAL_SAI2_CLOCK_VALUE)
|
||||||
#define EXTERNAL_SAI2_CLOCK_VALUE ((uint32_t)2097000U) /*!< Value of the SAI2 External clock source in Hz*/
|
#define EXTERNAL_SAI2_CLOCK_VALUE \
|
||||||
|
((uint32_t)2097000U) /*!< Value of the SAI2 External clock source in Hz*/
|
||||||
#endif /* EXTERNAL_SAI2_CLOCK_VALUE */
|
#endif /* EXTERNAL_SAI2_CLOCK_VALUE */
|
||||||
|
|
||||||
/* Tip: To avoid modifying this file each time you need to use different HSE,
|
/* Tip: To avoid modifying this file each time you need to use different HSE,
|
||||||
|
@ -106,7 +106,8 @@
|
|||||||
/* DEBUG macros */
|
/* DEBUG macros */
|
||||||
|
|
||||||
#if(USBD_DEBUG_LEVEL > 0)
|
#if(USBD_DEBUG_LEVEL > 0)
|
||||||
#define USBD_UsrLog(...) printf(__VA_ARGS__);\
|
#define USBD_UsrLog(...) \
|
||||||
|
printf(__VA_ARGS__); \
|
||||||
printf("\n");
|
printf("\n");
|
||||||
#else
|
#else
|
||||||
#define USBD_UsrLog(...)
|
#define USBD_UsrLog(...)
|
||||||
@ -114,7 +115,8 @@
|
|||||||
|
|
||||||
#if(USBD_DEBUG_LEVEL > 1)
|
#if(USBD_DEBUG_LEVEL > 1)
|
||||||
|
|
||||||
#define USBD_ErrLog(...) printf("ERROR: ") ;\
|
#define USBD_ErrLog(...) \
|
||||||
|
printf("ERROR: "); \
|
||||||
printf(__VA_ARGS__); \
|
printf(__VA_ARGS__); \
|
||||||
printf("\n");
|
printf("\n");
|
||||||
#else
|
#else
|
||||||
@ -122,7 +124,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if(USBD_DEBUG_LEVEL > 2)
|
#if(USBD_DEBUG_LEVEL > 2)
|
||||||
#define USBD_DbgLog(...) printf("DEBUG : ") ;\
|
#define USBD_DbgLog(...) \
|
||||||
|
printf("DEBUG : "); \
|
||||||
printf(__VA_ARGS__); \
|
printf(__VA_ARGS__); \
|
||||||
printf("\n");
|
printf("\n");
|
||||||
#else
|
#else
|
||||||
|
@ -38,7 +38,8 @@ void app_gpio_init(GpioPin gpio, GpioMode mode) {
|
|||||||
void delay_us(uint32_t time) {
|
void delay_us(uint32_t time) {
|
||||||
time *= 11.8;
|
time *= 11.8;
|
||||||
|
|
||||||
while(time--) {}
|
while(time--) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void pwm_set(float value, float freq, TIM_HandleTypeDef* tim, uint32_t channel) {
|
void pwm_set(float value, float freq, TIM_HandleTypeDef* tim, uint32_t channel) {
|
||||||
|
@ -55,17 +55,20 @@
|
|||||||
/* USER CODE END FunctionPrototypes */
|
/* USER CODE END FunctionPrototypes */
|
||||||
|
|
||||||
/* GetIdleTaskMemory prototype (linked to static allocation support) */
|
/* GetIdleTaskMemory prototype (linked to static allocation support) */
|
||||||
void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
|
void vApplicationGetIdleTaskMemory(StaticTask_t** ppxIdleTaskTCBBuffer,
|
||||||
|
StackType_t** ppxIdleTaskStackBuffer,
|
||||||
|
uint32_t* pulIdleTaskStackSize);
|
||||||
|
|
||||||
/* GetTimerTaskMemory prototype (linked to static allocation support) */
|
/* GetTimerTaskMemory prototype (linked to static allocation support) */
|
||||||
void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t **ppxTimerTaskStackBuffer, uint32_t *pulTimerTaskStackSize );
|
void vApplicationGetTimerTaskMemory(StaticTask_t** ppxTimerTaskTCBBuffer,
|
||||||
|
StackType_t** ppxTimerTaskStackBuffer,
|
||||||
|
uint32_t* pulTimerTaskStackSize);
|
||||||
|
|
||||||
/* Hook prototypes */
|
/* Hook prototypes */
|
||||||
void vApplicationIdleHook(void);
|
void vApplicationIdleHook(void);
|
||||||
|
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
__weak void vApplicationIdleHook( void )
|
__weak void vApplicationIdleHook(void) {
|
||||||
{
|
|
||||||
/* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set
|
/* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set
|
||||||
to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle
|
to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle
|
||||||
task. It is essential that code added to this hook function never attempts
|
task. It is essential that code added to this hook function never attempts
|
||||||
@ -82,8 +85,9 @@ __weak void vApplicationIdleHook( void )
|
|||||||
static StaticTask_t xIdleTaskTCBBuffer;
|
static StaticTask_t xIdleTaskTCBBuffer;
|
||||||
static StackType_t xIdleStack[configMINIMAL_STACK_SIZE];
|
static StackType_t xIdleStack[configMINIMAL_STACK_SIZE];
|
||||||
|
|
||||||
void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize )
|
void vApplicationGetIdleTaskMemory(StaticTask_t** ppxIdleTaskTCBBuffer,
|
||||||
{
|
StackType_t** ppxIdleTaskStackBuffer,
|
||||||
|
uint32_t* pulIdleTaskStackSize) {
|
||||||
*ppxIdleTaskTCBBuffer = &xIdleTaskTCBBuffer;
|
*ppxIdleTaskTCBBuffer = &xIdleTaskTCBBuffer;
|
||||||
*ppxIdleTaskStackBuffer = &xIdleStack[0];
|
*ppxIdleTaskStackBuffer = &xIdleStack[0];
|
||||||
*pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
|
*pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
|
||||||
@ -95,8 +99,9 @@ void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackTy
|
|||||||
static StaticTask_t xTimerTaskTCBBuffer;
|
static StaticTask_t xTimerTaskTCBBuffer;
|
||||||
static StackType_t xTimerStack[configTIMER_TASK_STACK_DEPTH];
|
static StackType_t xTimerStack[configTIMER_TASK_STACK_DEPTH];
|
||||||
|
|
||||||
void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t **ppxTimerTaskStackBuffer, uint32_t *pulTimerTaskStackSize )
|
void vApplicationGetTimerTaskMemory(StaticTask_t** ppxTimerTaskTCBBuffer,
|
||||||
{
|
StackType_t** ppxTimerTaskStackBuffer,
|
||||||
|
uint32_t* pulTimerTaskStackSize) {
|
||||||
*ppxTimerTaskTCBBuffer = &xTimerTaskTCBBuffer;
|
*ppxTimerTaskTCBBuffer = &xTimerTaskTCBBuffer;
|
||||||
*ppxTimerTaskStackBuffer = &xTimerStack[0];
|
*ppxTimerTaskStackBuffer = &xTimerStack[0];
|
||||||
*pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
|
*pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
|
||||||
|
@ -90,13 +90,11 @@ void StartDefaultTask(void const * argument);
|
|||||||
* @brief The application entry point.
|
* @brief The application entry point.
|
||||||
* @retval int
|
* @retval int
|
||||||
*/
|
*/
|
||||||
int main(void)
|
int main(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
|
|
||||||
/* MCU Configuration--------------------------------------------------------*/
|
/* MCU Configuration--------------------------------------------------------*/
|
||||||
|
|
||||||
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
|
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
|
||||||
@ -160,8 +158,7 @@ int main(void)
|
|||||||
|
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
/* USER CODE BEGIN WHILE */
|
/* USER CODE BEGIN WHILE */
|
||||||
while (1)
|
while(1) {
|
||||||
{
|
|
||||||
/* USER CODE END WHILE */
|
/* USER CODE END WHILE */
|
||||||
|
|
||||||
/* USER CODE BEGIN 3 */
|
/* USER CODE BEGIN 3 */
|
||||||
@ -173,8 +170,7 @@ int main(void)
|
|||||||
* @brief System Clock Configuration
|
* @brief System Clock Configuration
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void SystemClock_Config(void)
|
void SystemClock_Config(void) {
|
||||||
{
|
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
|
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
|
||||||
@ -190,25 +186,23 @@ void SystemClock_Config(void)
|
|||||||
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7;
|
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7;
|
||||||
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
|
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
|
||||||
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
|
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
|
if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/** Initializes the CPU, AHB and APB busses clocks
|
/** Initializes the CPU, AHB and APB busses clocks
|
||||||
*/
|
*/
|
||||||
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 |
|
||||||
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
|
RCC_CLOCKTYPE_PCLK2;
|
||||||
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
|
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
|
||||||
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
||||||
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
|
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
|
||||||
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
|
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
|
||||||
|
|
||||||
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK)
|
if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1|RCC_PERIPHCLK_USB
|
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USB |
|
||||||
|RCC_PERIPHCLK_ADC;
|
RCC_PERIPHCLK_ADC;
|
||||||
PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
|
PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
|
||||||
PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_SYSCLK;
|
PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_SYSCLK;
|
||||||
PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLLSAI1;
|
PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLLSAI1;
|
||||||
@ -219,14 +213,12 @@ void SystemClock_Config(void)
|
|||||||
PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2;
|
PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2;
|
||||||
PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2;
|
PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2;
|
||||||
PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_48M2CLK;
|
PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_48M2CLK;
|
||||||
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
|
if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/** Configure the main internal regulator output voltage
|
/** Configure the main internal regulator output voltage
|
||||||
*/
|
*/
|
||||||
if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK)
|
if(HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -236,9 +228,7 @@ void SystemClock_Config(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_ADC1_Init(void)
|
static void MX_ADC1_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN ADC1_Init 0 */
|
/* USER CODE BEGIN ADC1_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END ADC1_Init 0 */
|
/* USER CODE END ADC1_Init 0 */
|
||||||
@ -266,15 +256,13 @@ static void MX_ADC1_Init(void)
|
|||||||
hadc1.Init.DMAContinuousRequests = DISABLE;
|
hadc1.Init.DMAContinuousRequests = DISABLE;
|
||||||
hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
||||||
hadc1.Init.OversamplingMode = DISABLE;
|
hadc1.Init.OversamplingMode = DISABLE;
|
||||||
if (HAL_ADC_Init(&hadc1) != HAL_OK)
|
if(HAL_ADC_Init(&hadc1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/** Configure the ADC multi-mode
|
/** Configure the ADC multi-mode
|
||||||
*/
|
*/
|
||||||
multimode.Mode = ADC_MODE_INDEPENDENT;
|
multimode.Mode = ADC_MODE_INDEPENDENT;
|
||||||
if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK)
|
if(HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/** Configure Regular Channel
|
/** Configure Regular Channel
|
||||||
@ -285,14 +273,12 @@ static void MX_ADC1_Init(void)
|
|||||||
sConfig.SingleDiff = ADC_SINGLE_ENDED;
|
sConfig.SingleDiff = ADC_SINGLE_ENDED;
|
||||||
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
||||||
sConfig.Offset = 0;
|
sConfig.Offset = 0;
|
||||||
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
|
if(HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN ADC1_Init 2 */
|
/* USER CODE BEGIN ADC1_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END ADC1_Init 2 */
|
/* USER CODE END ADC1_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -300,9 +286,7 @@ static void MX_ADC1_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_COMP1_Init(void)
|
static void MX_COMP1_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN COMP1_Init 0 */
|
/* USER CODE BEGIN COMP1_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END COMP1_Init 0 */
|
/* USER CODE END COMP1_Init 0 */
|
||||||
@ -319,14 +303,12 @@ static void MX_COMP1_Init(void)
|
|||||||
hcomp1.Init.Mode = COMP_POWERMODE_HIGHSPEED;
|
hcomp1.Init.Mode = COMP_POWERMODE_HIGHSPEED;
|
||||||
hcomp1.Init.WindowMode = COMP_WINDOWMODE_DISABLE;
|
hcomp1.Init.WindowMode = COMP_WINDOWMODE_DISABLE;
|
||||||
hcomp1.Init.TriggerMode = COMP_TRIGGERMODE_NONE;
|
hcomp1.Init.TriggerMode = COMP_TRIGGERMODE_NONE;
|
||||||
if (HAL_COMP_Init(&hcomp1) != HAL_OK)
|
if(HAL_COMP_Init(&hcomp1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN COMP1_Init 2 */
|
/* USER CODE BEGIN COMP1_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END COMP1_Init 2 */
|
/* USER CODE END COMP1_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -334,9 +316,7 @@ static void MX_COMP1_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_DAC1_Init(void)
|
static void MX_DAC1_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN DAC1_Init 0 */
|
/* USER CODE BEGIN DAC1_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END DAC1_Init 0 */
|
/* USER CODE END DAC1_Init 0 */
|
||||||
@ -349,8 +329,7 @@ static void MX_DAC1_Init(void)
|
|||||||
/** DAC Initialization
|
/** DAC Initialization
|
||||||
*/
|
*/
|
||||||
hdac1.Instance = DAC1;
|
hdac1.Instance = DAC1;
|
||||||
if (HAL_DAC_Init(&hdac1) != HAL_OK)
|
if(HAL_DAC_Init(&hdac1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/** DAC channel OUT1 config
|
/** DAC channel OUT1 config
|
||||||
@ -360,14 +339,12 @@ static void MX_DAC1_Init(void)
|
|||||||
sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
|
sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
|
||||||
sConfig.DAC_ConnectOnChipPeripheral = DAC_CHIPCONNECT_ENABLE;
|
sConfig.DAC_ConnectOnChipPeripheral = DAC_CHIPCONNECT_ENABLE;
|
||||||
sConfig.DAC_UserTrimming = DAC_TRIMMING_FACTORY;
|
sConfig.DAC_UserTrimming = DAC_TRIMMING_FACTORY;
|
||||||
if (HAL_DAC_ConfigChannel(&hdac1, &sConfig, DAC_CHANNEL_1) != HAL_OK)
|
if(HAL_DAC_ConfigChannel(&hdac1, &sConfig, DAC_CHANNEL_1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN DAC1_Init 2 */
|
/* USER CODE BEGIN DAC1_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END DAC1_Init 2 */
|
/* USER CODE END DAC1_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -375,9 +352,7 @@ static void MX_DAC1_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_SPI1_Init(void)
|
static void MX_SPI1_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN SPI1_Init 0 */
|
/* USER CODE BEGIN SPI1_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_Init 0 */
|
/* USER CODE END SPI1_Init 0 */
|
||||||
@ -400,14 +375,12 @@ static void MX_SPI1_Init(void)
|
|||||||
hspi1.Init.CRCPolynomial = 7;
|
hspi1.Init.CRCPolynomial = 7;
|
||||||
hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
|
hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
|
||||||
hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
|
hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
|
||||||
if (HAL_SPI_Init(&hspi1) != HAL_OK)
|
if(HAL_SPI_Init(&hspi1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN SPI1_Init 2 */
|
/* USER CODE BEGIN SPI1_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_Init 2 */
|
/* USER CODE END SPI1_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -415,9 +388,7 @@ static void MX_SPI1_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_SPI3_Init(void)
|
static void MX_SPI3_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN SPI3_Init 0 */
|
/* USER CODE BEGIN SPI3_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI3_Init 0 */
|
/* USER CODE END SPI3_Init 0 */
|
||||||
@ -440,14 +411,12 @@ static void MX_SPI3_Init(void)
|
|||||||
hspi3.Init.CRCPolynomial = 7;
|
hspi3.Init.CRCPolynomial = 7;
|
||||||
hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
|
hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
|
||||||
hspi3.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
|
hspi3.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
|
||||||
if (HAL_SPI_Init(&hspi3) != HAL_OK)
|
if(HAL_SPI_Init(&hspi3) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN SPI3_Init 2 */
|
/* USER CODE BEGIN SPI3_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END SPI3_Init 2 */
|
/* USER CODE END SPI3_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -455,9 +424,7 @@ static void MX_SPI3_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_TIM5_Init(void)
|
static void MX_TIM5_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM5_Init 0 */
|
/* USER CODE BEGIN TIM5_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_Init 0 */
|
/* USER CODE END TIM5_Init 0 */
|
||||||
@ -474,29 +441,25 @@ static void MX_TIM5_Init(void)
|
|||||||
htim5.Init.Period = 291;
|
htim5.Init.Period = 291;
|
||||||
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
if (HAL_TIM_PWM_Init(&htim5) != HAL_OK)
|
if(HAL_TIM_PWM_Init(&htim5) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)
|
if(HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
sConfigOC.Pulse = 145;
|
sConfigOC.Pulse = 145;
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
|
if(HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_4) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN TIM5_Init 2 */
|
/* USER CODE BEGIN TIM5_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_Init 2 */
|
/* USER CODE END TIM5_Init 2 */
|
||||||
HAL_TIM_MspPostInit(&htim5);
|
HAL_TIM_MspPostInit(&htim5);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -504,9 +467,7 @@ static void MX_TIM5_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_TIM8_Init(void)
|
static void MX_TIM8_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM8_Init 0 */
|
/* USER CODE BEGIN TIM8_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM8_Init 0 */
|
/* USER CODE END TIM8_Init 0 */
|
||||||
@ -525,38 +486,32 @@ static void MX_TIM8_Init(void)
|
|||||||
htim8.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim8.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htim8.Init.RepetitionCounter = 0;
|
htim8.Init.RepetitionCounter = 0;
|
||||||
htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
if (HAL_TIM_Base_Init(&htim8) != HAL_OK)
|
if(HAL_TIM_Base_Init(&htim8) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
||||||
if (HAL_TIM_ConfigClockSource(&htim8, &sClockSourceConfig) != HAL_OK)
|
if(HAL_TIM_ConfigClockSource(&htim8, &sClockSourceConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (HAL_TIM_IC_Init(&htim8) != HAL_OK)
|
if(HAL_TIM_IC_Init(&htim8) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
|
sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim8, &sMasterConfig) != HAL_OK)
|
if(HAL_TIMEx_MasterConfigSynchronization(&htim8, &sMasterConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_BOTHEDGE;
|
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_BOTHEDGE;
|
||||||
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
||||||
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
||||||
sConfigIC.ICFilter = 0;
|
sConfigIC.ICFilter = 0;
|
||||||
if (HAL_TIM_IC_ConfigChannel(&htim8, &sConfigIC, TIM_CHANNEL_2) != HAL_OK)
|
if(HAL_TIM_IC_ConfigChannel(&htim8, &sConfigIC, TIM_CHANNEL_2) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN TIM8_Init 2 */
|
/* USER CODE BEGIN TIM8_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END TIM8_Init 2 */
|
/* USER CODE END TIM8_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -564,9 +519,7 @@ static void MX_TIM8_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_TIM15_Init(void)
|
static void MX_TIM15_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM15_Init 0 */
|
/* USER CODE BEGIN TIM15_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM15_Init 0 */
|
/* USER CODE END TIM15_Init 0 */
|
||||||
@ -585,14 +538,12 @@ static void MX_TIM15_Init(void)
|
|||||||
htim15.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim15.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htim15.Init.RepetitionCounter = 0;
|
htim15.Init.RepetitionCounter = 0;
|
||||||
htim15.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
htim15.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
if (HAL_TIM_OC_Init(&htim15) != HAL_OK)
|
if(HAL_TIM_OC_Init(&htim15) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim15, &sMasterConfig) != HAL_OK)
|
if(HAL_TIMEx_MasterConfigSynchronization(&htim15, &sMasterConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sConfigOC.OCMode = TIM_OCMODE_TIMING;
|
sConfigOC.OCMode = TIM_OCMODE_TIMING;
|
||||||
@ -602,12 +553,10 @@ static void MX_TIM15_Init(void)
|
|||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
|
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
|
||||||
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
|
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim15, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
if(HAL_TIM_OC_ConfigChannel(&htim15, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim15, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
|
if(HAL_TIM_OC_ConfigChannel(&htim15, &sConfigOC, TIM_CHANNEL_2) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
|
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
|
||||||
@ -617,15 +566,13 @@ static void MX_TIM15_Init(void)
|
|||||||
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
|
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
|
||||||
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
|
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
|
||||||
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
|
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
|
||||||
if (HAL_TIMEx_ConfigBreakDeadTime(&htim15, &sBreakDeadTimeConfig) != HAL_OK)
|
if(HAL_TIMEx_ConfigBreakDeadTime(&htim15, &sBreakDeadTimeConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN TIM15_Init 2 */
|
/* USER CODE BEGIN TIM15_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END TIM15_Init 2 */
|
/* USER CODE END TIM15_Init 2 */
|
||||||
HAL_TIM_MspPostInit(&htim15);
|
HAL_TIM_MspPostInit(&htim15);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -633,9 +580,7 @@ static void MX_TIM15_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_USART1_UART_Init(void)
|
static void MX_USART1_UART_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN USART1_Init 0 */
|
/* USER CODE BEGIN USART1_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END USART1_Init 0 */
|
/* USER CODE END USART1_Init 0 */
|
||||||
@ -653,14 +598,12 @@ static void MX_USART1_UART_Init(void)
|
|||||||
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
|
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||||
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||||||
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||||||
if (HAL_UART_Init(&huart1) != HAL_OK)
|
if(HAL_UART_Init(&huart1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN USART1_Init 2 */
|
/* USER CODE BEGIN USART1_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END USART1_Init 2 */
|
/* USER CODE END USART1_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -668,8 +611,7 @@ static void MX_USART1_UART_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_GPIO_Init(void)
|
static void MX_GPIO_Init(void) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
|
|
||||||
/* GPIO Ports Clock Enable */
|
/* GPIO Ports Clock Enable */
|
||||||
@ -798,7 +740,6 @@ static void MX_GPIO_Init(void)
|
|||||||
|
|
||||||
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0);
|
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
|
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 4 */
|
/* USER CODE BEGIN 4 */
|
||||||
@ -812,16 +753,14 @@ void app();
|
|||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header_StartDefaultTask */
|
/* USER CODE END Header_StartDefaultTask */
|
||||||
void StartDefaultTask(void const * argument)
|
void StartDefaultTask(void const* argument) {
|
||||||
{
|
|
||||||
/* init code for USB_DEVICE */
|
/* init code for USB_DEVICE */
|
||||||
MX_USB_DEVICE_Init();
|
MX_USB_DEVICE_Init();
|
||||||
/* USER CODE BEGIN 5 */
|
/* USER CODE BEGIN 5 */
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
app();
|
app();
|
||||||
|
|
||||||
for(;;)
|
for(;;) {
|
||||||
{
|
|
||||||
osDelay(1);
|
osDelay(1);
|
||||||
}
|
}
|
||||||
/* USER CODE END 5 */
|
/* USER CODE END 5 */
|
||||||
@ -831,8 +770,7 @@ void StartDefaultTask(void const * argument)
|
|||||||
* @brief This function is executed in case of error occurrence.
|
* @brief This function is executed in case of error occurrence.
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void Error_Handler(void)
|
void Error_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN Error_Handler_Debug */
|
/* USER CODE BEGIN Error_Handler_Debug */
|
||||||
/* User can add his own implementation to report the HAL error return state */
|
/* User can add his own implementation to report the HAL error return state */
|
||||||
|
|
||||||
@ -847,8 +785,7 @@ void Error_Handler(void)
|
|||||||
* @param line: assert_param error line source number
|
* @param line: assert_param error line source number
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void assert_failed(char *file, uint32_t line)
|
void assert_failed(char* file, uint32_t line) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 6 */
|
/* USER CODE BEGIN 6 */
|
||||||
/* User can add his own implementation to report the file name and line number,
|
/* 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) */
|
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
|
||||||
|
@ -63,8 +63,7 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
|||||||
/**
|
/**
|
||||||
* Initializes the Global MSP.
|
* Initializes the Global MSP.
|
||||||
*/
|
*/
|
||||||
void HAL_MspInit(void)
|
void HAL_MspInit(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN MspInit 0 */
|
/* USER CODE BEGIN MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END MspInit 0 */
|
/* USER CODE END MspInit 0 */
|
||||||
@ -87,11 +86,9 @@ void HAL_MspInit(void)
|
|||||||
* @param hadc: ADC handle pointer
|
* @param hadc: ADC handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
|
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(hadc->Instance==ADC1)
|
if(hadc->Instance == ADC1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN ADC1_MspInit 0 */
|
/* USER CODE BEGIN ADC1_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END ADC1_MspInit 0 */
|
/* USER CODE END ADC1_MspInit 0 */
|
||||||
@ -118,7 +115,6 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
|
|||||||
|
|
||||||
/* USER CODE END ADC1_MspInit 1 */
|
/* USER CODE END ADC1_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -127,10 +123,8 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
|
|||||||
* @param hadc: ADC handle pointer
|
* @param hadc: ADC handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
|
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) {
|
||||||
{
|
if(hadc->Instance == ADC1) {
|
||||||
if(hadc->Instance==ADC1)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN ADC1_MspDeInit 0 */
|
/* USER CODE BEGIN ADC1_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END ADC1_MspDeInit 0 */
|
/* USER CODE END ADC1_MspDeInit 0 */
|
||||||
@ -149,7 +143,6 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
|
|||||||
|
|
||||||
/* USER CODE END ADC1_MspDeInit 1 */
|
/* USER CODE END ADC1_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -158,11 +151,9 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
|
|||||||
* @param hcomp: COMP handle pointer
|
* @param hcomp: COMP handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_COMP_MspInit(COMP_HandleTypeDef* hcomp)
|
void HAL_COMP_MspInit(COMP_HandleTypeDef* hcomp) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(hcomp->Instance==COMP1)
|
if(hcomp->Instance == COMP1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN COMP1_MspInit 0 */
|
/* USER CODE BEGIN COMP1_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END COMP1_MspInit 0 */
|
/* USER CODE END COMP1_MspInit 0 */
|
||||||
@ -180,7 +171,6 @@ void HAL_COMP_MspInit(COMP_HandleTypeDef* hcomp)
|
|||||||
|
|
||||||
/* USER CODE END COMP1_MspInit 1 */
|
/* USER CODE END COMP1_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -189,10 +179,8 @@ void HAL_COMP_MspInit(COMP_HandleTypeDef* hcomp)
|
|||||||
* @param hcomp: COMP handle pointer
|
* @param hcomp: COMP handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_COMP_MspDeInit(COMP_HandleTypeDef* hcomp)
|
void HAL_COMP_MspDeInit(COMP_HandleTypeDef* hcomp) {
|
||||||
{
|
if(hcomp->Instance == COMP1) {
|
||||||
if(hcomp->Instance==COMP1)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN COMP1_MspDeInit 0 */
|
/* USER CODE BEGIN COMP1_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END COMP1_MspDeInit 0 */
|
/* USER CODE END COMP1_MspDeInit 0 */
|
||||||
@ -206,7 +194,6 @@ void HAL_COMP_MspDeInit(COMP_HandleTypeDef* hcomp)
|
|||||||
|
|
||||||
/* USER CODE END COMP1_MspDeInit 1 */
|
/* USER CODE END COMP1_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -215,11 +202,9 @@ void HAL_COMP_MspDeInit(COMP_HandleTypeDef* hcomp)
|
|||||||
* @param hdac: DAC handle pointer
|
* @param hdac: DAC handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
|
void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(hdac->Instance==DAC1)
|
if(hdac->Instance == DAC1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN DAC1_MspInit 0 */
|
/* USER CODE BEGIN DAC1_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END DAC1_MspInit 0 */
|
/* USER CODE END DAC1_MspInit 0 */
|
||||||
@ -239,7 +224,6 @@ void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
|
|||||||
|
|
||||||
/* USER CODE END DAC1_MspInit 1 */
|
/* USER CODE END DAC1_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -248,10 +232,8 @@ void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
|
|||||||
* @param hdac: DAC handle pointer
|
* @param hdac: DAC handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
|
void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac) {
|
||||||
{
|
if(hdac->Instance == DAC1) {
|
||||||
if(hdac->Instance==DAC1)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN DAC1_MspDeInit 0 */
|
/* USER CODE BEGIN DAC1_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END DAC1_MspDeInit 0 */
|
/* USER CODE END DAC1_MspDeInit 0 */
|
||||||
@ -267,7 +249,6 @@ void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
|
|||||||
|
|
||||||
/* USER CODE END DAC1_MspDeInit 1 */
|
/* USER CODE END DAC1_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -276,11 +257,9 @@ void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
|
|||||||
* @param hspi: SPI handle pointer
|
* @param hspi: SPI handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(hspi->Instance==SPI1)
|
if(hspi->Instance == SPI1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SPI1_MspInit 0 */
|
/* USER CODE BEGIN SPI1_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_MspInit 0 */
|
/* USER CODE END SPI1_MspInit 0 */
|
||||||
@ -302,9 +281,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
|||||||
/* USER CODE BEGIN SPI1_MspInit 1 */
|
/* USER CODE BEGIN SPI1_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_MspInit 1 */
|
/* USER CODE END SPI1_MspInit 1 */
|
||||||
}
|
} else if(hspi->Instance == SPI3) {
|
||||||
else if(hspi->Instance==SPI3)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SPI3_MspInit 0 */
|
/* USER CODE BEGIN SPI3_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI3_MspInit 0 */
|
/* USER CODE END SPI3_MspInit 0 */
|
||||||
@ -328,7 +305,6 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
|||||||
|
|
||||||
/* USER CODE END SPI3_MspInit 1 */
|
/* USER CODE END SPI3_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -337,10 +313,8 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
|||||||
* @param hspi: SPI handle pointer
|
* @param hspi: SPI handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi) {
|
||||||
{
|
if(hspi->Instance == SPI1) {
|
||||||
if(hspi->Instance==SPI1)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SPI1_MspDeInit 0 */
|
/* USER CODE BEGIN SPI1_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_MspDeInit 0 */
|
/* USER CODE END SPI1_MspDeInit 0 */
|
||||||
@ -356,9 +330,7 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
|||||||
/* USER CODE BEGIN SPI1_MspDeInit 1 */
|
/* USER CODE BEGIN SPI1_MspDeInit 1 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_MspDeInit 1 */
|
/* USER CODE END SPI1_MspDeInit 1 */
|
||||||
}
|
} else if(hspi->Instance == SPI3) {
|
||||||
else if(hspi->Instance==SPI3)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SPI3_MspDeInit 0 */
|
/* USER CODE BEGIN SPI3_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI3_MspDeInit 0 */
|
/* USER CODE END SPI3_MspDeInit 0 */
|
||||||
@ -376,7 +348,6 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
|||||||
|
|
||||||
/* USER CODE END SPI3_MspDeInit 1 */
|
/* USER CODE END SPI3_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -385,10 +356,8 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
|||||||
* @param htim_pwm: TIM_PWM handle pointer
|
* @param htim_pwm: TIM_PWM handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
|
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm) {
|
||||||
{
|
if(htim_pwm->Instance == TIM5) {
|
||||||
if(htim_pwm->Instance==TIM5)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM5_MspInit 0 */
|
/* USER CODE BEGIN TIM5_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_MspInit 0 */
|
/* USER CODE END TIM5_MspInit 0 */
|
||||||
@ -398,7 +367,6 @@ void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
|
|||||||
|
|
||||||
/* USER CODE END TIM5_MspInit 1 */
|
/* USER CODE END TIM5_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -407,11 +375,9 @@ void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
|
|||||||
* @param htim_base: TIM_Base handle pointer
|
* @param htim_base: TIM_Base handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(htim_base->Instance==TIM8)
|
if(htim_base->Instance == TIM8) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM8_MspInit 0 */
|
/* USER CODE BEGIN TIM8_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM8_MspInit 0 */
|
/* USER CODE END TIM8_MspInit 0 */
|
||||||
@ -436,7 +402,6 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|||||||
|
|
||||||
/* USER CODE END TIM8_MspInit 1 */
|
/* USER CODE END TIM8_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -445,10 +410,8 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|||||||
* @param htim_oc: TIM_OC handle pointer
|
* @param htim_oc: TIM_OC handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef* htim_oc)
|
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef* htim_oc) {
|
||||||
{
|
if(htim_oc->Instance == TIM15) {
|
||||||
if(htim_oc->Instance==TIM15)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM15_MspInit 0 */
|
/* USER CODE BEGIN TIM15_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM15_MspInit 0 */
|
/* USER CODE END TIM15_MspInit 0 */
|
||||||
@ -458,14 +421,11 @@ void HAL_TIM_OC_MspInit(TIM_HandleTypeDef* htim_oc)
|
|||||||
|
|
||||||
/* USER CODE END TIM15_MspInit 1 */
|
/* USER CODE END TIM15_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(htim->Instance==TIM5)
|
if(htim->Instance == TIM5) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM5_MspPostInit 0 */
|
/* USER CODE BEGIN TIM5_MspPostInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_MspPostInit 0 */
|
/* USER CODE END TIM5_MspPostInit 0 */
|
||||||
@ -483,9 +443,7 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
/* USER CODE BEGIN TIM5_MspPostInit 1 */
|
/* USER CODE BEGIN TIM5_MspPostInit 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_MspPostInit 1 */
|
/* USER CODE END TIM5_MspPostInit 1 */
|
||||||
}
|
} else if(htim->Instance == TIM15) {
|
||||||
else if(htim->Instance==TIM15)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM15_MspPostInit 0 */
|
/* USER CODE BEGIN TIM15_MspPostInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM15_MspPostInit 0 */
|
/* USER CODE END TIM15_MspPostInit 0 */
|
||||||
@ -506,7 +464,6 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
|
|
||||||
/* USER CODE END TIM15_MspPostInit 1 */
|
/* USER CODE END TIM15_MspPostInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @brief TIM_PWM MSP De-Initialization
|
* @brief TIM_PWM MSP De-Initialization
|
||||||
@ -514,10 +471,8 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
* @param htim_pwm: TIM_PWM handle pointer
|
* @param htim_pwm: TIM_PWM handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
|
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm) {
|
||||||
{
|
if(htim_pwm->Instance == TIM5) {
|
||||||
if(htim_pwm->Instance==TIM5)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM5_MspDeInit 0 */
|
/* USER CODE BEGIN TIM5_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_MspDeInit 0 */
|
/* USER CODE END TIM5_MspDeInit 0 */
|
||||||
@ -527,7 +482,6 @@ void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
|
|||||||
|
|
||||||
/* USER CODE END TIM5_MspDeInit 1 */
|
/* USER CODE END TIM5_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -536,10 +490,8 @@ void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
|
|||||||
* @param htim_base: TIM_Base handle pointer
|
* @param htim_base: TIM_Base handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) {
|
||||||
{
|
if(htim_base->Instance == TIM8) {
|
||||||
if(htim_base->Instance==TIM8)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM8_MspDeInit 0 */
|
/* USER CODE BEGIN TIM8_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM8_MspDeInit 0 */
|
/* USER CODE END TIM8_MspDeInit 0 */
|
||||||
@ -557,7 +509,6 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|||||||
|
|
||||||
/* USER CODE END TIM8_MspDeInit 1 */
|
/* USER CODE END TIM8_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -566,10 +517,8 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|||||||
* @param htim_oc: TIM_OC handle pointer
|
* @param htim_oc: TIM_OC handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef* htim_oc)
|
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef* htim_oc) {
|
||||||
{
|
if(htim_oc->Instance == TIM15) {
|
||||||
if(htim_oc->Instance==TIM15)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM15_MspDeInit 0 */
|
/* USER CODE BEGIN TIM15_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM15_MspDeInit 0 */
|
/* USER CODE END TIM15_MspDeInit 0 */
|
||||||
@ -579,7 +528,6 @@ void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef* htim_oc)
|
|||||||
|
|
||||||
/* USER CODE END TIM15_MspDeInit 1 */
|
/* USER CODE END TIM15_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -588,11 +536,9 @@ void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef* htim_oc)
|
|||||||
* @param huart: UART handle pointer
|
* @param huart: UART handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
void HAL_UART_MspInit(UART_HandleTypeDef* huart) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(huart->Instance==USART1)
|
if(huart->Instance == USART1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN USART1_MspInit 0 */
|
/* USER CODE BEGIN USART1_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END USART1_MspInit 0 */
|
/* USER CODE END USART1_MspInit 0 */
|
||||||
@ -615,7 +561,6 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
|||||||
|
|
||||||
/* USER CODE END USART1_MspInit 1 */
|
/* USER CODE END USART1_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -624,10 +569,8 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
|||||||
* @param huart: UART handle pointer
|
* @param huart: UART handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) {
|
||||||
{
|
if(huart->Instance == USART1) {
|
||||||
if(huart->Instance==USART1)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN USART1_MspDeInit 0 */
|
/* USER CODE BEGIN USART1_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END USART1_MspDeInit 0 */
|
/* USER CODE END USART1_MspDeInit 0 */
|
||||||
@ -644,7 +587,6 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
|||||||
|
|
||||||
/* USER CODE END USART1_MspDeInit 1 */
|
/* USER CODE END USART1_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
@ -70,8 +70,7 @@ extern TIM_HandleTypeDef htim8;
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Non maskable interrupt.
|
* @brief This function handles Non maskable interrupt.
|
||||||
*/
|
*/
|
||||||
void NMI_Handler(void)
|
void NMI_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
|
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END NonMaskableInt_IRQn 0 */
|
/* USER CODE END NonMaskableInt_IRQn 0 */
|
||||||
@ -83,13 +82,11 @@ void NMI_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Hard fault interrupt.
|
* @brief This function handles Hard fault interrupt.
|
||||||
*/
|
*/
|
||||||
void HardFault_Handler(void)
|
void HardFault_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN HardFault_IRQn 0 */
|
/* USER CODE BEGIN HardFault_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END HardFault_IRQn 0 */
|
/* USER CODE END HardFault_IRQn 0 */
|
||||||
while (1)
|
while(1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN W1_HardFault_IRQn 0 */
|
/* USER CODE BEGIN W1_HardFault_IRQn 0 */
|
||||||
/* USER CODE END W1_HardFault_IRQn 0 */
|
/* USER CODE END W1_HardFault_IRQn 0 */
|
||||||
}
|
}
|
||||||
@ -98,13 +95,11 @@ void HardFault_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Memory management fault.
|
* @brief This function handles Memory management fault.
|
||||||
*/
|
*/
|
||||||
void MemManage_Handler(void)
|
void MemManage_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
|
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END MemoryManagement_IRQn 0 */
|
/* USER CODE END MemoryManagement_IRQn 0 */
|
||||||
while (1)
|
while(1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
|
/* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
|
||||||
/* USER CODE END W1_MemoryManagement_IRQn 0 */
|
/* USER CODE END W1_MemoryManagement_IRQn 0 */
|
||||||
}
|
}
|
||||||
@ -113,13 +108,11 @@ void MemManage_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Prefetch fault, memory access fault.
|
* @brief This function handles Prefetch fault, memory access fault.
|
||||||
*/
|
*/
|
||||||
void BusFault_Handler(void)
|
void BusFault_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN BusFault_IRQn 0 */
|
/* USER CODE BEGIN BusFault_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END BusFault_IRQn 0 */
|
/* USER CODE END BusFault_IRQn 0 */
|
||||||
while (1)
|
while(1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN W1_BusFault_IRQn 0 */
|
/* USER CODE BEGIN W1_BusFault_IRQn 0 */
|
||||||
/* USER CODE END W1_BusFault_IRQn 0 */
|
/* USER CODE END W1_BusFault_IRQn 0 */
|
||||||
}
|
}
|
||||||
@ -128,13 +121,11 @@ void BusFault_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Undefined instruction or illegal state.
|
* @brief This function handles Undefined instruction or illegal state.
|
||||||
*/
|
*/
|
||||||
void UsageFault_Handler(void)
|
void UsageFault_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN UsageFault_IRQn 0 */
|
/* USER CODE BEGIN UsageFault_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END UsageFault_IRQn 0 */
|
/* USER CODE END UsageFault_IRQn 0 */
|
||||||
while (1)
|
while(1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN W1_UsageFault_IRQn 0 */
|
/* USER CODE BEGIN W1_UsageFault_IRQn 0 */
|
||||||
/* USER CODE END W1_UsageFault_IRQn 0 */
|
/* USER CODE END W1_UsageFault_IRQn 0 */
|
||||||
}
|
}
|
||||||
@ -143,8 +134,7 @@ void UsageFault_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Debug monitor.
|
* @brief This function handles Debug monitor.
|
||||||
*/
|
*/
|
||||||
void DebugMon_Handler(void)
|
void DebugMon_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN DebugMonitor_IRQn 0 */
|
/* USER CODE BEGIN DebugMonitor_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END DebugMonitor_IRQn 0 */
|
/* USER CODE END DebugMonitor_IRQn 0 */
|
||||||
@ -156,15 +146,13 @@ void DebugMon_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles System tick timer.
|
* @brief This function handles System tick timer.
|
||||||
*/
|
*/
|
||||||
void SysTick_Handler(void)
|
void SysTick_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SysTick_IRQn 0 */
|
/* USER CODE BEGIN SysTick_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END SysTick_IRQn 0 */
|
/* USER CODE END SysTick_IRQn 0 */
|
||||||
HAL_IncTick();
|
HAL_IncTick();
|
||||||
#if(INCLUDE_xTaskGetSchedulerState == 1)
|
#if(INCLUDE_xTaskGetSchedulerState == 1)
|
||||||
if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED)
|
if(xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED) {
|
||||||
{
|
|
||||||
#endif /* INCLUDE_xTaskGetSchedulerState */
|
#endif /* INCLUDE_xTaskGetSchedulerState */
|
||||||
xPortSysTickHandler();
|
xPortSysTickHandler();
|
||||||
#if(INCLUDE_xTaskGetSchedulerState == 1)
|
#if(INCLUDE_xTaskGetSchedulerState == 1)
|
||||||
@ -185,8 +173,7 @@ void SysTick_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles EXTI line0 interrupt.
|
* @brief This function handles EXTI line0 interrupt.
|
||||||
*/
|
*/
|
||||||
void EXTI0_IRQHandler(void)
|
void EXTI0_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN EXTI0_IRQn 0 */
|
/* USER CODE BEGIN EXTI0_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END EXTI0_IRQn 0 */
|
/* USER CODE END EXTI0_IRQn 0 */
|
||||||
@ -199,8 +186,7 @@ void EXTI0_IRQHandler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles EXTI line1 interrupt.
|
* @brief This function handles EXTI line1 interrupt.
|
||||||
*/
|
*/
|
||||||
void EXTI1_IRQHandler(void)
|
void EXTI1_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN EXTI1_IRQn 0 */
|
/* USER CODE BEGIN EXTI1_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END EXTI1_IRQn 0 */
|
/* USER CODE END EXTI1_IRQn 0 */
|
||||||
@ -213,8 +199,7 @@ void EXTI1_IRQHandler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles EXTI line2 interrupt.
|
* @brief This function handles EXTI line2 interrupt.
|
||||||
*/
|
*/
|
||||||
void EXTI2_IRQHandler(void)
|
void EXTI2_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN EXTI2_IRQn 0 */
|
/* USER CODE BEGIN EXTI2_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END EXTI2_IRQn 0 */
|
/* USER CODE END EXTI2_IRQn 0 */
|
||||||
@ -227,8 +212,7 @@ void EXTI2_IRQHandler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles EXTI line4 interrupt.
|
* @brief This function handles EXTI line4 interrupt.
|
||||||
*/
|
*/
|
||||||
void EXTI4_IRQHandler(void)
|
void EXTI4_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN EXTI4_IRQn 0 */
|
/* USER CODE BEGIN EXTI4_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END EXTI4_IRQn 0 */
|
/* USER CODE END EXTI4_IRQn 0 */
|
||||||
@ -241,8 +225,7 @@ void EXTI4_IRQHandler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles EXTI line[9:5] interrupts.
|
* @brief This function handles EXTI line[9:5] interrupts.
|
||||||
*/
|
*/
|
||||||
void EXTI9_5_IRQHandler(void)
|
void EXTI9_5_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN EXTI9_5_IRQn 0 */
|
/* USER CODE BEGIN EXTI9_5_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END EXTI9_5_IRQn 0 */
|
/* USER CODE END EXTI9_5_IRQn 0 */
|
||||||
@ -262,20 +245,16 @@ void register_tim8_callback_ch2(void(*callback)(uint16_t ccr, TimerEvent tim_eve
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles TIM8 capture compare interrupt.
|
* @brief This function handles TIM8 capture compare interrupt.
|
||||||
*/
|
*/
|
||||||
void TIM8_CC_IRQHandler(void)
|
void TIM8_CC_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM8_CC_IRQn 0 */
|
/* USER CODE BEGIN TIM8_CC_IRQn 0 */
|
||||||
|
|
||||||
/* Capture compare 2 event */
|
/* Capture compare 2 event */
|
||||||
if (__HAL_TIM_GET_FLAG(&htim8, TIM_FLAG_CC2) != RESET)
|
if(__HAL_TIM_GET_FLAG(&htim8, TIM_FLAG_CC2) != RESET) {
|
||||||
{
|
if(__HAL_TIM_GET_IT_SOURCE(&htim8, TIM_IT_CC2) != RESET) {
|
||||||
if (__HAL_TIM_GET_IT_SOURCE(&htim8, TIM_IT_CC2) != RESET)
|
|
||||||
{
|
|
||||||
__HAL_TIM_CLEAR_IT(&htim8, TIM_IT_CC2);
|
__HAL_TIM_CLEAR_IT(&htim8, TIM_IT_CC2);
|
||||||
htim8.Channel = HAL_TIM_ACTIVE_CHANNEL_2;
|
htim8.Channel = HAL_TIM_ACTIVE_CHANNEL_2;
|
||||||
/* Input capture event */
|
/* Input capture event */
|
||||||
if ((htim8.Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
|
if((htim8.Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U) {
|
||||||
{
|
|
||||||
/*
|
/*
|
||||||
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
|
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
|
||||||
htim->IC_CaptureCallback(htim);
|
htim->IC_CaptureCallback(htim);
|
||||||
@ -288,8 +267,7 @@ void TIM8_CC_IRQHandler(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Output compare event */
|
/* Output compare event */
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
if(tim8_callback_ch2 != NULL) {
|
if(tim8_callback_ch2 != NULL) {
|
||||||
tim8_callback_ch2(0, TimerEventEndOfPulse);
|
tim8_callback_ch2(0, TimerEventEndOfPulse);
|
||||||
}
|
}
|
||||||
@ -307,7 +285,6 @@ void TIM8_CC_IRQHandler(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* USER CODE END TIM8_CC_IRQn 0 */
|
/* USER CODE END TIM8_CC_IRQn 0 */
|
||||||
// HAL_TIM_IRQHandler(&htim8);
|
// HAL_TIM_IRQHandler(&htim8);
|
||||||
/* USER CODE BEGIN TIM8_CC_IRQn 1 */
|
/* USER CODE BEGIN TIM8_CC_IRQn 1 */
|
||||||
@ -318,8 +295,7 @@ void TIM8_CC_IRQHandler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles USB OTG FS global interrupt.
|
* @brief This function handles USB OTG FS global interrupt.
|
||||||
*/
|
*/
|
||||||
void OTG_FS_IRQHandler(void)
|
void OTG_FS_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN OTG_FS_IRQn 0 */
|
/* USER CODE BEGIN OTG_FS_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END OTG_FS_IRQn 0 */
|
/* USER CODE END OTG_FS_IRQn 0 */
|
||||||
|
@ -123,7 +123,8 @@
|
|||||||
/*!< Uncomment the following line if you need to relocate your vector Table in
|
/*!< Uncomment the following line if you need to relocate your vector Table in
|
||||||
Internal SRAM. */
|
Internal SRAM. */
|
||||||
/* #define VECT_TAB_SRAM */
|
/* #define VECT_TAB_SRAM */
|
||||||
#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field.
|
#define VECT_TAB_OFFSET \
|
||||||
|
0x00 /*!< Vector Table base offset field.
|
||||||
This value must be a multiple of 0x200. */
|
This value must be a multiple of 0x200. */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/**
|
/**
|
||||||
@ -153,8 +154,18 @@
|
|||||||
|
|
||||||
const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U};
|
const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U};
|
||||||
const uint8_t APBPrescTable[8] = {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U};
|
const uint8_t APBPrescTable[8] = {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U};
|
||||||
const uint32_t MSIRangeTable[12] = {100000U, 200000U, 400000U, 800000U, 1000000U, 2000000U, \
|
const uint32_t MSIRangeTable[12] = {100000U,
|
||||||
4000000U, 8000000U, 16000000U, 24000000U, 32000000U, 48000000U};
|
200000U,
|
||||||
|
400000U,
|
||||||
|
800000U,
|
||||||
|
1000000U,
|
||||||
|
2000000U,
|
||||||
|
4000000U,
|
||||||
|
8000000U,
|
||||||
|
16000000U,
|
||||||
|
24000000U,
|
||||||
|
32000000U,
|
||||||
|
48000000U};
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
@ -177,8 +188,7 @@
|
|||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void SystemInit(void)
|
void SystemInit(void) {
|
||||||
{
|
|
||||||
/* FPU settings ------------------------------------------------------------*/
|
/* FPU settings ------------------------------------------------------------*/
|
||||||
#if(__FPU_PRESENT == 1) && (__FPU_USED == 1)
|
#if(__FPU_PRESENT == 1) && (__FPU_USED == 1)
|
||||||
SCB->CPACR |= ((3UL << 10 * 2) | (3UL << 11 * 2)); /* set CP10 and CP11 Full Access */
|
SCB->CPACR |= ((3UL << 10 * 2) | (3UL << 11 * 2)); /* set CP10 and CP11 Full Access */
|
||||||
@ -253,25 +263,20 @@ void SystemInit(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void SystemCoreClockUpdate(void)
|
void SystemCoreClockUpdate(void) {
|
||||||
{
|
|
||||||
uint32_t tmp = 0U, msirange = 0U, pllvco = 0U, pllr = 2U, pllsource = 0U, pllm = 2U;
|
uint32_t tmp = 0U, msirange = 0U, pllvco = 0U, pllr = 2U, pllsource = 0U, pllm = 2U;
|
||||||
|
|
||||||
/* Get MSI Range frequency--------------------------------------------------*/
|
/* Get MSI Range frequency--------------------------------------------------*/
|
||||||
if((RCC->CR & RCC_CR_MSIRGSEL) == RESET)
|
if((RCC->CR & RCC_CR_MSIRGSEL) == RESET) { /* MSISRANGE from RCC_CSR applies */
|
||||||
{ /* MSISRANGE from RCC_CSR applies */
|
|
||||||
msirange = (RCC->CSR & RCC_CSR_MSISRANGE) >> 8U;
|
msirange = (RCC->CSR & RCC_CSR_MSISRANGE) >> 8U;
|
||||||
}
|
} else { /* MSIRANGE from RCC_CR applies */
|
||||||
else
|
|
||||||
{ /* MSIRANGE from RCC_CR applies */
|
|
||||||
msirange = (RCC->CR & RCC_CR_MSIRANGE) >> 4U;
|
msirange = (RCC->CR & RCC_CR_MSIRANGE) >> 4U;
|
||||||
}
|
}
|
||||||
/*MSI frequency range in HZ*/
|
/*MSI frequency range in HZ*/
|
||||||
msirange = MSIRangeTable[msirange];
|
msirange = MSIRangeTable[msirange];
|
||||||
|
|
||||||
/* Get SYSCLK source -------------------------------------------------------*/
|
/* Get SYSCLK source -------------------------------------------------------*/
|
||||||
switch (RCC->CFGR & RCC_CFGR_SWS)
|
switch(RCC->CFGR & RCC_CFGR_SWS) {
|
||||||
{
|
|
||||||
case 0x00: /* MSI used as system clock source */
|
case 0x00: /* MSI used as system clock source */
|
||||||
SystemCoreClock = msirange;
|
SystemCoreClock = msirange;
|
||||||
break;
|
break;
|
||||||
@ -291,8 +296,7 @@ void SystemCoreClockUpdate(void)
|
|||||||
pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC);
|
pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC);
|
||||||
pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4U) + 1U;
|
pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4U) + 1U;
|
||||||
|
|
||||||
switch (pllsource)
|
switch(pllsource) {
|
||||||
{
|
|
||||||
case 0x02: /* HSI used as PLL clock source */
|
case 0x02: /* HSI used as PLL clock source */
|
||||||
pllvco = (HSI_VALUE / pllm);
|
pllvco = (HSI_VALUE / pllm);
|
||||||
break;
|
break;
|
||||||
@ -321,7 +325,6 @@ void SystemCoreClockUpdate(void)
|
|||||||
SystemCoreClock >>= tmp;
|
SystemCoreClock >>= tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
@ -63,27 +63,22 @@ extern USBD_DescriptorsTypeDef FS_Desc;
|
|||||||
* Init USB device Library, add supported class and start the library
|
* Init USB device Library, add supported class and start the library
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void MX_USB_DEVICE_Init(void)
|
void MX_USB_DEVICE_Init(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */
|
/* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */
|
||||||
|
|
||||||
/* USER CODE END USB_DEVICE_Init_PreTreatment */
|
/* USER CODE END USB_DEVICE_Init_PreTreatment */
|
||||||
|
|
||||||
/* Init Device Library, add supported class and start the library. */
|
/* Init Device Library, add supported class and start the library. */
|
||||||
if (USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS) != USBD_OK)
|
if(USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS) != USBD_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC) != USBD_OK)
|
if(USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC) != USBD_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS) != USBD_OK)
|
if(USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS) != USBD_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (USBD_Start(&hUsbDeviceFS) != USBD_OK)
|
if(USBD_Start(&hUsbDeviceFS) != USBD_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN USB_DEVICE_Init_PostTreatment */
|
/* USER CODE BEGIN USB_DEVICE_Init_PostTreatment */
|
||||||
|
@ -139,21 +139,17 @@ static int8_t CDC_Receive_FS(uint8_t* pbuf, uint32_t *Len);
|
|||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
USBD_CDC_ItfTypeDef USBD_Interface_fops_FS =
|
USBD_CDC_ItfTypeDef USBD_Interface_fops_FS = {CDC_Init_FS,
|
||||||
{
|
|
||||||
CDC_Init_FS,
|
|
||||||
CDC_DeInit_FS,
|
CDC_DeInit_FS,
|
||||||
CDC_Control_FS,
|
CDC_Control_FS,
|
||||||
CDC_Receive_FS
|
CDC_Receive_FS};
|
||||||
};
|
|
||||||
|
|
||||||
/* Private functions ---------------------------------------------------------*/
|
/* Private functions ---------------------------------------------------------*/
|
||||||
/**
|
/**
|
||||||
* @brief Initializes the CDC media low layer over the FS USB IP
|
* @brief Initializes the CDC media low layer over the FS USB IP
|
||||||
* @retval USBD_OK if all operations are OK else USBD_FAIL
|
* @retval USBD_OK if all operations are OK else USBD_FAIL
|
||||||
*/
|
*/
|
||||||
static int8_t CDC_Init_FS(void)
|
static int8_t CDC_Init_FS(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 3 */
|
/* USER CODE BEGIN 3 */
|
||||||
/* Set Application Buffers */
|
/* Set Application Buffers */
|
||||||
USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, 0);
|
USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, 0);
|
||||||
@ -166,8 +162,7 @@ static int8_t CDC_Init_FS(void)
|
|||||||
* @brief DeInitializes the CDC media low layer
|
* @brief DeInitializes the CDC media low layer
|
||||||
* @retval USBD_OK if all operations are OK else USBD_FAIL
|
* @retval USBD_OK if all operations are OK else USBD_FAIL
|
||||||
*/
|
*/
|
||||||
static int8_t CDC_DeInit_FS(void)
|
static int8_t CDC_DeInit_FS(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 4 */
|
/* USER CODE BEGIN 4 */
|
||||||
return (USBD_OK);
|
return (USBD_OK);
|
||||||
/* USER CODE END 4 */
|
/* USER CODE END 4 */
|
||||||
@ -180,11 +175,9 @@ static int8_t CDC_DeInit_FS(void)
|
|||||||
* @param length: Number of data to be sent (in bytes)
|
* @param length: Number of data to be sent (in bytes)
|
||||||
* @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL
|
* @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL
|
||||||
*/
|
*/
|
||||||
static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length)
|
static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 5 */
|
/* USER CODE BEGIN 5 */
|
||||||
switch(cmd)
|
switch(cmd) {
|
||||||
{
|
|
||||||
case CDC_SEND_ENCAPSULATED_COMMAND:
|
case CDC_SEND_ENCAPSULATED_COMMAND:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -260,8 +253,7 @@ static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length)
|
|||||||
* @param Len: Number of data received (in bytes)
|
* @param Len: Number of data received (in bytes)
|
||||||
* @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL
|
* @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL
|
||||||
*/
|
*/
|
||||||
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
|
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t* Len) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 6 */
|
/* USER CODE BEGIN 6 */
|
||||||
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
|
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
|
||||||
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
|
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
|
||||||
@ -280,8 +272,7 @@ static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
|
|||||||
* @param Len: Number of data to be sent (in bytes)
|
* @param Len: Number of data to be sent (in bytes)
|
||||||
* @retval USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY
|
* @retval USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY
|
||||||
*/
|
*/
|
||||||
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
|
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len) {
|
||||||
{
|
|
||||||
uint8_t result = USBD_OK;
|
uint8_t result = USBD_OK;
|
||||||
/* USER CODE BEGIN 7 */
|
/* USER CODE BEGIN 7 */
|
||||||
USBD_CDC_HandleTypeDef* hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData;
|
USBD_CDC_HandleTypeDef* hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData;
|
||||||
|
@ -67,11 +67,9 @@ extern void SystemClock_Config(void);
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
/* MSP Init */
|
/* MSP Init */
|
||||||
|
|
||||||
void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
|
void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(pcdHandle->Instance==USB_OTG_FS)
|
if(pcdHandle->Instance == USB_OTG_FS) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
|
/* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END USB_OTG_FS_MspInit 0 */
|
/* USER CODE END USB_OTG_FS_MspInit 0 */
|
||||||
@ -92,14 +90,11 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
|
|||||||
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
||||||
|
|
||||||
/* Enable VDDUSB */
|
/* Enable VDDUSB */
|
||||||
if(__HAL_RCC_PWR_IS_CLK_DISABLED())
|
if(__HAL_RCC_PWR_IS_CLK_DISABLED()) {
|
||||||
{
|
|
||||||
__HAL_RCC_PWR_CLK_ENABLE();
|
__HAL_RCC_PWR_CLK_ENABLE();
|
||||||
HAL_PWREx_EnableVddUSB();
|
HAL_PWREx_EnableVddUSB();
|
||||||
__HAL_RCC_PWR_CLK_DISABLE();
|
__HAL_RCC_PWR_CLK_DISABLE();
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
HAL_PWREx_EnableVddUSB();
|
HAL_PWREx_EnableVddUSB();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,10 +107,8 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle)
|
void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle) {
|
||||||
{
|
if(pcdHandle->Instance == USB_OTG_FS) {
|
||||||
if(pcdHandle->Instance==USB_OTG_FS)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
|
/* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END USB_OTG_FS_MspDeInit 0 */
|
/* USER CODE END USB_OTG_FS_MspDeInit 0 */
|
||||||
@ -129,14 +122,11 @@ void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle)
|
|||||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11 | GPIO_PIN_12);
|
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11 | GPIO_PIN_12);
|
||||||
|
|
||||||
/* Disable VDDUSB */
|
/* Disable VDDUSB */
|
||||||
if(__HAL_RCC_PWR_IS_CLK_DISABLED())
|
if(__HAL_RCC_PWR_IS_CLK_DISABLED()) {
|
||||||
{
|
|
||||||
__HAL_RCC_PWR_CLK_ENABLE();
|
__HAL_RCC_PWR_CLK_ENABLE();
|
||||||
HAL_PWREx_DisableVddUSB();
|
HAL_PWREx_DisableVddUSB();
|
||||||
__HAL_RCC_PWR_CLK_DISABLE();
|
__HAL_RCC_PWR_CLK_DISABLE();
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
HAL_PWREx_DisableVddUSB();
|
HAL_PWREx_DisableVddUSB();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,8 +210,7 @@ void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
|
|||||||
{
|
{
|
||||||
USBD_SpeedTypeDef speed = USBD_SPEED_FULL;
|
USBD_SpeedTypeDef speed = USBD_SPEED_FULL;
|
||||||
|
|
||||||
if ( hpcd->Init.speed != PCD_SPEED_FULL)
|
if(hpcd->Init.speed != PCD_SPEED_FULL) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* Set Speed. */
|
/* Set Speed. */
|
||||||
@ -248,8 +237,7 @@ void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd)
|
|||||||
USBD_LL_Suspend((USBD_HandleTypeDef*)hpcd->pData);
|
USBD_LL_Suspend((USBD_HandleTypeDef*)hpcd->pData);
|
||||||
/* Enter in STOP mode. */
|
/* Enter in STOP mode. */
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
if (hpcd->Init.low_power_enable)
|
if(hpcd->Init.low_power_enable) {
|
||||||
{
|
|
||||||
/* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register. */
|
/* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register. */
|
||||||
SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
||||||
}
|
}
|
||||||
@ -271,8 +259,7 @@ void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd)
|
|||||||
__HAL_PCD_UNGATE_PHYCLOCK(hpcd);
|
__HAL_PCD_UNGATE_PHYCLOCK(hpcd);
|
||||||
|
|
||||||
/* USER CODE BEGIN 3 */
|
/* USER CODE BEGIN 3 */
|
||||||
if (hpcd->Init.low_power_enable)
|
if(hpcd->Init.low_power_enable) {
|
||||||
{
|
|
||||||
/* Reset SLEEPDEEP bit of Cortex System Control Register. */
|
/* Reset SLEEPDEEP bit of Cortex System Control Register. */
|
||||||
SCB->SCR &= (uint32_t) ~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
SCB->SCR &= (uint32_t) ~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
||||||
SystemClockConfig_Resume();
|
SystemClockConfig_Resume();
|
||||||
@ -352,8 +339,7 @@ void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)
|
|||||||
* @param pdev: Device handle
|
* @param pdev: Device handle
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
|
USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef* pdev) {
|
||||||
{
|
|
||||||
/* Init USB Ip. */
|
/* Init USB Ip. */
|
||||||
if(pdev->id == DEVICE_FS) {
|
if(pdev->id == DEVICE_FS) {
|
||||||
/* Enable USB power on Pwrctrl CR2 register. */
|
/* Enable USB power on Pwrctrl CR2 register. */
|
||||||
@ -371,20 +357,21 @@ USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
|
|||||||
hpcd_USB_OTG_FS.Init.battery_charging_enable = DISABLE;
|
hpcd_USB_OTG_FS.Init.battery_charging_enable = DISABLE;
|
||||||
hpcd_USB_OTG_FS.Init.use_dedicated_ep1 = DISABLE;
|
hpcd_USB_OTG_FS.Init.use_dedicated_ep1 = DISABLE;
|
||||||
hpcd_USB_OTG_FS.Init.vbus_sensing_enable = DISABLE;
|
hpcd_USB_OTG_FS.Init.vbus_sensing_enable = DISABLE;
|
||||||
if (HAL_PCD_Init(&hpcd_USB_OTG_FS) != HAL_OK)
|
if(HAL_PCD_Init(&hpcd_USB_OTG_FS) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if(USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
#if(USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
/* Register USB PCD CallBacks */
|
/* Register USB PCD CallBacks */
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_SOF_CB_ID, PCD_SOFCallback);
|
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_SOF_CB_ID, PCD_SOFCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_SETUPSTAGE_CB_ID, PCD_SetupStageCallback);
|
HAL_PCD_RegisterCallback(
|
||||||
|
&hpcd_USB_OTG_FS, HAL_PCD_SETUPSTAGE_CB_ID, PCD_SetupStageCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_RESET_CB_ID, PCD_ResetCallback);
|
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_RESET_CB_ID, PCD_ResetCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_SUSPEND_CB_ID, PCD_SuspendCallback);
|
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_SUSPEND_CB_ID, PCD_SuspendCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_RESUME_CB_ID, PCD_ResumeCallback);
|
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_RESUME_CB_ID, PCD_ResumeCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_CONNECT_CB_ID, PCD_ConnectCallback);
|
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_CONNECT_CB_ID, PCD_ConnectCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_DISCONNECT_CB_ID, PCD_DisconnectCallback);
|
HAL_PCD_RegisterCallback(
|
||||||
|
&hpcd_USB_OTG_FS, HAL_PCD_DISCONNECT_CB_ID, PCD_DisconnectCallback);
|
||||||
|
|
||||||
HAL_PCD_RegisterDataOutStageCallback(&hpcd_USB_OTG_FS, PCD_DataOutStageCallback);
|
HAL_PCD_RegisterDataOutStageCallback(&hpcd_USB_OTG_FS, PCD_DataOutStageCallback);
|
||||||
HAL_PCD_RegisterDataInStageCallback(&hpcd_USB_OTG_FS, PCD_DataInStageCallback);
|
HAL_PCD_RegisterDataInStageCallback(&hpcd_USB_OTG_FS, PCD_DataInStageCallback);
|
||||||
@ -403,8 +390,7 @@ USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
|
|||||||
* @param pdev: Device handle
|
* @param pdev: Device handle
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev)
|
USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef* pdev) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -435,8 +421,7 @@ USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev)
|
|||||||
* @param pdev: Device handle
|
* @param pdev: Device handle
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev)
|
USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef* pdev) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -467,8 +452,7 @@ USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev)
|
|||||||
* @param pdev: Device handle
|
* @param pdev: Device handle
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef *pdev)
|
USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef* pdev) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -502,8 +486,8 @@ USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef *pdev)
|
|||||||
* @param ep_mps: Endpoint max packet size
|
* @param ep_mps: Endpoint max packet size
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t ep_type, uint16_t ep_mps)
|
USBD_StatusTypeDef
|
||||||
{
|
USBD_LL_OpenEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr, uint8_t ep_type, uint16_t ep_mps) {
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -535,8 +519,7 @@ USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uin
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -568,8 +551,7 @@ USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -601,8 +583,7 @@ USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -634,8 +615,7 @@ USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -667,16 +647,12 @@ USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_add
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval Stall (1: Yes, 0: No)
|
* @retval Stall (1: Yes, 0: No)
|
||||||
*/
|
*/
|
||||||
uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
PCD_HandleTypeDef* hpcd = (PCD_HandleTypeDef*)pdev->pData;
|
PCD_HandleTypeDef* hpcd = (PCD_HandleTypeDef*)pdev->pData;
|
||||||
|
|
||||||
if((ep_addr & 0x80) == 0x80)
|
if((ep_addr & 0x80) == 0x80) {
|
||||||
{
|
|
||||||
return hpcd->IN_ep[ep_addr & 0x7F].is_stall;
|
return hpcd->IN_ep[ep_addr & 0x7F].is_stall;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
return hpcd->OUT_ep[ep_addr & 0x7F].is_stall;
|
return hpcd->OUT_ep[ep_addr & 0x7F].is_stall;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -687,8 +663,7 @@ uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
|||||||
* @param dev_addr: Device address
|
* @param dev_addr: Device address
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_addr)
|
USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef* pdev, uint8_t dev_addr) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -722,8 +697,8 @@ USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_a
|
|||||||
* @param size: Data size
|
* @param size: Data size
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, uint16_t size)
|
USBD_StatusTypeDef
|
||||||
{
|
USBD_LL_Transmit(USBD_HandleTypeDef* pdev, uint8_t ep_addr, uint8_t* pbuf, uint16_t size) {
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -757,8 +732,8 @@ USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, u
|
|||||||
* @param size: Data size
|
* @param size: Data size
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, uint16_t size)
|
USBD_StatusTypeDef
|
||||||
{
|
USBD_LL_PrepareReceive(USBD_HandleTypeDef* pdev, uint8_t ep_addr, uint8_t* pbuf, uint16_t size) {
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -790,8 +765,7 @@ USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, uint8_t ep_a
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval Recived Data Size
|
* @retval Recived Data Size
|
||||||
*/
|
*/
|
||||||
uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
return HAL_PCD_EP_GetRxCount((PCD_HandleTypeDef*)pdev->pData, ep_addr);
|
return HAL_PCD_EP_GetRxCount((PCD_HandleTypeDef*)pdev->pData, ep_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -801,13 +775,10 @@ uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
|||||||
* @param msg: LPM message
|
* @param msg: LPM message
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
|
void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef* hpcd, PCD_LPM_MsgTypeDef msg) {
|
||||||
{
|
switch(msg) {
|
||||||
switch (msg)
|
|
||||||
{
|
|
||||||
case PCD_LPM_L0_ACTIVE:
|
case PCD_LPM_L0_ACTIVE:
|
||||||
if (hpcd->Init.low_power_enable)
|
if(hpcd->Init.low_power_enable) {
|
||||||
{
|
|
||||||
SystemClockConfig_Resume();
|
SystemClockConfig_Resume();
|
||||||
|
|
||||||
/* Reset SLEEPDEEP bit of Cortex System Control Register. */
|
/* Reset SLEEPDEEP bit of Cortex System Control Register. */
|
||||||
@ -822,8 +793,7 @@ void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
|
|||||||
USBD_LL_Suspend(hpcd->pData);
|
USBD_LL_Suspend(hpcd->pData);
|
||||||
|
|
||||||
/* Enter in STOP mode. */
|
/* Enter in STOP mode. */
|
||||||
if (hpcd->Init.low_power_enable)
|
if(hpcd->Init.low_power_enable) {
|
||||||
{
|
|
||||||
/* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register. */
|
/* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register. */
|
||||||
SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
||||||
}
|
}
|
||||||
@ -836,8 +806,7 @@ void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
|
|||||||
* @param Delay: Delay in ms
|
* @param Delay: Delay in ms
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void USBD_LL_Delay(uint32_t Delay)
|
void USBD_LL_Delay(uint32_t Delay) {
|
||||||
{
|
|
||||||
HAL_Delay(Delay);
|
HAL_Delay(Delay);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -846,8 +815,7 @@ void USBD_LL_Delay(uint32_t Delay)
|
|||||||
* @param size: Size of allocated memory
|
* @param size: Size of allocated memory
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void *USBD_static_malloc(uint32_t size)
|
void* USBD_static_malloc(uint32_t size) {
|
||||||
{
|
|
||||||
static uint32_t mem[(sizeof(USBD_CDC_HandleTypeDef) / 4) + 1]; /* On 32-bit boundary */
|
static uint32_t mem[(sizeof(USBD_CDC_HandleTypeDef) / 4) + 1]; /* On 32-bit boundary */
|
||||||
return mem;
|
return mem;
|
||||||
}
|
}
|
||||||
@ -857,9 +825,7 @@ void *USBD_static_malloc(uint32_t size)
|
|||||||
* @param p: Pointer to allocated memory address
|
* @param p: Pointer to allocated memory address
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void USBD_static_free(void *p)
|
void USBD_static_free(void* p) {
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 5 */
|
/* USER CODE BEGIN 5 */
|
||||||
@ -868,8 +834,7 @@ void USBD_static_free(void *p)
|
|||||||
* enable HSI, PLL and select PLL as system clock source.
|
* enable HSI, PLL and select PLL as system clock source.
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void SystemClockConfig_Resume(void)
|
static void SystemClockConfig_Resume(void) {
|
||||||
{
|
|
||||||
SystemClock_Config();
|
SystemClock_Config();
|
||||||
}
|
}
|
||||||
/* USER CODE END 5 */
|
/* USER CODE END 5 */
|
||||||
|
@ -110,7 +110,6 @@ static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len);
|
|||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes
|
/** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes
|
||||||
* @brief Private functions declaration for FS.
|
* @brief Private functions declaration for FS.
|
||||||
* @{
|
* @{
|
||||||
@ -136,17 +135,16 @@ uint8_t * USBD_FS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
|
|||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
USBD_DescriptorsTypeDef FS_Desc =
|
USBD_DescriptorsTypeDef FS_Desc = {USBD_FS_DeviceDescriptor,
|
||||||
{
|
USBD_FS_LangIDStrDescriptor,
|
||||||
USBD_FS_DeviceDescriptor
|
USBD_FS_ManufacturerStrDescriptor,
|
||||||
, USBD_FS_LangIDStrDescriptor
|
USBD_FS_ProductStrDescriptor,
|
||||||
, USBD_FS_ManufacturerStrDescriptor
|
USBD_FS_SerialStrDescriptor,
|
||||||
, USBD_FS_ProductStrDescriptor
|
USBD_FS_ConfigStrDescriptor,
|
||||||
, USBD_FS_SerialStrDescriptor
|
USBD_FS_InterfaceStrDescriptor
|
||||||
, USBD_FS_ConfigStrDescriptor
|
|
||||||
, USBD_FS_InterfaceStrDescriptor
|
|
||||||
#if(USBD_LPM_ENABLED == 1)
|
#if(USBD_LPM_ENABLED == 1)
|
||||||
, USBD_FS_USR_BOSDescriptor
|
,
|
||||||
|
USBD_FS_USR_BOSDescriptor
|
||||||
#endif /* (USBD_LPM_ENABLED == 1) */
|
#endif /* (USBD_LPM_ENABLED == 1) */
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -154,12 +152,12 @@ USBD_DescriptorsTypeDef FS_Desc =
|
|||||||
#pragma data_alignment = 4
|
#pragma data_alignment = 4
|
||||||
#endif /* defined ( __ICCARM__ ) */
|
#endif /* defined ( __ICCARM__ ) */
|
||||||
/** USB standard device descriptor. */
|
/** USB standard device descriptor. */
|
||||||
__ALIGN_BEGIN uint8_t USBD_FS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END =
|
__ALIGN_BEGIN uint8_t USBD_FS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = {
|
||||||
{
|
|
||||||
0x12, /*bLength */
|
0x12, /*bLength */
|
||||||
USB_DESC_TYPE_DEVICE, /*bDescriptorType*/
|
USB_DESC_TYPE_DEVICE, /*bDescriptorType*/
|
||||||
#if(USBD_LPM_ENABLED == 1)
|
#if(USBD_LPM_ENABLED == 1)
|
||||||
0x01, /*bcdUSB */ /* changed to USB version 2.01
|
0x01,
|
||||||
|
/*bcdUSB */ /* changed to USB version 2.01
|
||||||
in order to support LPM L1 suspend
|
in order to support LPM L1 suspend
|
||||||
resume test of USBCV3.0*/
|
resume test of USBCV3.0*/
|
||||||
#else
|
#else
|
||||||
@ -188,8 +186,7 @@ __ALIGN_BEGIN uint8_t USBD_FS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END =
|
|||||||
#if defined(__ICCARM__) /* IAR Compiler */
|
#if defined(__ICCARM__) /* IAR Compiler */
|
||||||
#pragma data_alignment = 4
|
#pragma data_alignment = 4
|
||||||
#endif /* defined ( __ICCARM__ ) */
|
#endif /* defined ( __ICCARM__ ) */
|
||||||
__ALIGN_BEGIN uint8_t USBD_FS_BOSDesc[USB_SIZ_BOS_DESC] __ALIGN_END =
|
__ALIGN_BEGIN uint8_t USBD_FS_BOSDesc[USB_SIZ_BOS_DESC] __ALIGN_END = {
|
||||||
{
|
|
||||||
0x5,
|
0x5,
|
||||||
USB_DESC_TYPE_BOS,
|
USB_DESC_TYPE_BOS,
|
||||||
0xC,
|
0xC,
|
||||||
@ -202,8 +199,7 @@ __ALIGN_BEGIN uint8_t USBD_FS_BOSDesc[USB_SIZ_BOS_DESC] __ALIGN_END =
|
|||||||
0x2, /* LPM capability bit set*/
|
0x2, /* LPM capability bit set*/
|
||||||
0x0,
|
0x0,
|
||||||
0x0,
|
0x0,
|
||||||
0x0
|
0x0};
|
||||||
};
|
|
||||||
#endif /* (USBD_LPM_ENABLED == 1) */
|
#endif /* (USBD_LPM_ENABLED == 1) */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -220,13 +216,11 @@ __ALIGN_BEGIN uint8_t USBD_FS_BOSDesc[USB_SIZ_BOS_DESC] __ALIGN_END =
|
|||||||
#endif /* defined ( __ICCARM__ ) */
|
#endif /* defined ( __ICCARM__ ) */
|
||||||
|
|
||||||
/** USB lang indentifier descriptor. */
|
/** USB lang indentifier descriptor. */
|
||||||
__ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END =
|
__ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END = {
|
||||||
{
|
|
||||||
USB_LEN_LANGID_STR_DESC,
|
USB_LEN_LANGID_STR_DESC,
|
||||||
USB_DESC_TYPE_STRING,
|
USB_DESC_TYPE_STRING,
|
||||||
LOBYTE(USBD_LANGID_STRING),
|
LOBYTE(USBD_LANGID_STRING),
|
||||||
HIBYTE(USBD_LANGID_STRING)
|
HIBYTE(USBD_LANGID_STRING)};
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(__ICCARM__) /* IAR Compiler */
|
#if defined(__ICCARM__) /* IAR Compiler */
|
||||||
#pragma data_alignment = 4
|
#pragma data_alignment = 4
|
||||||
@ -257,8 +251,7 @@ __ALIGN_BEGIN uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL] __ALIGN_END = {
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
|
||||||
UNUSED(speed);
|
UNUSED(speed);
|
||||||
*length = sizeof(USBD_FS_DeviceDesc);
|
*length = sizeof(USBD_FS_DeviceDesc);
|
||||||
return USBD_FS_DeviceDesc;
|
return USBD_FS_DeviceDesc;
|
||||||
@ -270,8 +263,7 @@ uint8_t * USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
|
||||||
UNUSED(speed);
|
UNUSED(speed);
|
||||||
*length = sizeof(USBD_LangIDDesc);
|
*length = sizeof(USBD_LangIDDesc);
|
||||||
return USBD_LangIDDesc;
|
return USBD_LangIDDesc;
|
||||||
@ -283,14 +275,10 @@ uint8_t * USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
if(speed == 0) {
|
||||||
if(speed == 0)
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
}
|
||||||
return USBD_StrDesc;
|
return USBD_StrDesc;
|
||||||
@ -302,8 +290,7 @@ uint8_t * USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
|
||||||
UNUSED(speed);
|
UNUSED(speed);
|
||||||
USBD_GetString((uint8_t*)USBD_MANUFACTURER_STRING, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_MANUFACTURER_STRING, USBD_StrDesc, length);
|
||||||
return USBD_StrDesc;
|
return USBD_StrDesc;
|
||||||
@ -315,8 +302,7 @@ uint8_t * USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *l
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
|
||||||
UNUSED(speed);
|
UNUSED(speed);
|
||||||
*length = USB_SIZ_STRING_SERIAL;
|
*length = USB_SIZ_STRING_SERIAL;
|
||||||
|
|
||||||
@ -335,14 +321,10 @@ uint8_t * USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
if(speed == USBD_SPEED_HIGH) {
|
||||||
if(speed == USBD_SPEED_HIGH)
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
}
|
||||||
return USBD_StrDesc;
|
return USBD_StrDesc;
|
||||||
@ -354,14 +336,10 @@ uint8_t * USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
if(speed == 0) {
|
||||||
if(speed == 0)
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
}
|
||||||
return USBD_StrDesc;
|
return USBD_StrDesc;
|
||||||
@ -374,8 +352,7 @@ uint8_t * USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *leng
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
|
||||||
UNUSED(speed);
|
UNUSED(speed);
|
||||||
*length = sizeof(USBD_FS_BOSDesc);
|
*length = sizeof(USBD_FS_BOSDesc);
|
||||||
return (uint8_t*)USBD_FS_BOSDesc;
|
return (uint8_t*)USBD_FS_BOSDesc;
|
||||||
@ -387,8 +364,7 @@ uint8_t * USBD_FS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void Get_SerialNum(void)
|
static void Get_SerialNum(void) {
|
||||||
{
|
|
||||||
uint32_t deviceserial0, deviceserial1, deviceserial2;
|
uint32_t deviceserial0, deviceserial1, deviceserial2;
|
||||||
|
|
||||||
deviceserial0 = *(uint32_t*)DEVICE_ID1;
|
deviceserial0 = *(uint32_t*)DEVICE_ID1;
|
||||||
@ -397,8 +373,7 @@ static void Get_SerialNum(void)
|
|||||||
|
|
||||||
deviceserial0 += deviceserial2;
|
deviceserial0 += deviceserial2;
|
||||||
|
|
||||||
if (deviceserial0 != 0)
|
if(deviceserial0 != 0) {
|
||||||
{
|
|
||||||
IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8);
|
IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8);
|
||||||
IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4);
|
IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4);
|
||||||
}
|
}
|
||||||
@ -411,18 +386,13 @@ static void Get_SerialNum(void)
|
|||||||
* @param len: buffer length
|
* @param len: buffer length
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len)
|
static void IntToUnicode(uint32_t value, uint8_t* pbuf, uint8_t len) {
|
||||||
{
|
|
||||||
uint8_t idx = 0;
|
uint8_t idx = 0;
|
||||||
|
|
||||||
for (idx = 0; idx < len; idx++)
|
for(idx = 0; idx < len; idx++) {
|
||||||
{
|
if(((value >> 28)) < 0xA) {
|
||||||
if (((value >> 28)) < 0xA)
|
|
||||||
{
|
|
||||||
pbuf[2 * idx] = (value >> 28) + '0';
|
pbuf[2 * idx] = (value >> 28) + '0';
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
pbuf[2 * idx] = (value >> 28) + 'A' - 10;
|
pbuf[2 * idx] = (value >> 28) + 'A' - 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,15 +111,22 @@ PRIORITY THAN THIS! (higher priorities are lower numeric values. */
|
|||||||
|
|
||||||
/* Interrupt priorities used by the kernel port layer itself. These are generic
|
/* Interrupt priorities used by the kernel port layer itself. These are generic
|
||||||
to all Cortex-M ports, and do not rely on any particular library functions. */
|
to all Cortex-M ports, and do not rely on any particular library functions. */
|
||||||
#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
|
#define configKERNEL_INTERRUPT_PRIORITY \
|
||||||
|
(configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))
|
||||||
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
|
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
|
||||||
See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
|
See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
|
||||||
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
|
#define configMAX_SYSCALL_INTERRUPT_PRIORITY \
|
||||||
|
(configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))
|
||||||
|
|
||||||
/* Normal assert() semantics without relying on the provision of an assert.h
|
/* Normal assert() semantics without relying on the provision of an assert.h
|
||||||
header file. */
|
header file. */
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
#define configASSERT( x ) if ((x) == 0) {taskDISABLE_INTERRUPTS(); for( ;; );}
|
#define configASSERT(x) \
|
||||||
|
if((x) == 0) { \
|
||||||
|
taskDISABLE_INTERRUPTS(); \
|
||||||
|
for(;;) \
|
||||||
|
; \
|
||||||
|
}
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
|
/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
|
||||||
|
@ -9,11 +9,7 @@ GPIO and HAL implementations
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum { GpioModeInput, GpioModeOutput, GpioModeOpenDrain } GpioMode;
|
||||||
GpioModeInput,
|
|
||||||
GpioModeOutput,
|
|
||||||
GpioModeOpenDrain
|
|
||||||
} GpioMode;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
GPIO_TypeDef* port;
|
GPIO_TypeDef* port;
|
||||||
@ -50,7 +46,8 @@ inline void app_tim_ic_init(bool both) {
|
|||||||
HAL_TIM_OC_Stop(&htim8, TIM_CHANNEL_2);
|
HAL_TIM_OC_Stop(&htim8, TIM_CHANNEL_2);
|
||||||
|
|
||||||
TIM_IC_InitTypeDef sConfigIC = {0};
|
TIM_IC_InitTypeDef sConfigIC = {0};
|
||||||
sConfigIC.ICPolarity = both ? TIM_INPUTCHANNELPOLARITY_BOTHEDGE : TIM_INPUTCHANNELPOLARITY_FALLING;
|
sConfigIC.ICPolarity = both ? TIM_INPUTCHANNELPOLARITY_BOTHEDGE :
|
||||||
|
TIM_INPUTCHANNELPOLARITY_FALLING;
|
||||||
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
||||||
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
||||||
sConfigIC.ICFilter = 0;
|
sConfigIC.ICFilter = 0;
|
||||||
|
@ -38,10 +38,7 @@ extern "C" {
|
|||||||
/* Exported types ------------------------------------------------------------*/
|
/* Exported types ------------------------------------------------------------*/
|
||||||
/* USER CODE BEGIN ET */
|
/* USER CODE BEGIN ET */
|
||||||
|
|
||||||
typedef enum {
|
typedef enum { TimerEventInputCapture, TimerEventEndOfPulse } TimerEvent;
|
||||||
TimerEventInputCapture,
|
|
||||||
TimerEventEndOfPulse
|
|
||||||
} TimerEvent;
|
|
||||||
|
|
||||||
/* USER CODE END ET */
|
/* USER CODE END ET */
|
||||||
|
|
||||||
@ -139,12 +136,24 @@ void register_tim8_callback_ch2(void(*callback)(uint16_t ccr, TimerEvent tim_eve
|
|||||||
#define EM_PIN_GPIO_Port RFID_OUT_GPIO_Port
|
#define EM_PIN_GPIO_Port RFID_OUT_GPIO_Port
|
||||||
#define EM_PIN_Pin RFID_OUT_Pin
|
#define EM_PIN_Pin RFID_OUT_Pin
|
||||||
|
|
||||||
#define MISO_PIN GpioPin{.port = GPIOC, .pin = GPIO_PIN_11}
|
#define MISO_PIN \
|
||||||
|
GpioPin { \
|
||||||
|
.port = GPIOC, .pin = GPIO_PIN_11 \
|
||||||
|
}
|
||||||
// #define MOSI_PIN 11
|
// #define MOSI_PIN 11
|
||||||
#define SS_PIN GpioPin{.port = CC1101_CS_GPIO_Port, .pin = CC1101_CS_Pin}
|
#define SS_PIN \
|
||||||
|
GpioPin { \
|
||||||
|
.port = CC1101_CS_GPIO_Port, .pin = CC1101_CS_Pin \
|
||||||
|
}
|
||||||
//2 main, 5 remote, 3 M16
|
//2 main, 5 remote, 3 M16
|
||||||
#define GDO2 GpioPin{.port = NULL, .pin = 0}
|
#define GDO2 \
|
||||||
#define GDO0 GpioPin{.port = CC1101_G0_GPIO_Port, .pin = CC1101_G0_Pin}
|
GpioPin { \
|
||||||
|
.port = NULL, .pin = 0 \
|
||||||
|
}
|
||||||
|
#define GDO0 \
|
||||||
|
GpioPin { \
|
||||||
|
.port = CC1101_G0_GPIO_Port, .pin = CC1101_G0_Pin \
|
||||||
|
}
|
||||||
|
|
||||||
/* USER CODE END Private defines */
|
/* USER CODE END Private defines */
|
||||||
|
|
||||||
|
@ -141,7 +141,8 @@
|
|||||||
* which is subject to manufacturing process variations.
|
* which is subject to manufacturing process variations.
|
||||||
*/
|
*/
|
||||||
#if !defined(HSI48_VALUE)
|
#if !defined(HSI48_VALUE)
|
||||||
#define HSI48_VALUE ((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for USB FS/SDMMC/RNG in Hz.
|
#define HSI48_VALUE \
|
||||||
|
((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for USB FS/SDMMC/RNG in Hz.
|
||||||
The real value my vary depending on manufacturing process variations.*/
|
The real value my vary depending on manufacturing process variations.*/
|
||||||
#endif /* HSI48_VALUE */
|
#endif /* HSI48_VALUE */
|
||||||
|
|
||||||
@ -172,7 +173,8 @@
|
|||||||
* frequency.
|
* frequency.
|
||||||
*/
|
*/
|
||||||
#if !defined(EXTERNAL_SAI1_CLOCK_VALUE)
|
#if !defined(EXTERNAL_SAI1_CLOCK_VALUE)
|
||||||
#define EXTERNAL_SAI1_CLOCK_VALUE ((uint32_t)2097000U) /*!< Value of the SAI1 External clock source in Hz*/
|
#define EXTERNAL_SAI1_CLOCK_VALUE \
|
||||||
|
((uint32_t)2097000U) /*!< Value of the SAI1 External clock source in Hz*/
|
||||||
#endif /* EXTERNAL_SAI1_CLOCK_VALUE */
|
#endif /* EXTERNAL_SAI1_CLOCK_VALUE */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -181,7 +183,8 @@
|
|||||||
* frequency.
|
* frequency.
|
||||||
*/
|
*/
|
||||||
#if !defined(EXTERNAL_SAI2_CLOCK_VALUE)
|
#if !defined(EXTERNAL_SAI2_CLOCK_VALUE)
|
||||||
#define EXTERNAL_SAI2_CLOCK_VALUE ((uint32_t)2097000U) /*!< Value of the SAI2 External clock source in Hz*/
|
#define EXTERNAL_SAI2_CLOCK_VALUE \
|
||||||
|
((uint32_t)2097000U) /*!< Value of the SAI2 External clock source in Hz*/
|
||||||
#endif /* EXTERNAL_SAI2_CLOCK_VALUE */
|
#endif /* EXTERNAL_SAI2_CLOCK_VALUE */
|
||||||
|
|
||||||
/* Tip: To avoid modifying this file each time you need to use different HSE,
|
/* Tip: To avoid modifying this file each time you need to use different HSE,
|
||||||
|
@ -109,7 +109,8 @@
|
|||||||
/* DEBUG macros */
|
/* DEBUG macros */
|
||||||
|
|
||||||
#if(USBD_DEBUG_LEVEL > 0)
|
#if(USBD_DEBUG_LEVEL > 0)
|
||||||
#define USBD_UsrLog(...) printf(__VA_ARGS__);\
|
#define USBD_UsrLog(...) \
|
||||||
|
printf(__VA_ARGS__); \
|
||||||
printf("\n");
|
printf("\n");
|
||||||
#else
|
#else
|
||||||
#define USBD_UsrLog(...)
|
#define USBD_UsrLog(...)
|
||||||
@ -117,7 +118,8 @@
|
|||||||
|
|
||||||
#if(USBD_DEBUG_LEVEL > 1)
|
#if(USBD_DEBUG_LEVEL > 1)
|
||||||
|
|
||||||
#define USBD_ErrLog(...) printf("ERROR: ") ;\
|
#define USBD_ErrLog(...) \
|
||||||
|
printf("ERROR: "); \
|
||||||
printf(__VA_ARGS__); \
|
printf(__VA_ARGS__); \
|
||||||
printf("\n");
|
printf("\n");
|
||||||
#else
|
#else
|
||||||
@ -125,7 +127,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if(USBD_DEBUG_LEVEL > 2)
|
#if(USBD_DEBUG_LEVEL > 2)
|
||||||
#define USBD_DbgLog(...) printf("DEBUG : ") ;\
|
#define USBD_DbgLog(...) \
|
||||||
|
printf("DEBUG : "); \
|
||||||
printf(__VA_ARGS__); \
|
printf(__VA_ARGS__); \
|
||||||
printf("\n");
|
printf("\n");
|
||||||
#else
|
#else
|
||||||
|
@ -38,7 +38,8 @@ void app_gpio_init(GpioPin gpio, GpioMode mode) {
|
|||||||
void delay_us(uint32_t time) {
|
void delay_us(uint32_t time) {
|
||||||
time *= 11.8;
|
time *= 11.8;
|
||||||
|
|
||||||
while(time--) {}
|
while(time--) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void pwm_set(float value, float freq, TIM_HandleTypeDef* tim, uint32_t channel) {
|
void pwm_set(float value, float freq, TIM_HandleTypeDef* tim, uint32_t channel) {
|
||||||
|
@ -55,17 +55,20 @@
|
|||||||
/* USER CODE END FunctionPrototypes */
|
/* USER CODE END FunctionPrototypes */
|
||||||
|
|
||||||
/* GetIdleTaskMemory prototype (linked to static allocation support) */
|
/* GetIdleTaskMemory prototype (linked to static allocation support) */
|
||||||
void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
|
void vApplicationGetIdleTaskMemory(StaticTask_t** ppxIdleTaskTCBBuffer,
|
||||||
|
StackType_t** ppxIdleTaskStackBuffer,
|
||||||
|
uint32_t* pulIdleTaskStackSize);
|
||||||
|
|
||||||
/* GetTimerTaskMemory prototype (linked to static allocation support) */
|
/* GetTimerTaskMemory prototype (linked to static allocation support) */
|
||||||
void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t **ppxTimerTaskStackBuffer, uint32_t *pulTimerTaskStackSize );
|
void vApplicationGetTimerTaskMemory(StaticTask_t** ppxTimerTaskTCBBuffer,
|
||||||
|
StackType_t** ppxTimerTaskStackBuffer,
|
||||||
|
uint32_t* pulTimerTaskStackSize);
|
||||||
|
|
||||||
/* Hook prototypes */
|
/* Hook prototypes */
|
||||||
void vApplicationIdleHook(void);
|
void vApplicationIdleHook(void);
|
||||||
|
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
__weak void vApplicationIdleHook( void )
|
__weak void vApplicationIdleHook(void) {
|
||||||
{
|
|
||||||
/* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set
|
/* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set
|
||||||
to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle
|
to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle
|
||||||
task. It is essential that code added to this hook function never attempts
|
task. It is essential that code added to this hook function never attempts
|
||||||
@ -82,8 +85,9 @@ __weak void vApplicationIdleHook( void )
|
|||||||
static StaticTask_t xIdleTaskTCBBuffer;
|
static StaticTask_t xIdleTaskTCBBuffer;
|
||||||
static StackType_t xIdleStack[configMINIMAL_STACK_SIZE];
|
static StackType_t xIdleStack[configMINIMAL_STACK_SIZE];
|
||||||
|
|
||||||
void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize )
|
void vApplicationGetIdleTaskMemory(StaticTask_t** ppxIdleTaskTCBBuffer,
|
||||||
{
|
StackType_t** ppxIdleTaskStackBuffer,
|
||||||
|
uint32_t* pulIdleTaskStackSize) {
|
||||||
*ppxIdleTaskTCBBuffer = &xIdleTaskTCBBuffer;
|
*ppxIdleTaskTCBBuffer = &xIdleTaskTCBBuffer;
|
||||||
*ppxIdleTaskStackBuffer = &xIdleStack[0];
|
*ppxIdleTaskStackBuffer = &xIdleStack[0];
|
||||||
*pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
|
*pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
|
||||||
@ -95,8 +99,9 @@ void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackTy
|
|||||||
static StaticTask_t xTimerTaskTCBBuffer;
|
static StaticTask_t xTimerTaskTCBBuffer;
|
||||||
static StackType_t xTimerStack[configTIMER_TASK_STACK_DEPTH];
|
static StackType_t xTimerStack[configTIMER_TASK_STACK_DEPTH];
|
||||||
|
|
||||||
void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t **ppxTimerTaskStackBuffer, uint32_t *pulTimerTaskStackSize )
|
void vApplicationGetTimerTaskMemory(StaticTask_t** ppxTimerTaskTCBBuffer,
|
||||||
{
|
StackType_t** ppxTimerTaskStackBuffer,
|
||||||
|
uint32_t* pulTimerTaskStackSize) {
|
||||||
*ppxTimerTaskTCBBuffer = &xTimerTaskTCBBuffer;
|
*ppxTimerTaskTCBBuffer = &xTimerTaskTCBBuffer;
|
||||||
*ppxTimerTaskStackBuffer = &xTimerStack[0];
|
*ppxTimerTaskStackBuffer = &xTimerStack[0];
|
||||||
*pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
|
*pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
|
||||||
|
@ -87,13 +87,11 @@ void StartDefaultTask(void const * argument);
|
|||||||
* @brief The application entry point.
|
* @brief The application entry point.
|
||||||
* @retval int
|
* @retval int
|
||||||
*/
|
*/
|
||||||
int main(void)
|
int main(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
|
||||||
|
|
||||||
/* MCU Configuration--------------------------------------------------------*/
|
/* MCU Configuration--------------------------------------------------------*/
|
||||||
|
|
||||||
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
|
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
|
||||||
@ -156,8 +154,7 @@ int main(void)
|
|||||||
|
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
/* USER CODE BEGIN WHILE */
|
/* USER CODE BEGIN WHILE */
|
||||||
while (1)
|
while(1) {
|
||||||
{
|
|
||||||
/* USER CODE END WHILE */
|
/* USER CODE END WHILE */
|
||||||
|
|
||||||
/* USER CODE BEGIN 3 */
|
/* USER CODE BEGIN 3 */
|
||||||
@ -169,8 +166,7 @@ int main(void)
|
|||||||
* @brief System Clock Configuration
|
* @brief System Clock Configuration
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void SystemClock_Config(void)
|
void SystemClock_Config(void) {
|
||||||
{
|
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
|
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
|
||||||
@ -186,25 +182,23 @@ void SystemClock_Config(void)
|
|||||||
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7;
|
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7;
|
||||||
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
|
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
|
||||||
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
|
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
|
if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/** Initializes the CPU, AHB and APB busses clocks
|
/** Initializes the CPU, AHB and APB busses clocks
|
||||||
*/
|
*/
|
||||||
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 |
|
||||||
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
|
RCC_CLOCKTYPE_PCLK2;
|
||||||
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
|
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
|
||||||
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
||||||
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
|
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
|
||||||
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
|
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
|
||||||
|
|
||||||
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK)
|
if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1|RCC_PERIPHCLK_USB
|
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USB |
|
||||||
|RCC_PERIPHCLK_ADC;
|
RCC_PERIPHCLK_ADC;
|
||||||
PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
|
PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
|
||||||
PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_SYSCLK;
|
PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_SYSCLK;
|
||||||
PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLLSAI1;
|
PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLLSAI1;
|
||||||
@ -215,14 +209,12 @@ void SystemClock_Config(void)
|
|||||||
PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2;
|
PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2;
|
||||||
PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2;
|
PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2;
|
||||||
PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_48M2CLK;
|
PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_48M2CLK;
|
||||||
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
|
if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/** Configure the main internal regulator output voltage
|
/** Configure the main internal regulator output voltage
|
||||||
*/
|
*/
|
||||||
if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK)
|
if(HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -232,9 +224,7 @@ void SystemClock_Config(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_ADC1_Init(void)
|
static void MX_ADC1_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN ADC1_Init 0 */
|
/* USER CODE BEGIN ADC1_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END ADC1_Init 0 */
|
/* USER CODE END ADC1_Init 0 */
|
||||||
@ -262,15 +252,13 @@ static void MX_ADC1_Init(void)
|
|||||||
hadc1.Init.DMAContinuousRequests = DISABLE;
|
hadc1.Init.DMAContinuousRequests = DISABLE;
|
||||||
hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
||||||
hadc1.Init.OversamplingMode = DISABLE;
|
hadc1.Init.OversamplingMode = DISABLE;
|
||||||
if (HAL_ADC_Init(&hadc1) != HAL_OK)
|
if(HAL_ADC_Init(&hadc1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/** Configure the ADC multi-mode
|
/** Configure the ADC multi-mode
|
||||||
*/
|
*/
|
||||||
multimode.Mode = ADC_MODE_INDEPENDENT;
|
multimode.Mode = ADC_MODE_INDEPENDENT;
|
||||||
if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK)
|
if(HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/** Configure Regular Channel
|
/** Configure Regular Channel
|
||||||
@ -281,14 +269,12 @@ static void MX_ADC1_Init(void)
|
|||||||
sConfig.SingleDiff = ADC_SINGLE_ENDED;
|
sConfig.SingleDiff = ADC_SINGLE_ENDED;
|
||||||
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
||||||
sConfig.Offset = 0;
|
sConfig.Offset = 0;
|
||||||
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
|
if(HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN ADC1_Init 2 */
|
/* USER CODE BEGIN ADC1_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END ADC1_Init 2 */
|
/* USER CODE END ADC1_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -296,9 +282,7 @@ static void MX_ADC1_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_COMP1_Init(void)
|
static void MX_COMP1_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN COMP1_Init 0 */
|
/* USER CODE BEGIN COMP1_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END COMP1_Init 0 */
|
/* USER CODE END COMP1_Init 0 */
|
||||||
@ -315,14 +299,12 @@ static void MX_COMP1_Init(void)
|
|||||||
hcomp1.Init.Mode = COMP_POWERMODE_HIGHSPEED;
|
hcomp1.Init.Mode = COMP_POWERMODE_HIGHSPEED;
|
||||||
hcomp1.Init.WindowMode = COMP_WINDOWMODE_DISABLE;
|
hcomp1.Init.WindowMode = COMP_WINDOWMODE_DISABLE;
|
||||||
hcomp1.Init.TriggerMode = COMP_TRIGGERMODE_NONE;
|
hcomp1.Init.TriggerMode = COMP_TRIGGERMODE_NONE;
|
||||||
if (HAL_COMP_Init(&hcomp1) != HAL_OK)
|
if(HAL_COMP_Init(&hcomp1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN COMP1_Init 2 */
|
/* USER CODE BEGIN COMP1_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END COMP1_Init 2 */
|
/* USER CODE END COMP1_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -330,9 +312,7 @@ static void MX_COMP1_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_SPI1_Init(void)
|
static void MX_SPI1_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN SPI1_Init 0 */
|
/* USER CODE BEGIN SPI1_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_Init 0 */
|
/* USER CODE END SPI1_Init 0 */
|
||||||
@ -355,14 +335,12 @@ static void MX_SPI1_Init(void)
|
|||||||
hspi1.Init.CRCPolynomial = 7;
|
hspi1.Init.CRCPolynomial = 7;
|
||||||
hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
|
hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
|
||||||
hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
|
hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
|
||||||
if (HAL_SPI_Init(&hspi1) != HAL_OK)
|
if(HAL_SPI_Init(&hspi1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN SPI1_Init 2 */
|
/* USER CODE BEGIN SPI1_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_Init 2 */
|
/* USER CODE END SPI1_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -370,9 +348,7 @@ static void MX_SPI1_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_SPI3_Init(void)
|
static void MX_SPI3_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN SPI3_Init 0 */
|
/* USER CODE BEGIN SPI3_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI3_Init 0 */
|
/* USER CODE END SPI3_Init 0 */
|
||||||
@ -395,14 +371,12 @@ static void MX_SPI3_Init(void)
|
|||||||
hspi3.Init.CRCPolynomial = 7;
|
hspi3.Init.CRCPolynomial = 7;
|
||||||
hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
|
hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
|
||||||
hspi3.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
|
hspi3.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
|
||||||
if (HAL_SPI_Init(&hspi3) != HAL_OK)
|
if(HAL_SPI_Init(&hspi3) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN SPI3_Init 2 */
|
/* USER CODE BEGIN SPI3_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END SPI3_Init 2 */
|
/* USER CODE END SPI3_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -410,9 +384,7 @@ static void MX_SPI3_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_TIM5_Init(void)
|
static void MX_TIM5_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM5_Init 0 */
|
/* USER CODE BEGIN TIM5_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_Init 0 */
|
/* USER CODE END TIM5_Init 0 */
|
||||||
@ -429,29 +401,25 @@ static void MX_TIM5_Init(void)
|
|||||||
htim5.Init.Period = 291;
|
htim5.Init.Period = 291;
|
||||||
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
if (HAL_TIM_PWM_Init(&htim5) != HAL_OK)
|
if(HAL_TIM_PWM_Init(&htim5) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)
|
if(HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
sConfigOC.Pulse = 145;
|
sConfigOC.Pulse = 145;
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
|
if(HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_4) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN TIM5_Init 2 */
|
/* USER CODE BEGIN TIM5_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_Init 2 */
|
/* USER CODE END TIM5_Init 2 */
|
||||||
HAL_TIM_MspPostInit(&htim5);
|
HAL_TIM_MspPostInit(&htim5);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -459,9 +427,7 @@ static void MX_TIM5_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_TIM8_Init(void)
|
static void MX_TIM8_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM8_Init 0 */
|
/* USER CODE BEGIN TIM8_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM8_Init 0 */
|
/* USER CODE END TIM8_Init 0 */
|
||||||
@ -480,38 +446,32 @@ static void MX_TIM8_Init(void)
|
|||||||
htim8.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim8.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htim8.Init.RepetitionCounter = 0;
|
htim8.Init.RepetitionCounter = 0;
|
||||||
htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
if (HAL_TIM_Base_Init(&htim8) != HAL_OK)
|
if(HAL_TIM_Base_Init(&htim8) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
||||||
if (HAL_TIM_ConfigClockSource(&htim8, &sClockSourceConfig) != HAL_OK)
|
if(HAL_TIM_ConfigClockSource(&htim8, &sClockSourceConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (HAL_TIM_IC_Init(&htim8) != HAL_OK)
|
if(HAL_TIM_IC_Init(&htim8) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
|
sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim8, &sMasterConfig) != HAL_OK)
|
if(HAL_TIMEx_MasterConfigSynchronization(&htim8, &sMasterConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_BOTHEDGE;
|
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_BOTHEDGE;
|
||||||
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
||||||
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
||||||
sConfigIC.ICFilter = 0;
|
sConfigIC.ICFilter = 0;
|
||||||
if (HAL_TIM_IC_ConfigChannel(&htim8, &sConfigIC, TIM_CHANNEL_2) != HAL_OK)
|
if(HAL_TIM_IC_ConfigChannel(&htim8, &sConfigIC, TIM_CHANNEL_2) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN TIM8_Init 2 */
|
/* USER CODE BEGIN TIM8_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END TIM8_Init 2 */
|
/* USER CODE END TIM8_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -519,9 +479,7 @@ static void MX_TIM8_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_TIM15_Init(void)
|
static void MX_TIM15_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM15_Init 0 */
|
/* USER CODE BEGIN TIM15_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM15_Init 0 */
|
/* USER CODE END TIM15_Init 0 */
|
||||||
@ -540,14 +498,12 @@ static void MX_TIM15_Init(void)
|
|||||||
htim15.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim15.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htim15.Init.RepetitionCounter = 0;
|
htim15.Init.RepetitionCounter = 0;
|
||||||
htim15.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
htim15.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
if (HAL_TIM_OC_Init(&htim15) != HAL_OK)
|
if(HAL_TIM_OC_Init(&htim15) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim15, &sMasterConfig) != HAL_OK)
|
if(HAL_TIMEx_MasterConfigSynchronization(&htim15, &sMasterConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sConfigOC.OCMode = TIM_OCMODE_TIMING;
|
sConfigOC.OCMode = TIM_OCMODE_TIMING;
|
||||||
@ -557,12 +513,10 @@ static void MX_TIM15_Init(void)
|
|||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
|
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
|
||||||
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
|
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim15, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
if(HAL_TIM_OC_ConfigChannel(&htim15, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim15, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
|
if(HAL_TIM_OC_ConfigChannel(&htim15, &sConfigOC, TIM_CHANNEL_2) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
|
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
|
||||||
@ -572,15 +526,13 @@ static void MX_TIM15_Init(void)
|
|||||||
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
|
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
|
||||||
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
|
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
|
||||||
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
|
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
|
||||||
if (HAL_TIMEx_ConfigBreakDeadTime(&htim15, &sBreakDeadTimeConfig) != HAL_OK)
|
if(HAL_TIMEx_ConfigBreakDeadTime(&htim15, &sBreakDeadTimeConfig) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN TIM15_Init 2 */
|
/* USER CODE BEGIN TIM15_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END TIM15_Init 2 */
|
/* USER CODE END TIM15_Init 2 */
|
||||||
HAL_TIM_MspPostInit(&htim15);
|
HAL_TIM_MspPostInit(&htim15);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -588,9 +540,7 @@ static void MX_TIM15_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_USART1_UART_Init(void)
|
static void MX_USART1_UART_Init(void) {
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN USART1_Init 0 */
|
/* USER CODE BEGIN USART1_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END USART1_Init 0 */
|
/* USER CODE END USART1_Init 0 */
|
||||||
@ -608,14 +558,12 @@ static void MX_USART1_UART_Init(void)
|
|||||||
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
|
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||||
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||||||
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||||||
if (HAL_UART_Init(&huart1) != HAL_OK)
|
if(HAL_UART_Init(&huart1) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN USART1_Init 2 */
|
/* USER CODE BEGIN USART1_Init 2 */
|
||||||
|
|
||||||
/* USER CODE END USART1_Init 2 */
|
/* USER CODE END USART1_Init 2 */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -623,8 +571,7 @@ static void MX_USART1_UART_Init(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_GPIO_Init(void)
|
static void MX_GPIO_Init(void) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
|
|
||||||
/* GPIO Ports Clock Enable */
|
/* GPIO Ports Clock Enable */
|
||||||
@ -759,7 +706,6 @@ static void MX_GPIO_Init(void)
|
|||||||
|
|
||||||
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0);
|
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0);
|
||||||
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
|
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 4 */
|
/* USER CODE BEGIN 4 */
|
||||||
@ -773,16 +719,14 @@ void app();
|
|||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header_StartDefaultTask */
|
/* USER CODE END Header_StartDefaultTask */
|
||||||
void StartDefaultTask(void const * argument)
|
void StartDefaultTask(void const* argument) {
|
||||||
{
|
|
||||||
/* init code for USB_DEVICE */
|
/* init code for USB_DEVICE */
|
||||||
MX_USB_DEVICE_Init();
|
MX_USB_DEVICE_Init();
|
||||||
/* USER CODE BEGIN 5 */
|
/* USER CODE BEGIN 5 */
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
app();
|
app();
|
||||||
|
|
||||||
for(;;)
|
for(;;) {
|
||||||
{
|
|
||||||
osDelay(1);
|
osDelay(1);
|
||||||
}
|
}
|
||||||
/* USER CODE END 5 */
|
/* USER CODE END 5 */
|
||||||
@ -792,8 +736,7 @@ void StartDefaultTask(void const * argument)
|
|||||||
* @brief This function is executed in case of error occurrence.
|
* @brief This function is executed in case of error occurrence.
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void Error_Handler(void)
|
void Error_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN Error_Handler_Debug */
|
/* USER CODE BEGIN Error_Handler_Debug */
|
||||||
/* User can add his own implementation to report the HAL error return state */
|
/* User can add his own implementation to report the HAL error return state */
|
||||||
|
|
||||||
@ -808,8 +751,7 @@ void Error_Handler(void)
|
|||||||
* @param line: assert_param error line source number
|
* @param line: assert_param error line source number
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void assert_failed(char *file, uint32_t line)
|
void assert_failed(char* file, uint32_t line) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 6 */
|
/* USER CODE BEGIN 6 */
|
||||||
/* User can add his own implementation to report the file name and line number,
|
/* 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) */
|
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
|
||||||
|
@ -63,8 +63,7 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
|||||||
/**
|
/**
|
||||||
* Initializes the Global MSP.
|
* Initializes the Global MSP.
|
||||||
*/
|
*/
|
||||||
void HAL_MspInit(void)
|
void HAL_MspInit(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN MspInit 0 */
|
/* USER CODE BEGIN MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END MspInit 0 */
|
/* USER CODE END MspInit 0 */
|
||||||
@ -87,11 +86,9 @@ void HAL_MspInit(void)
|
|||||||
* @param hadc: ADC handle pointer
|
* @param hadc: ADC handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
|
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(hadc->Instance==ADC1)
|
if(hadc->Instance == ADC1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN ADC1_MspInit 0 */
|
/* USER CODE BEGIN ADC1_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END ADC1_MspInit 0 */
|
/* USER CODE END ADC1_MspInit 0 */
|
||||||
@ -118,7 +115,6 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
|
|||||||
|
|
||||||
/* USER CODE END ADC1_MspInit 1 */
|
/* USER CODE END ADC1_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -127,10 +123,8 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
|
|||||||
* @param hadc: ADC handle pointer
|
* @param hadc: ADC handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
|
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) {
|
||||||
{
|
if(hadc->Instance == ADC1) {
|
||||||
if(hadc->Instance==ADC1)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN ADC1_MspDeInit 0 */
|
/* USER CODE BEGIN ADC1_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END ADC1_MspDeInit 0 */
|
/* USER CODE END ADC1_MspDeInit 0 */
|
||||||
@ -149,7 +143,6 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
|
|||||||
|
|
||||||
/* USER CODE END ADC1_MspDeInit 1 */
|
/* USER CODE END ADC1_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -158,11 +151,9 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
|
|||||||
* @param hcomp: COMP handle pointer
|
* @param hcomp: COMP handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_COMP_MspInit(COMP_HandleTypeDef* hcomp)
|
void HAL_COMP_MspInit(COMP_HandleTypeDef* hcomp) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(hcomp->Instance==COMP1)
|
if(hcomp->Instance == COMP1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN COMP1_MspInit 0 */
|
/* USER CODE BEGIN COMP1_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END COMP1_MspInit 0 */
|
/* USER CODE END COMP1_MspInit 0 */
|
||||||
@ -180,7 +171,6 @@ void HAL_COMP_MspInit(COMP_HandleTypeDef* hcomp)
|
|||||||
|
|
||||||
/* USER CODE END COMP1_MspInit 1 */
|
/* USER CODE END COMP1_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -189,10 +179,8 @@ void HAL_COMP_MspInit(COMP_HandleTypeDef* hcomp)
|
|||||||
* @param hcomp: COMP handle pointer
|
* @param hcomp: COMP handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_COMP_MspDeInit(COMP_HandleTypeDef* hcomp)
|
void HAL_COMP_MspDeInit(COMP_HandleTypeDef* hcomp) {
|
||||||
{
|
if(hcomp->Instance == COMP1) {
|
||||||
if(hcomp->Instance==COMP1)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN COMP1_MspDeInit 0 */
|
/* USER CODE BEGIN COMP1_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END COMP1_MspDeInit 0 */
|
/* USER CODE END COMP1_MspDeInit 0 */
|
||||||
@ -206,7 +194,6 @@ void HAL_COMP_MspDeInit(COMP_HandleTypeDef* hcomp)
|
|||||||
|
|
||||||
/* USER CODE END COMP1_MspDeInit 1 */
|
/* USER CODE END COMP1_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -215,11 +202,9 @@ void HAL_COMP_MspDeInit(COMP_HandleTypeDef* hcomp)
|
|||||||
* @param hspi: SPI handle pointer
|
* @param hspi: SPI handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(hspi->Instance==SPI1)
|
if(hspi->Instance == SPI1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SPI1_MspInit 0 */
|
/* USER CODE BEGIN SPI1_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_MspInit 0 */
|
/* USER CODE END SPI1_MspInit 0 */
|
||||||
@ -241,9 +226,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
|||||||
/* USER CODE BEGIN SPI1_MspInit 1 */
|
/* USER CODE BEGIN SPI1_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_MspInit 1 */
|
/* USER CODE END SPI1_MspInit 1 */
|
||||||
}
|
} else if(hspi->Instance == SPI3) {
|
||||||
else if(hspi->Instance==SPI3)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SPI3_MspInit 0 */
|
/* USER CODE BEGIN SPI3_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI3_MspInit 0 */
|
/* USER CODE END SPI3_MspInit 0 */
|
||||||
@ -267,7 +250,6 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
|||||||
|
|
||||||
/* USER CODE END SPI3_MspInit 1 */
|
/* USER CODE END SPI3_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -276,10 +258,8 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
|||||||
* @param hspi: SPI handle pointer
|
* @param hspi: SPI handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi) {
|
||||||
{
|
if(hspi->Instance == SPI1) {
|
||||||
if(hspi->Instance==SPI1)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SPI1_MspDeInit 0 */
|
/* USER CODE BEGIN SPI1_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_MspDeInit 0 */
|
/* USER CODE END SPI1_MspDeInit 0 */
|
||||||
@ -295,9 +275,7 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
|||||||
/* USER CODE BEGIN SPI1_MspDeInit 1 */
|
/* USER CODE BEGIN SPI1_MspDeInit 1 */
|
||||||
|
|
||||||
/* USER CODE END SPI1_MspDeInit 1 */
|
/* USER CODE END SPI1_MspDeInit 1 */
|
||||||
}
|
} else if(hspi->Instance == SPI3) {
|
||||||
else if(hspi->Instance==SPI3)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SPI3_MspDeInit 0 */
|
/* USER CODE BEGIN SPI3_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END SPI3_MspDeInit 0 */
|
/* USER CODE END SPI3_MspDeInit 0 */
|
||||||
@ -315,7 +293,6 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
|||||||
|
|
||||||
/* USER CODE END SPI3_MspDeInit 1 */
|
/* USER CODE END SPI3_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -324,10 +301,8 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
|||||||
* @param htim_pwm: TIM_PWM handle pointer
|
* @param htim_pwm: TIM_PWM handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
|
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm) {
|
||||||
{
|
if(htim_pwm->Instance == TIM5) {
|
||||||
if(htim_pwm->Instance==TIM5)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM5_MspInit 0 */
|
/* USER CODE BEGIN TIM5_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_MspInit 0 */
|
/* USER CODE END TIM5_MspInit 0 */
|
||||||
@ -337,7 +312,6 @@ void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
|
|||||||
|
|
||||||
/* USER CODE END TIM5_MspInit 1 */
|
/* USER CODE END TIM5_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -346,11 +320,9 @@ void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
|
|||||||
* @param htim_base: TIM_Base handle pointer
|
* @param htim_base: TIM_Base handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(htim_base->Instance==TIM8)
|
if(htim_base->Instance == TIM8) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM8_MspInit 0 */
|
/* USER CODE BEGIN TIM8_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM8_MspInit 0 */
|
/* USER CODE END TIM8_MspInit 0 */
|
||||||
@ -375,7 +347,6 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|||||||
|
|
||||||
/* USER CODE END TIM8_MspInit 1 */
|
/* USER CODE END TIM8_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -384,10 +355,8 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|||||||
* @param htim_oc: TIM_OC handle pointer
|
* @param htim_oc: TIM_OC handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef* htim_oc)
|
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef* htim_oc) {
|
||||||
{
|
if(htim_oc->Instance == TIM15) {
|
||||||
if(htim_oc->Instance==TIM15)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM15_MspInit 0 */
|
/* USER CODE BEGIN TIM15_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM15_MspInit 0 */
|
/* USER CODE END TIM15_MspInit 0 */
|
||||||
@ -397,14 +366,11 @@ void HAL_TIM_OC_MspInit(TIM_HandleTypeDef* htim_oc)
|
|||||||
|
|
||||||
/* USER CODE END TIM15_MspInit 1 */
|
/* USER CODE END TIM15_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(htim->Instance==TIM5)
|
if(htim->Instance == TIM5) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM5_MspPostInit 0 */
|
/* USER CODE BEGIN TIM5_MspPostInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_MspPostInit 0 */
|
/* USER CODE END TIM5_MspPostInit 0 */
|
||||||
@ -422,9 +388,7 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
/* USER CODE BEGIN TIM5_MspPostInit 1 */
|
/* USER CODE BEGIN TIM5_MspPostInit 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_MspPostInit 1 */
|
/* USER CODE END TIM5_MspPostInit 1 */
|
||||||
}
|
} else if(htim->Instance == TIM15) {
|
||||||
else if(htim->Instance==TIM15)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM15_MspPostInit 0 */
|
/* USER CODE BEGIN TIM15_MspPostInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM15_MspPostInit 0 */
|
/* USER CODE END TIM15_MspPostInit 0 */
|
||||||
@ -445,7 +409,6 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
|
|
||||||
/* USER CODE END TIM15_MspPostInit 1 */
|
/* USER CODE END TIM15_MspPostInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @brief TIM_PWM MSP De-Initialization
|
* @brief TIM_PWM MSP De-Initialization
|
||||||
@ -453,10 +416,8 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
* @param htim_pwm: TIM_PWM handle pointer
|
* @param htim_pwm: TIM_PWM handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
|
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm) {
|
||||||
{
|
if(htim_pwm->Instance == TIM5) {
|
||||||
if(htim_pwm->Instance==TIM5)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM5_MspDeInit 0 */
|
/* USER CODE BEGIN TIM5_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_MspDeInit 0 */
|
/* USER CODE END TIM5_MspDeInit 0 */
|
||||||
@ -466,7 +427,6 @@ void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
|
|||||||
|
|
||||||
/* USER CODE END TIM5_MspDeInit 1 */
|
/* USER CODE END TIM5_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -475,10 +435,8 @@ void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
|
|||||||
* @param htim_base: TIM_Base handle pointer
|
* @param htim_base: TIM_Base handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) {
|
||||||
{
|
if(htim_base->Instance == TIM8) {
|
||||||
if(htim_base->Instance==TIM8)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM8_MspDeInit 0 */
|
/* USER CODE BEGIN TIM8_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM8_MspDeInit 0 */
|
/* USER CODE END TIM8_MspDeInit 0 */
|
||||||
@ -496,7 +454,6 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|||||||
|
|
||||||
/* USER CODE END TIM8_MspDeInit 1 */
|
/* USER CODE END TIM8_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -505,10 +462,8 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|||||||
* @param htim_oc: TIM_OC handle pointer
|
* @param htim_oc: TIM_OC handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef* htim_oc)
|
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef* htim_oc) {
|
||||||
{
|
if(htim_oc->Instance == TIM15) {
|
||||||
if(htim_oc->Instance==TIM15)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM15_MspDeInit 0 */
|
/* USER CODE BEGIN TIM15_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM15_MspDeInit 0 */
|
/* USER CODE END TIM15_MspDeInit 0 */
|
||||||
@ -518,7 +473,6 @@ void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef* htim_oc)
|
|||||||
|
|
||||||
/* USER CODE END TIM15_MspDeInit 1 */
|
/* USER CODE END TIM15_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -527,11 +481,9 @@ void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef* htim_oc)
|
|||||||
* @param huart: UART handle pointer
|
* @param huart: UART handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
void HAL_UART_MspInit(UART_HandleTypeDef* huart) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(huart->Instance==USART1)
|
if(huart->Instance == USART1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN USART1_MspInit 0 */
|
/* USER CODE BEGIN USART1_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END USART1_MspInit 0 */
|
/* USER CODE END USART1_MspInit 0 */
|
||||||
@ -554,7 +506,6 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
|||||||
|
|
||||||
/* USER CODE END USART1_MspInit 1 */
|
/* USER CODE END USART1_MspInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -563,10 +514,8 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
|||||||
* @param huart: UART handle pointer
|
* @param huart: UART handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) {
|
||||||
{
|
if(huart->Instance == USART1) {
|
||||||
if(huart->Instance==USART1)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN USART1_MspDeInit 0 */
|
/* USER CODE BEGIN USART1_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END USART1_MspDeInit 0 */
|
/* USER CODE END USART1_MspDeInit 0 */
|
||||||
@ -583,7 +532,6 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
|||||||
|
|
||||||
/* USER CODE END USART1_MspDeInit 1 */
|
/* USER CODE END USART1_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
@ -70,8 +70,7 @@ extern TIM_HandleTypeDef htim8;
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Non maskable interrupt.
|
* @brief This function handles Non maskable interrupt.
|
||||||
*/
|
*/
|
||||||
void NMI_Handler(void)
|
void NMI_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
|
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END NonMaskableInt_IRQn 0 */
|
/* USER CODE END NonMaskableInt_IRQn 0 */
|
||||||
@ -83,13 +82,11 @@ void NMI_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Hard fault interrupt.
|
* @brief This function handles Hard fault interrupt.
|
||||||
*/
|
*/
|
||||||
void HardFault_Handler(void)
|
void HardFault_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN HardFault_IRQn 0 */
|
/* USER CODE BEGIN HardFault_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END HardFault_IRQn 0 */
|
/* USER CODE END HardFault_IRQn 0 */
|
||||||
while (1)
|
while(1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN W1_HardFault_IRQn 0 */
|
/* USER CODE BEGIN W1_HardFault_IRQn 0 */
|
||||||
/* USER CODE END W1_HardFault_IRQn 0 */
|
/* USER CODE END W1_HardFault_IRQn 0 */
|
||||||
}
|
}
|
||||||
@ -98,13 +95,11 @@ void HardFault_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Memory management fault.
|
* @brief This function handles Memory management fault.
|
||||||
*/
|
*/
|
||||||
void MemManage_Handler(void)
|
void MemManage_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
|
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END MemoryManagement_IRQn 0 */
|
/* USER CODE END MemoryManagement_IRQn 0 */
|
||||||
while (1)
|
while(1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
|
/* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
|
||||||
/* USER CODE END W1_MemoryManagement_IRQn 0 */
|
/* USER CODE END W1_MemoryManagement_IRQn 0 */
|
||||||
}
|
}
|
||||||
@ -113,13 +108,11 @@ void MemManage_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Prefetch fault, memory access fault.
|
* @brief This function handles Prefetch fault, memory access fault.
|
||||||
*/
|
*/
|
||||||
void BusFault_Handler(void)
|
void BusFault_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN BusFault_IRQn 0 */
|
/* USER CODE BEGIN BusFault_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END BusFault_IRQn 0 */
|
/* USER CODE END BusFault_IRQn 0 */
|
||||||
while (1)
|
while(1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN W1_BusFault_IRQn 0 */
|
/* USER CODE BEGIN W1_BusFault_IRQn 0 */
|
||||||
/* USER CODE END W1_BusFault_IRQn 0 */
|
/* USER CODE END W1_BusFault_IRQn 0 */
|
||||||
}
|
}
|
||||||
@ -128,13 +121,11 @@ void BusFault_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Undefined instruction or illegal state.
|
* @brief This function handles Undefined instruction or illegal state.
|
||||||
*/
|
*/
|
||||||
void UsageFault_Handler(void)
|
void UsageFault_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN UsageFault_IRQn 0 */
|
/* USER CODE BEGIN UsageFault_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END UsageFault_IRQn 0 */
|
/* USER CODE END UsageFault_IRQn 0 */
|
||||||
while (1)
|
while(1) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN W1_UsageFault_IRQn 0 */
|
/* USER CODE BEGIN W1_UsageFault_IRQn 0 */
|
||||||
/* USER CODE END W1_UsageFault_IRQn 0 */
|
/* USER CODE END W1_UsageFault_IRQn 0 */
|
||||||
}
|
}
|
||||||
@ -143,8 +134,7 @@ void UsageFault_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles Debug monitor.
|
* @brief This function handles Debug monitor.
|
||||||
*/
|
*/
|
||||||
void DebugMon_Handler(void)
|
void DebugMon_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN DebugMonitor_IRQn 0 */
|
/* USER CODE BEGIN DebugMonitor_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END DebugMonitor_IRQn 0 */
|
/* USER CODE END DebugMonitor_IRQn 0 */
|
||||||
@ -156,15 +146,13 @@ void DebugMon_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles System tick timer.
|
* @brief This function handles System tick timer.
|
||||||
*/
|
*/
|
||||||
void SysTick_Handler(void)
|
void SysTick_Handler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN SysTick_IRQn 0 */
|
/* USER CODE BEGIN SysTick_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END SysTick_IRQn 0 */
|
/* USER CODE END SysTick_IRQn 0 */
|
||||||
HAL_IncTick();
|
HAL_IncTick();
|
||||||
#if(INCLUDE_xTaskGetSchedulerState == 1)
|
#if(INCLUDE_xTaskGetSchedulerState == 1)
|
||||||
if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED)
|
if(xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED) {
|
||||||
{
|
|
||||||
#endif /* INCLUDE_xTaskGetSchedulerState */
|
#endif /* INCLUDE_xTaskGetSchedulerState */
|
||||||
xPortSysTickHandler();
|
xPortSysTickHandler();
|
||||||
#if(INCLUDE_xTaskGetSchedulerState == 1)
|
#if(INCLUDE_xTaskGetSchedulerState == 1)
|
||||||
@ -185,8 +173,7 @@ void SysTick_Handler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles EXTI line0 interrupt.
|
* @brief This function handles EXTI line0 interrupt.
|
||||||
*/
|
*/
|
||||||
void EXTI0_IRQHandler(void)
|
void EXTI0_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN EXTI0_IRQn 0 */
|
/* USER CODE BEGIN EXTI0_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END EXTI0_IRQn 0 */
|
/* USER CODE END EXTI0_IRQn 0 */
|
||||||
@ -199,8 +186,7 @@ void EXTI0_IRQHandler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles EXTI line1 interrupt.
|
* @brief This function handles EXTI line1 interrupt.
|
||||||
*/
|
*/
|
||||||
void EXTI1_IRQHandler(void)
|
void EXTI1_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN EXTI1_IRQn 0 */
|
/* USER CODE BEGIN EXTI1_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END EXTI1_IRQn 0 */
|
/* USER CODE END EXTI1_IRQn 0 */
|
||||||
@ -213,8 +199,7 @@ void EXTI1_IRQHandler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles EXTI line2 interrupt.
|
* @brief This function handles EXTI line2 interrupt.
|
||||||
*/
|
*/
|
||||||
void EXTI2_IRQHandler(void)
|
void EXTI2_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN EXTI2_IRQn 0 */
|
/* USER CODE BEGIN EXTI2_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END EXTI2_IRQn 0 */
|
/* USER CODE END EXTI2_IRQn 0 */
|
||||||
@ -227,8 +212,7 @@ void EXTI2_IRQHandler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles EXTI line4 interrupt.
|
* @brief This function handles EXTI line4 interrupt.
|
||||||
*/
|
*/
|
||||||
void EXTI4_IRQHandler(void)
|
void EXTI4_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN EXTI4_IRQn 0 */
|
/* USER CODE BEGIN EXTI4_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END EXTI4_IRQn 0 */
|
/* USER CODE END EXTI4_IRQn 0 */
|
||||||
@ -241,8 +225,7 @@ void EXTI4_IRQHandler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles EXTI line[9:5] interrupts.
|
* @brief This function handles EXTI line[9:5] interrupts.
|
||||||
*/
|
*/
|
||||||
void EXTI9_5_IRQHandler(void)
|
void EXTI9_5_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN EXTI9_5_IRQn 0 */
|
/* USER CODE BEGIN EXTI9_5_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END EXTI9_5_IRQn 0 */
|
/* USER CODE END EXTI9_5_IRQn 0 */
|
||||||
@ -262,20 +245,16 @@ void register_tim8_callback_ch2(void(*callback)(uint16_t ccr, TimerEvent tim_eve
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles TIM8 capture compare interrupt.
|
* @brief This function handles TIM8 capture compare interrupt.
|
||||||
*/
|
*/
|
||||||
void TIM8_CC_IRQHandler(void)
|
void TIM8_CC_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM8_CC_IRQn 0 */
|
/* USER CODE BEGIN TIM8_CC_IRQn 0 */
|
||||||
|
|
||||||
/* Capture compare 2 event */
|
/* Capture compare 2 event */
|
||||||
if (__HAL_TIM_GET_FLAG(&htim8, TIM_FLAG_CC2) != RESET)
|
if(__HAL_TIM_GET_FLAG(&htim8, TIM_FLAG_CC2) != RESET) {
|
||||||
{
|
if(__HAL_TIM_GET_IT_SOURCE(&htim8, TIM_IT_CC2) != RESET) {
|
||||||
if (__HAL_TIM_GET_IT_SOURCE(&htim8, TIM_IT_CC2) != RESET)
|
|
||||||
{
|
|
||||||
__HAL_TIM_CLEAR_IT(&htim8, TIM_IT_CC2);
|
__HAL_TIM_CLEAR_IT(&htim8, TIM_IT_CC2);
|
||||||
htim8.Channel = HAL_TIM_ACTIVE_CHANNEL_2;
|
htim8.Channel = HAL_TIM_ACTIVE_CHANNEL_2;
|
||||||
/* Input capture event */
|
/* Input capture event */
|
||||||
if ((htim8.Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
|
if((htim8.Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U) {
|
||||||
{
|
|
||||||
/*
|
/*
|
||||||
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
|
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
|
||||||
htim->IC_CaptureCallback(htim);
|
htim->IC_CaptureCallback(htim);
|
||||||
@ -288,8 +267,7 @@ void TIM8_CC_IRQHandler(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Output compare event */
|
/* Output compare event */
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
if(tim8_callback_ch2 != NULL) {
|
if(tim8_callback_ch2 != NULL) {
|
||||||
tim8_callback_ch2(0, TimerEventEndOfPulse);
|
tim8_callback_ch2(0, TimerEventEndOfPulse);
|
||||||
}
|
}
|
||||||
@ -307,7 +285,6 @@ void TIM8_CC_IRQHandler(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* USER CODE END TIM8_CC_IRQn 0 */
|
/* USER CODE END TIM8_CC_IRQn 0 */
|
||||||
// HAL_TIM_IRQHandler(&htim8);
|
// HAL_TIM_IRQHandler(&htim8);
|
||||||
/* USER CODE BEGIN TIM8_CC_IRQn 1 */
|
/* USER CODE BEGIN TIM8_CC_IRQn 1 */
|
||||||
@ -318,8 +295,7 @@ void TIM8_CC_IRQHandler(void)
|
|||||||
/**
|
/**
|
||||||
* @brief This function handles USB OTG FS global interrupt.
|
* @brief This function handles USB OTG FS global interrupt.
|
||||||
*/
|
*/
|
||||||
void OTG_FS_IRQHandler(void)
|
void OTG_FS_IRQHandler(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN OTG_FS_IRQn 0 */
|
/* USER CODE BEGIN OTG_FS_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END OTG_FS_IRQn 0 */
|
/* USER CODE END OTG_FS_IRQn 0 */
|
||||||
|
@ -123,7 +123,8 @@
|
|||||||
/*!< Uncomment the following line if you need to relocate your vector Table in
|
/*!< Uncomment the following line if you need to relocate your vector Table in
|
||||||
Internal SRAM. */
|
Internal SRAM. */
|
||||||
/* #define VECT_TAB_SRAM */
|
/* #define VECT_TAB_SRAM */
|
||||||
#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field.
|
#define VECT_TAB_OFFSET \
|
||||||
|
0x00 /*!< Vector Table base offset field.
|
||||||
This value must be a multiple of 0x200. */
|
This value must be a multiple of 0x200. */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/**
|
/**
|
||||||
@ -153,8 +154,18 @@
|
|||||||
|
|
||||||
const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U};
|
const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U};
|
||||||
const uint8_t APBPrescTable[8] = {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U};
|
const uint8_t APBPrescTable[8] = {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U};
|
||||||
const uint32_t MSIRangeTable[12] = {100000U, 200000U, 400000U, 800000U, 1000000U, 2000000U, \
|
const uint32_t MSIRangeTable[12] = {100000U,
|
||||||
4000000U, 8000000U, 16000000U, 24000000U, 32000000U, 48000000U};
|
200000U,
|
||||||
|
400000U,
|
||||||
|
800000U,
|
||||||
|
1000000U,
|
||||||
|
2000000U,
|
||||||
|
4000000U,
|
||||||
|
8000000U,
|
||||||
|
16000000U,
|
||||||
|
24000000U,
|
||||||
|
32000000U,
|
||||||
|
48000000U};
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
@ -177,8 +188,7 @@
|
|||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void SystemInit(void)
|
void SystemInit(void) {
|
||||||
{
|
|
||||||
/* FPU settings ------------------------------------------------------------*/
|
/* FPU settings ------------------------------------------------------------*/
|
||||||
#if(__FPU_PRESENT == 1) && (__FPU_USED == 1)
|
#if(__FPU_PRESENT == 1) && (__FPU_USED == 1)
|
||||||
SCB->CPACR |= ((3UL << 10 * 2) | (3UL << 11 * 2)); /* set CP10 and CP11 Full Access */
|
SCB->CPACR |= ((3UL << 10 * 2) | (3UL << 11 * 2)); /* set CP10 and CP11 Full Access */
|
||||||
@ -253,25 +263,20 @@ void SystemInit(void)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void SystemCoreClockUpdate(void)
|
void SystemCoreClockUpdate(void) {
|
||||||
{
|
|
||||||
uint32_t tmp = 0U, msirange = 0U, pllvco = 0U, pllr = 2U, pllsource = 0U, pllm = 2U;
|
uint32_t tmp = 0U, msirange = 0U, pllvco = 0U, pllr = 2U, pllsource = 0U, pllm = 2U;
|
||||||
|
|
||||||
/* Get MSI Range frequency--------------------------------------------------*/
|
/* Get MSI Range frequency--------------------------------------------------*/
|
||||||
if((RCC->CR & RCC_CR_MSIRGSEL) == RESET)
|
if((RCC->CR & RCC_CR_MSIRGSEL) == RESET) { /* MSISRANGE from RCC_CSR applies */
|
||||||
{ /* MSISRANGE from RCC_CSR applies */
|
|
||||||
msirange = (RCC->CSR & RCC_CSR_MSISRANGE) >> 8U;
|
msirange = (RCC->CSR & RCC_CSR_MSISRANGE) >> 8U;
|
||||||
}
|
} else { /* MSIRANGE from RCC_CR applies */
|
||||||
else
|
|
||||||
{ /* MSIRANGE from RCC_CR applies */
|
|
||||||
msirange = (RCC->CR & RCC_CR_MSIRANGE) >> 4U;
|
msirange = (RCC->CR & RCC_CR_MSIRANGE) >> 4U;
|
||||||
}
|
}
|
||||||
/*MSI frequency range in HZ*/
|
/*MSI frequency range in HZ*/
|
||||||
msirange = MSIRangeTable[msirange];
|
msirange = MSIRangeTable[msirange];
|
||||||
|
|
||||||
/* Get SYSCLK source -------------------------------------------------------*/
|
/* Get SYSCLK source -------------------------------------------------------*/
|
||||||
switch (RCC->CFGR & RCC_CFGR_SWS)
|
switch(RCC->CFGR & RCC_CFGR_SWS) {
|
||||||
{
|
|
||||||
case 0x00: /* MSI used as system clock source */
|
case 0x00: /* MSI used as system clock source */
|
||||||
SystemCoreClock = msirange;
|
SystemCoreClock = msirange;
|
||||||
break;
|
break;
|
||||||
@ -291,8 +296,7 @@ void SystemCoreClockUpdate(void)
|
|||||||
pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC);
|
pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC);
|
||||||
pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4U) + 1U;
|
pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4U) + 1U;
|
||||||
|
|
||||||
switch (pllsource)
|
switch(pllsource) {
|
||||||
{
|
|
||||||
case 0x02: /* HSI used as PLL clock source */
|
case 0x02: /* HSI used as PLL clock source */
|
||||||
pllvco = (HSI_VALUE / pllm);
|
pllvco = (HSI_VALUE / pllm);
|
||||||
break;
|
break;
|
||||||
@ -321,7 +325,6 @@ void SystemCoreClockUpdate(void)
|
|||||||
SystemCoreClock >>= tmp;
|
SystemCoreClock >>= tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
@ -63,27 +63,22 @@ extern USBD_DescriptorsTypeDef FS_Desc;
|
|||||||
* Init USB device Library, add supported class and start the library
|
* Init USB device Library, add supported class and start the library
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void MX_USB_DEVICE_Init(void)
|
void MX_USB_DEVICE_Init(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */
|
/* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */
|
||||||
|
|
||||||
/* USER CODE END USB_DEVICE_Init_PreTreatment */
|
/* USER CODE END USB_DEVICE_Init_PreTreatment */
|
||||||
|
|
||||||
/* Init Device Library, add supported class and start the library. */
|
/* Init Device Library, add supported class and start the library. */
|
||||||
if (USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS) != USBD_OK)
|
if(USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS) != USBD_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC) != USBD_OK)
|
if(USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC) != USBD_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS) != USBD_OK)
|
if(USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS) != USBD_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (USBD_Start(&hUsbDeviceFS) != USBD_OK)
|
if(USBD_Start(&hUsbDeviceFS) != USBD_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN USB_DEVICE_Init_PostTreatment */
|
/* USER CODE BEGIN USB_DEVICE_Init_PostTreatment */
|
||||||
|
@ -139,21 +139,17 @@ static int8_t CDC_Receive_FS(uint8_t* pbuf, uint32_t *Len);
|
|||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
USBD_CDC_ItfTypeDef USBD_Interface_fops_FS =
|
USBD_CDC_ItfTypeDef USBD_Interface_fops_FS = {CDC_Init_FS,
|
||||||
{
|
|
||||||
CDC_Init_FS,
|
|
||||||
CDC_DeInit_FS,
|
CDC_DeInit_FS,
|
||||||
CDC_Control_FS,
|
CDC_Control_FS,
|
||||||
CDC_Receive_FS
|
CDC_Receive_FS};
|
||||||
};
|
|
||||||
|
|
||||||
/* Private functions ---------------------------------------------------------*/
|
/* Private functions ---------------------------------------------------------*/
|
||||||
/**
|
/**
|
||||||
* @brief Initializes the CDC media low layer over the FS USB IP
|
* @brief Initializes the CDC media low layer over the FS USB IP
|
||||||
* @retval USBD_OK if all operations are OK else USBD_FAIL
|
* @retval USBD_OK if all operations are OK else USBD_FAIL
|
||||||
*/
|
*/
|
||||||
static int8_t CDC_Init_FS(void)
|
static int8_t CDC_Init_FS(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 3 */
|
/* USER CODE BEGIN 3 */
|
||||||
/* Set Application Buffers */
|
/* Set Application Buffers */
|
||||||
USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, 0);
|
USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, 0);
|
||||||
@ -166,8 +162,7 @@ static int8_t CDC_Init_FS(void)
|
|||||||
* @brief DeInitializes the CDC media low layer
|
* @brief DeInitializes the CDC media low layer
|
||||||
* @retval USBD_OK if all operations are OK else USBD_FAIL
|
* @retval USBD_OK if all operations are OK else USBD_FAIL
|
||||||
*/
|
*/
|
||||||
static int8_t CDC_DeInit_FS(void)
|
static int8_t CDC_DeInit_FS(void) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 4 */
|
/* USER CODE BEGIN 4 */
|
||||||
return (USBD_OK);
|
return (USBD_OK);
|
||||||
/* USER CODE END 4 */
|
/* USER CODE END 4 */
|
||||||
@ -180,11 +175,9 @@ static int8_t CDC_DeInit_FS(void)
|
|||||||
* @param length: Number of data to be sent (in bytes)
|
* @param length: Number of data to be sent (in bytes)
|
||||||
* @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL
|
* @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL
|
||||||
*/
|
*/
|
||||||
static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length)
|
static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 5 */
|
/* USER CODE BEGIN 5 */
|
||||||
switch(cmd)
|
switch(cmd) {
|
||||||
{
|
|
||||||
case CDC_SEND_ENCAPSULATED_COMMAND:
|
case CDC_SEND_ENCAPSULATED_COMMAND:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -260,8 +253,7 @@ static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length)
|
|||||||
* @param Len: Number of data received (in bytes)
|
* @param Len: Number of data received (in bytes)
|
||||||
* @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL
|
* @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL
|
||||||
*/
|
*/
|
||||||
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
|
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t* Len) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN 6 */
|
/* USER CODE BEGIN 6 */
|
||||||
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
|
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
|
||||||
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
|
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
|
||||||
@ -280,8 +272,7 @@ static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
|
|||||||
* @param Len: Number of data to be sent (in bytes)
|
* @param Len: Number of data to be sent (in bytes)
|
||||||
* @retval USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY
|
* @retval USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY
|
||||||
*/
|
*/
|
||||||
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
|
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len) {
|
||||||
{
|
|
||||||
uint8_t result = USBD_OK;
|
uint8_t result = USBD_OK;
|
||||||
/* USER CODE BEGIN 7 */
|
/* USER CODE BEGIN 7 */
|
||||||
USBD_CDC_HandleTypeDef* hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData;
|
USBD_CDC_HandleTypeDef* hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData;
|
||||||
|
@ -67,11 +67,9 @@ extern void SystemClock_Config(void);
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
/* MSP Init */
|
/* MSP Init */
|
||||||
|
|
||||||
void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
|
void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle) {
|
||||||
{
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
if(pcdHandle->Instance==USB_OTG_FS)
|
if(pcdHandle->Instance == USB_OTG_FS) {
|
||||||
{
|
|
||||||
/* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
|
/* USER CODE BEGIN USB_OTG_FS_MspInit 0 */
|
||||||
|
|
||||||
/* USER CODE END USB_OTG_FS_MspInit 0 */
|
/* USER CODE END USB_OTG_FS_MspInit 0 */
|
||||||
@ -92,14 +90,11 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
|
|||||||
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
||||||
|
|
||||||
/* Enable VDDUSB */
|
/* Enable VDDUSB */
|
||||||
if(__HAL_RCC_PWR_IS_CLK_DISABLED())
|
if(__HAL_RCC_PWR_IS_CLK_DISABLED()) {
|
||||||
{
|
|
||||||
__HAL_RCC_PWR_CLK_ENABLE();
|
__HAL_RCC_PWR_CLK_ENABLE();
|
||||||
HAL_PWREx_EnableVddUSB();
|
HAL_PWREx_EnableVddUSB();
|
||||||
__HAL_RCC_PWR_CLK_DISABLE();
|
__HAL_RCC_PWR_CLK_DISABLE();
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
HAL_PWREx_EnableVddUSB();
|
HAL_PWREx_EnableVddUSB();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,10 +107,8 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle)
|
void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle) {
|
||||||
{
|
if(pcdHandle->Instance == USB_OTG_FS) {
|
||||||
if(pcdHandle->Instance==USB_OTG_FS)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
|
/* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */
|
||||||
|
|
||||||
/* USER CODE END USB_OTG_FS_MspDeInit 0 */
|
/* USER CODE END USB_OTG_FS_MspDeInit 0 */
|
||||||
@ -129,14 +122,11 @@ void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle)
|
|||||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11 | GPIO_PIN_12);
|
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11 | GPIO_PIN_12);
|
||||||
|
|
||||||
/* Disable VDDUSB */
|
/* Disable VDDUSB */
|
||||||
if(__HAL_RCC_PWR_IS_CLK_DISABLED())
|
if(__HAL_RCC_PWR_IS_CLK_DISABLED()) {
|
||||||
{
|
|
||||||
__HAL_RCC_PWR_CLK_ENABLE();
|
__HAL_RCC_PWR_CLK_ENABLE();
|
||||||
HAL_PWREx_DisableVddUSB();
|
HAL_PWREx_DisableVddUSB();
|
||||||
__HAL_RCC_PWR_CLK_DISABLE();
|
__HAL_RCC_PWR_CLK_DISABLE();
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
HAL_PWREx_DisableVddUSB();
|
HAL_PWREx_DisableVddUSB();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,8 +210,7 @@ void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
|
|||||||
{
|
{
|
||||||
USBD_SpeedTypeDef speed = USBD_SPEED_FULL;
|
USBD_SpeedTypeDef speed = USBD_SPEED_FULL;
|
||||||
|
|
||||||
if ( hpcd->Init.speed != PCD_SPEED_FULL)
|
if(hpcd->Init.speed != PCD_SPEED_FULL) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* Set Speed. */
|
/* Set Speed. */
|
||||||
@ -248,8 +237,7 @@ void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd)
|
|||||||
USBD_LL_Suspend((USBD_HandleTypeDef*)hpcd->pData);
|
USBD_LL_Suspend((USBD_HandleTypeDef*)hpcd->pData);
|
||||||
/* Enter in STOP mode. */
|
/* Enter in STOP mode. */
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
if (hpcd->Init.low_power_enable)
|
if(hpcd->Init.low_power_enable) {
|
||||||
{
|
|
||||||
/* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register. */
|
/* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register. */
|
||||||
SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
||||||
}
|
}
|
||||||
@ -271,8 +259,7 @@ void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd)
|
|||||||
__HAL_PCD_UNGATE_PHYCLOCK(hpcd);
|
__HAL_PCD_UNGATE_PHYCLOCK(hpcd);
|
||||||
|
|
||||||
/* USER CODE BEGIN 3 */
|
/* USER CODE BEGIN 3 */
|
||||||
if (hpcd->Init.low_power_enable)
|
if(hpcd->Init.low_power_enable) {
|
||||||
{
|
|
||||||
/* Reset SLEEPDEEP bit of Cortex System Control Register. */
|
/* Reset SLEEPDEEP bit of Cortex System Control Register. */
|
||||||
SCB->SCR &= (uint32_t) ~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
SCB->SCR &= (uint32_t) ~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
||||||
SystemClockConfig_Resume();
|
SystemClockConfig_Resume();
|
||||||
@ -352,8 +339,7 @@ void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)
|
|||||||
* @param pdev: Device handle
|
* @param pdev: Device handle
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
|
USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef* pdev) {
|
||||||
{
|
|
||||||
/* Init USB Ip. */
|
/* Init USB Ip. */
|
||||||
if(pdev->id == DEVICE_FS) {
|
if(pdev->id == DEVICE_FS) {
|
||||||
/* Enable USB power on Pwrctrl CR2 register. */
|
/* Enable USB power on Pwrctrl CR2 register. */
|
||||||
@ -371,20 +357,21 @@ USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
|
|||||||
hpcd_USB_OTG_FS.Init.battery_charging_enable = DISABLE;
|
hpcd_USB_OTG_FS.Init.battery_charging_enable = DISABLE;
|
||||||
hpcd_USB_OTG_FS.Init.use_dedicated_ep1 = DISABLE;
|
hpcd_USB_OTG_FS.Init.use_dedicated_ep1 = DISABLE;
|
||||||
hpcd_USB_OTG_FS.Init.vbus_sensing_enable = DISABLE;
|
hpcd_USB_OTG_FS.Init.vbus_sensing_enable = DISABLE;
|
||||||
if (HAL_PCD_Init(&hpcd_USB_OTG_FS) != HAL_OK)
|
if(HAL_PCD_Init(&hpcd_USB_OTG_FS) != HAL_OK) {
|
||||||
{
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if(USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
#if(USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
|
||||||
/* Register USB PCD CallBacks */
|
/* Register USB PCD CallBacks */
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_SOF_CB_ID, PCD_SOFCallback);
|
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_SOF_CB_ID, PCD_SOFCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_SETUPSTAGE_CB_ID, PCD_SetupStageCallback);
|
HAL_PCD_RegisterCallback(
|
||||||
|
&hpcd_USB_OTG_FS, HAL_PCD_SETUPSTAGE_CB_ID, PCD_SetupStageCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_RESET_CB_ID, PCD_ResetCallback);
|
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_RESET_CB_ID, PCD_ResetCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_SUSPEND_CB_ID, PCD_SuspendCallback);
|
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_SUSPEND_CB_ID, PCD_SuspendCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_RESUME_CB_ID, PCD_ResumeCallback);
|
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_RESUME_CB_ID, PCD_ResumeCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_CONNECT_CB_ID, PCD_ConnectCallback);
|
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_CONNECT_CB_ID, PCD_ConnectCallback);
|
||||||
HAL_PCD_RegisterCallback(&hpcd_USB_OTG_FS, HAL_PCD_DISCONNECT_CB_ID, PCD_DisconnectCallback);
|
HAL_PCD_RegisterCallback(
|
||||||
|
&hpcd_USB_OTG_FS, HAL_PCD_DISCONNECT_CB_ID, PCD_DisconnectCallback);
|
||||||
|
|
||||||
HAL_PCD_RegisterDataOutStageCallback(&hpcd_USB_OTG_FS, PCD_DataOutStageCallback);
|
HAL_PCD_RegisterDataOutStageCallback(&hpcd_USB_OTG_FS, PCD_DataOutStageCallback);
|
||||||
HAL_PCD_RegisterDataInStageCallback(&hpcd_USB_OTG_FS, PCD_DataInStageCallback);
|
HAL_PCD_RegisterDataInStageCallback(&hpcd_USB_OTG_FS, PCD_DataInStageCallback);
|
||||||
@ -403,8 +390,7 @@ USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
|
|||||||
* @param pdev: Device handle
|
* @param pdev: Device handle
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev)
|
USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef* pdev) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -435,8 +421,7 @@ USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev)
|
|||||||
* @param pdev: Device handle
|
* @param pdev: Device handle
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev)
|
USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef* pdev) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -467,8 +452,7 @@ USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev)
|
|||||||
* @param pdev: Device handle
|
* @param pdev: Device handle
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef *pdev)
|
USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef* pdev) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -502,8 +486,8 @@ USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef *pdev)
|
|||||||
* @param ep_mps: Endpoint max packet size
|
* @param ep_mps: Endpoint max packet size
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t ep_type, uint16_t ep_mps)
|
USBD_StatusTypeDef
|
||||||
{
|
USBD_LL_OpenEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr, uint8_t ep_type, uint16_t ep_mps) {
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -535,8 +519,7 @@ USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uin
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -568,8 +551,7 @@ USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -601,8 +583,7 @@ USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -634,8 +615,7 @@ USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -667,16 +647,12 @@ USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_add
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval Stall (1: Yes, 0: No)
|
* @retval Stall (1: Yes, 0: No)
|
||||||
*/
|
*/
|
||||||
uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
PCD_HandleTypeDef* hpcd = (PCD_HandleTypeDef*)pdev->pData;
|
PCD_HandleTypeDef* hpcd = (PCD_HandleTypeDef*)pdev->pData;
|
||||||
|
|
||||||
if((ep_addr & 0x80) == 0x80)
|
if((ep_addr & 0x80) == 0x80) {
|
||||||
{
|
|
||||||
return hpcd->IN_ep[ep_addr & 0x7F].is_stall;
|
return hpcd->IN_ep[ep_addr & 0x7F].is_stall;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
return hpcd->OUT_ep[ep_addr & 0x7F].is_stall;
|
return hpcd->OUT_ep[ep_addr & 0x7F].is_stall;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -687,8 +663,7 @@ uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
|||||||
* @param dev_addr: Device address
|
* @param dev_addr: Device address
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_addr)
|
USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef* pdev, uint8_t dev_addr) {
|
||||||
{
|
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -722,8 +697,8 @@ USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_a
|
|||||||
* @param size: Data size
|
* @param size: Data size
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, uint16_t size)
|
USBD_StatusTypeDef
|
||||||
{
|
USBD_LL_Transmit(USBD_HandleTypeDef* pdev, uint8_t ep_addr, uint8_t* pbuf, uint16_t size) {
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -757,8 +732,8 @@ USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, u
|
|||||||
* @param size: Data size
|
* @param size: Data size
|
||||||
* @retval USBD status
|
* @retval USBD status
|
||||||
*/
|
*/
|
||||||
USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, uint16_t size)
|
USBD_StatusTypeDef
|
||||||
{
|
USBD_LL_PrepareReceive(USBD_HandleTypeDef* pdev, uint8_t ep_addr, uint8_t* pbuf, uint16_t size) {
|
||||||
HAL_StatusTypeDef hal_status = HAL_OK;
|
HAL_StatusTypeDef hal_status = HAL_OK;
|
||||||
USBD_StatusTypeDef usb_status = USBD_OK;
|
USBD_StatusTypeDef usb_status = USBD_OK;
|
||||||
|
|
||||||
@ -790,8 +765,7 @@ USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, uint8_t ep_a
|
|||||||
* @param ep_addr: Endpoint number
|
* @param ep_addr: Endpoint number
|
||||||
* @retval Recived Data Size
|
* @retval Recived Data Size
|
||||||
*/
|
*/
|
||||||
uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef* pdev, uint8_t ep_addr) {
|
||||||
{
|
|
||||||
return HAL_PCD_EP_GetRxCount((PCD_HandleTypeDef*)pdev->pData, ep_addr);
|
return HAL_PCD_EP_GetRxCount((PCD_HandleTypeDef*)pdev->pData, ep_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -801,13 +775,10 @@ uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
|
|||||||
* @param msg: LPM message
|
* @param msg: LPM message
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
|
void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef* hpcd, PCD_LPM_MsgTypeDef msg) {
|
||||||
{
|
switch(msg) {
|
||||||
switch (msg)
|
|
||||||
{
|
|
||||||
case PCD_LPM_L0_ACTIVE:
|
case PCD_LPM_L0_ACTIVE:
|
||||||
if (hpcd->Init.low_power_enable)
|
if(hpcd->Init.low_power_enable) {
|
||||||
{
|
|
||||||
SystemClockConfig_Resume();
|
SystemClockConfig_Resume();
|
||||||
|
|
||||||
/* Reset SLEEPDEEP bit of Cortex System Control Register. */
|
/* Reset SLEEPDEEP bit of Cortex System Control Register. */
|
||||||
@ -822,8 +793,7 @@ void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
|
|||||||
USBD_LL_Suspend(hpcd->pData);
|
USBD_LL_Suspend(hpcd->pData);
|
||||||
|
|
||||||
/* Enter in STOP mode. */
|
/* Enter in STOP mode. */
|
||||||
if (hpcd->Init.low_power_enable)
|
if(hpcd->Init.low_power_enable) {
|
||||||
{
|
|
||||||
/* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register. */
|
/* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register. */
|
||||||
SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
|
||||||
}
|
}
|
||||||
@ -836,8 +806,7 @@ void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
|
|||||||
* @param Delay: Delay in ms
|
* @param Delay: Delay in ms
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void USBD_LL_Delay(uint32_t Delay)
|
void USBD_LL_Delay(uint32_t Delay) {
|
||||||
{
|
|
||||||
HAL_Delay(Delay);
|
HAL_Delay(Delay);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -846,8 +815,7 @@ void USBD_LL_Delay(uint32_t Delay)
|
|||||||
* @param size: Size of allocated memory
|
* @param size: Size of allocated memory
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void *USBD_static_malloc(uint32_t size)
|
void* USBD_static_malloc(uint32_t size) {
|
||||||
{
|
|
||||||
static uint32_t mem[(sizeof(USBD_CDC_HandleTypeDef) / 4) + 1]; /* On 32-bit boundary */
|
static uint32_t mem[(sizeof(USBD_CDC_HandleTypeDef) / 4) + 1]; /* On 32-bit boundary */
|
||||||
return mem;
|
return mem;
|
||||||
}
|
}
|
||||||
@ -857,9 +825,7 @@ void *USBD_static_malloc(uint32_t size)
|
|||||||
* @param p: Pointer to allocated memory address
|
* @param p: Pointer to allocated memory address
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void USBD_static_free(void *p)
|
void USBD_static_free(void* p) {
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 5 */
|
/* USER CODE BEGIN 5 */
|
||||||
@ -868,8 +834,7 @@ void USBD_static_free(void *p)
|
|||||||
* enable HSI, PLL and select PLL as system clock source.
|
* enable HSI, PLL and select PLL as system clock source.
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void SystemClockConfig_Resume(void)
|
static void SystemClockConfig_Resume(void) {
|
||||||
{
|
|
||||||
SystemClock_Config();
|
SystemClock_Config();
|
||||||
}
|
}
|
||||||
/* USER CODE END 5 */
|
/* USER CODE END 5 */
|
||||||
|
@ -110,7 +110,6 @@ static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len);
|
|||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes
|
/** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes
|
||||||
* @brief Private functions declaration for FS.
|
* @brief Private functions declaration for FS.
|
||||||
* @{
|
* @{
|
||||||
@ -136,17 +135,16 @@ uint8_t * USBD_FS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
|
|||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
USBD_DescriptorsTypeDef FS_Desc =
|
USBD_DescriptorsTypeDef FS_Desc = {USBD_FS_DeviceDescriptor,
|
||||||
{
|
USBD_FS_LangIDStrDescriptor,
|
||||||
USBD_FS_DeviceDescriptor
|
USBD_FS_ManufacturerStrDescriptor,
|
||||||
, USBD_FS_LangIDStrDescriptor
|
USBD_FS_ProductStrDescriptor,
|
||||||
, USBD_FS_ManufacturerStrDescriptor
|
USBD_FS_SerialStrDescriptor,
|
||||||
, USBD_FS_ProductStrDescriptor
|
USBD_FS_ConfigStrDescriptor,
|
||||||
, USBD_FS_SerialStrDescriptor
|
USBD_FS_InterfaceStrDescriptor
|
||||||
, USBD_FS_ConfigStrDescriptor
|
|
||||||
, USBD_FS_InterfaceStrDescriptor
|
|
||||||
#if(USBD_LPM_ENABLED == 1)
|
#if(USBD_LPM_ENABLED == 1)
|
||||||
, USBD_FS_USR_BOSDescriptor
|
,
|
||||||
|
USBD_FS_USR_BOSDescriptor
|
||||||
#endif /* (USBD_LPM_ENABLED == 1) */
|
#endif /* (USBD_LPM_ENABLED == 1) */
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -154,12 +152,12 @@ USBD_DescriptorsTypeDef FS_Desc =
|
|||||||
#pragma data_alignment = 4
|
#pragma data_alignment = 4
|
||||||
#endif /* defined ( __ICCARM__ ) */
|
#endif /* defined ( __ICCARM__ ) */
|
||||||
/** USB standard device descriptor. */
|
/** USB standard device descriptor. */
|
||||||
__ALIGN_BEGIN uint8_t USBD_FS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END =
|
__ALIGN_BEGIN uint8_t USBD_FS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = {
|
||||||
{
|
|
||||||
0x12, /*bLength */
|
0x12, /*bLength */
|
||||||
USB_DESC_TYPE_DEVICE, /*bDescriptorType*/
|
USB_DESC_TYPE_DEVICE, /*bDescriptorType*/
|
||||||
#if(USBD_LPM_ENABLED == 1)
|
#if(USBD_LPM_ENABLED == 1)
|
||||||
0x01, /*bcdUSB */ /* changed to USB version 2.01
|
0x01,
|
||||||
|
/*bcdUSB */ /* changed to USB version 2.01
|
||||||
in order to support LPM L1 suspend
|
in order to support LPM L1 suspend
|
||||||
resume test of USBCV3.0*/
|
resume test of USBCV3.0*/
|
||||||
#else
|
#else
|
||||||
@ -188,8 +186,7 @@ __ALIGN_BEGIN uint8_t USBD_FS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END =
|
|||||||
#if defined(__ICCARM__) /* IAR Compiler */
|
#if defined(__ICCARM__) /* IAR Compiler */
|
||||||
#pragma data_alignment = 4
|
#pragma data_alignment = 4
|
||||||
#endif /* defined ( __ICCARM__ ) */
|
#endif /* defined ( __ICCARM__ ) */
|
||||||
__ALIGN_BEGIN uint8_t USBD_FS_BOSDesc[USB_SIZ_BOS_DESC] __ALIGN_END =
|
__ALIGN_BEGIN uint8_t USBD_FS_BOSDesc[USB_SIZ_BOS_DESC] __ALIGN_END = {
|
||||||
{
|
|
||||||
0x5,
|
0x5,
|
||||||
USB_DESC_TYPE_BOS,
|
USB_DESC_TYPE_BOS,
|
||||||
0xC,
|
0xC,
|
||||||
@ -202,8 +199,7 @@ __ALIGN_BEGIN uint8_t USBD_FS_BOSDesc[USB_SIZ_BOS_DESC] __ALIGN_END =
|
|||||||
0x2, /* LPM capability bit set*/
|
0x2, /* LPM capability bit set*/
|
||||||
0x0,
|
0x0,
|
||||||
0x0,
|
0x0,
|
||||||
0x0
|
0x0};
|
||||||
};
|
|
||||||
#endif /* (USBD_LPM_ENABLED == 1) */
|
#endif /* (USBD_LPM_ENABLED == 1) */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -220,13 +216,11 @@ __ALIGN_BEGIN uint8_t USBD_FS_BOSDesc[USB_SIZ_BOS_DESC] __ALIGN_END =
|
|||||||
#endif /* defined ( __ICCARM__ ) */
|
#endif /* defined ( __ICCARM__ ) */
|
||||||
|
|
||||||
/** USB lang indentifier descriptor. */
|
/** USB lang indentifier descriptor. */
|
||||||
__ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END =
|
__ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END = {
|
||||||
{
|
|
||||||
USB_LEN_LANGID_STR_DESC,
|
USB_LEN_LANGID_STR_DESC,
|
||||||
USB_DESC_TYPE_STRING,
|
USB_DESC_TYPE_STRING,
|
||||||
LOBYTE(USBD_LANGID_STRING),
|
LOBYTE(USBD_LANGID_STRING),
|
||||||
HIBYTE(USBD_LANGID_STRING)
|
HIBYTE(USBD_LANGID_STRING)};
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(__ICCARM__) /* IAR Compiler */
|
#if defined(__ICCARM__) /* IAR Compiler */
|
||||||
#pragma data_alignment = 4
|
#pragma data_alignment = 4
|
||||||
@ -257,8 +251,7 @@ __ALIGN_BEGIN uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL] __ALIGN_END = {
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
|
||||||
UNUSED(speed);
|
UNUSED(speed);
|
||||||
*length = sizeof(USBD_FS_DeviceDesc);
|
*length = sizeof(USBD_FS_DeviceDesc);
|
||||||
return USBD_FS_DeviceDesc;
|
return USBD_FS_DeviceDesc;
|
||||||
@ -270,8 +263,7 @@ uint8_t * USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
|
||||||
UNUSED(speed);
|
UNUSED(speed);
|
||||||
*length = sizeof(USBD_LangIDDesc);
|
*length = sizeof(USBD_LangIDDesc);
|
||||||
return USBD_LangIDDesc;
|
return USBD_LangIDDesc;
|
||||||
@ -283,14 +275,10 @@ uint8_t * USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
if(speed == 0) {
|
||||||
if(speed == 0)
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
}
|
||||||
return USBD_StrDesc;
|
return USBD_StrDesc;
|
||||||
@ -302,8 +290,7 @@ uint8_t * USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
|
||||||
UNUSED(speed);
|
UNUSED(speed);
|
||||||
USBD_GetString((uint8_t*)USBD_MANUFACTURER_STRING, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_MANUFACTURER_STRING, USBD_StrDesc, length);
|
||||||
return USBD_StrDesc;
|
return USBD_StrDesc;
|
||||||
@ -315,8 +302,7 @@ uint8_t * USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *l
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
|
||||||
UNUSED(speed);
|
UNUSED(speed);
|
||||||
*length = USB_SIZ_STRING_SERIAL;
|
*length = USB_SIZ_STRING_SERIAL;
|
||||||
|
|
||||||
@ -335,14 +321,10 @@ uint8_t * USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
if(speed == USBD_SPEED_HIGH) {
|
||||||
if(speed == USBD_SPEED_HIGH)
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
}
|
||||||
return USBD_StrDesc;
|
return USBD_StrDesc;
|
||||||
@ -354,14 +336,10 @@ uint8_t * USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
if(speed == 0) {
|
||||||
if(speed == 0)
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
USBD_GetString((uint8_t*)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
|
USBD_GetString((uint8_t*)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
|
||||||
}
|
}
|
||||||
return USBD_StrDesc;
|
return USBD_StrDesc;
|
||||||
@ -374,8 +352,7 @@ uint8_t * USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *leng
|
|||||||
* @param length : Pointer to data length variable
|
* @param length : Pointer to data length variable
|
||||||
* @retval Pointer to descriptor buffer
|
* @retval Pointer to descriptor buffer
|
||||||
*/
|
*/
|
||||||
uint8_t * USBD_FS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
uint8_t* USBD_FS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t* length) {
|
||||||
{
|
|
||||||
UNUSED(speed);
|
UNUSED(speed);
|
||||||
*length = sizeof(USBD_FS_BOSDesc);
|
*length = sizeof(USBD_FS_BOSDesc);
|
||||||
return (uint8_t*)USBD_FS_BOSDesc;
|
return (uint8_t*)USBD_FS_BOSDesc;
|
||||||
@ -387,8 +364,7 @@ uint8_t * USBD_FS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void Get_SerialNum(void)
|
static void Get_SerialNum(void) {
|
||||||
{
|
|
||||||
uint32_t deviceserial0, deviceserial1, deviceserial2;
|
uint32_t deviceserial0, deviceserial1, deviceserial2;
|
||||||
|
|
||||||
deviceserial0 = *(uint32_t*)DEVICE_ID1;
|
deviceserial0 = *(uint32_t*)DEVICE_ID1;
|
||||||
@ -397,8 +373,7 @@ static void Get_SerialNum(void)
|
|||||||
|
|
||||||
deviceserial0 += deviceserial2;
|
deviceserial0 += deviceserial2;
|
||||||
|
|
||||||
if (deviceserial0 != 0)
|
if(deviceserial0 != 0) {
|
||||||
{
|
|
||||||
IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8);
|
IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8);
|
||||||
IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4);
|
IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4);
|
||||||
}
|
}
|
||||||
@ -411,18 +386,13 @@ static void Get_SerialNum(void)
|
|||||||
* @param len: buffer length
|
* @param len: buffer length
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len)
|
static void IntToUnicode(uint32_t value, uint8_t* pbuf, uint8_t len) {
|
||||||
{
|
|
||||||
uint8_t idx = 0;
|
uint8_t idx = 0;
|
||||||
|
|
||||||
for (idx = 0; idx < len; idx++)
|
for(idx = 0; idx < len; idx++) {
|
||||||
{
|
if(((value >> 28)) < 0xA) {
|
||||||
if (((value >> 28)) < 0xA)
|
|
||||||
{
|
|
||||||
pbuf[2 * idx] = (value >> 28) + '0';
|
pbuf[2 * idx] = (value >> 28) + '0';
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
pbuf[2 * idx] = (value >> 28) + 'A' - 10;
|
pbuf[2 * idx] = (value >> 28) + 'A' - 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@ typedef uint32_t StackType_t;
|
|||||||
typedef uint32_t StaticTask_t;
|
typedef uint32_t StaticTask_t;
|
||||||
typedef pthread_t* TaskHandle_t;
|
typedef pthread_t* TaskHandle_t;
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
SemaphoreTypeMutex,
|
SemaphoreTypeMutex,
|
||||||
SemaphoreTypeCounting,
|
SemaphoreTypeCounting,
|
||||||
@ -30,48 +29,37 @@ typedef StaticQueue_t* QueueHandle_t;
|
|||||||
|
|
||||||
#define portMAX_DELAY -1
|
#define portMAX_DELAY -1
|
||||||
|
|
||||||
typedef enum {
|
typedef enum { pdTRUE = 1, pdFALSE = 0 } BaseType_t;
|
||||||
pdTRUE = 1,
|
|
||||||
pdFALSE = 0
|
|
||||||
} BaseType_t;
|
|
||||||
|
|
||||||
typedef int32_t TickType_t;
|
typedef int32_t TickType_t;
|
||||||
|
|
||||||
#define tskIDLE_PRIORITY 0
|
#define tskIDLE_PRIORITY 0
|
||||||
|
|
||||||
TaskHandle_t xTaskCreateStatic(
|
TaskHandle_t xTaskCreateStatic(TaskFunction_t pxTaskCode,
|
||||||
TaskFunction_t pxTaskCode,
|
|
||||||
const char* const pcName,
|
const char* const pcName,
|
||||||
const uint32_t ulStackDepth,
|
const uint32_t ulStackDepth,
|
||||||
void* const pvParameters,
|
void* const pvParameters,
|
||||||
UBaseType_t uxPriority,
|
UBaseType_t uxPriority,
|
||||||
StackType_t* const puxStackBuffer,
|
StackType_t* const puxStackBuffer,
|
||||||
StaticTask_t * const pxTaskBuffer
|
StaticTask_t* const pxTaskBuffer);
|
||||||
);
|
|
||||||
|
|
||||||
void vTaskDelete(TaskHandle_t xTask);
|
void vTaskDelete(TaskHandle_t xTask);
|
||||||
TaskHandle_t xTaskGetCurrentTaskHandle(void);
|
TaskHandle_t xTaskGetCurrentTaskHandle(void);
|
||||||
SemaphoreHandle_t xSemaphoreCreateMutexStatic(StaticSemaphore_t* pxMutexBuffer);
|
SemaphoreHandle_t xSemaphoreCreateMutexStatic(StaticSemaphore_t* pxMutexBuffer);
|
||||||
bool task_equal(TaskHandle_t a, TaskHandle_t b);
|
bool task_equal(TaskHandle_t a, TaskHandle_t b);
|
||||||
|
|
||||||
QueueHandle_t xQueueCreateStatic(
|
QueueHandle_t xQueueCreateStatic(UBaseType_t uxQueueLength,
|
||||||
UBaseType_t uxQueueLength,
|
|
||||||
UBaseType_t uxItemSize,
|
UBaseType_t uxItemSize,
|
||||||
uint8_t* pucQueueStorageBuffer,
|
uint8_t* pucQueueStorageBuffer,
|
||||||
StaticQueue_t* pxQueueBuffer
|
StaticQueue_t* pxQueueBuffer);
|
||||||
);
|
|
||||||
|
|
||||||
SemaphoreHandle_t xSemaphoreCreateCountingStatic(
|
SemaphoreHandle_t xSemaphoreCreateCountingStatic(UBaseType_t uxMaxCount,
|
||||||
UBaseType_t uxMaxCount,
|
|
||||||
UBaseType_t uxInitialCount,
|
UBaseType_t uxInitialCount,
|
||||||
StaticSemaphore_t *pxSemaphoreBuffer
|
StaticSemaphore_t* pxSemaphoreBuffer);
|
||||||
);
|
|
||||||
BaseType_t xSemaphoreTake(SemaphoreHandle_t xSemaphore, TickType_t xTicksToWait);
|
BaseType_t xSemaphoreTake(SemaphoreHandle_t xSemaphore, TickType_t xTicksToWait);
|
||||||
BaseType_t xSemaphoreGive(SemaphoreHandle_t xSemaphore);
|
BaseType_t xSemaphoreGive(SemaphoreHandle_t xSemaphore);
|
||||||
|
|
||||||
BaseType_t xQueueSend(
|
BaseType_t xQueueSend(QueueHandle_t xQueue, const void* pvItemToQueue, TickType_t xTicksToWait);
|
||||||
QueueHandle_t xQueue, const void * pvItemToQueue, TickType_t xTicksToWait
|
|
||||||
);
|
|
||||||
|
|
||||||
BaseType_t xQueueReceive(QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait);
|
BaseType_t xQueueReceive(QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait);
|
||||||
|
|
||||||
|
@ -10,11 +10,7 @@ GPIO and HAL implementations
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum { GpioModeInput, GpioModeOutput, GpioModeOpenDrain } GpioMode;
|
||||||
GpioModeInput,
|
|
||||||
GpioModeOutput,
|
|
||||||
GpioModeOpenDrain
|
|
||||||
} GpioMode;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const char* port;
|
const char* port;
|
||||||
@ -42,10 +38,7 @@ inline bool app_gpio_read(GpioPin gpio) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef enum {
|
typedef enum { GPIO_PIN_SET = 1, GPIO_PIN_RESET = 0 } HAL_GPIO_PIN_STATE;
|
||||||
GPIO_PIN_SET = 1,
|
|
||||||
GPIO_PIN_RESET = 0
|
|
||||||
} HAL_GPIO_PIN_STATE;
|
|
||||||
|
|
||||||
void HAL_GPIO_WritePin(const char* port, uint32_t pin, HAL_GPIO_PIN_STATE state);
|
void HAL_GPIO_WritePin(const char* port, uint32_t pin, HAL_GPIO_PIN_STATE state);
|
||||||
|
|
||||||
@ -106,4 +99,5 @@ typedef const char* SPI_HandleTypeDef;
|
|||||||
|
|
||||||
typedef uint32_t HAL_StatusTypeDef;
|
typedef uint32_t HAL_StatusTypeDef;
|
||||||
|
|
||||||
HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
|
HAL_StatusTypeDef
|
||||||
|
HAL_SPI_Transmit(SPI_HandleTypeDef* hspi, uint8_t* pData, uint16_t Size, uint32_t Timeout);
|
@ -5,12 +5,8 @@
|
|||||||
#define HAL_MAX_DELAY INT_MAX
|
#define HAL_MAX_DELAY INT_MAX
|
||||||
|
|
||||||
typedef uint32_t UART_HandleTypeDef;
|
typedef uint32_t UART_HandleTypeDef;
|
||||||
uint16_t HAL_UART_Transmit(
|
uint16_t
|
||||||
UART_HandleTypeDef* handle,
|
HAL_UART_Transmit(UART_HandleTypeDef* handle, uint8_t* bufer, uint16_t size, uint32_t wait_ms);
|
||||||
uint8_t* bufer,
|
|
||||||
uint16_t size,
|
|
||||||
uint32_t wait_ms
|
|
||||||
);
|
|
||||||
|
|
||||||
typedef uint32_t TIM_HandleTypeDef;
|
typedef uint32_t TIM_HandleTypeDef;
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@ GPIO and HAL implementations
|
|||||||
|
|
||||||
void app_gpio_init(GpioPin gpio, GpioMode mode) {
|
void app_gpio_init(GpioPin gpio, GpioMode mode) {
|
||||||
if(gpio.pin != 0) {
|
if(gpio.pin != 0) {
|
||||||
|
|
||||||
switch(mode) {
|
switch(mode) {
|
||||||
case GpioModeInput:
|
case GpioModeInput:
|
||||||
printf("[GPIO] %s%d input\n", gpio.port, gpio.pin);
|
printf("[GPIO] %s%d input\n", gpio.port, gpio.pin);
|
||||||
@ -44,7 +43,8 @@ void HAL_GPIO_WritePin(const char* port, uint32_t pin, HAL_GPIO_PIN_STATE state)
|
|||||||
printf("[GPIO] set pin %s:%d = %d\n", port, pin, state);
|
printf("[GPIO] set pin %s:%d = %d\n", port, pin, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef* hspi, uint8_t *pData, uint16_t size, uint32_t Timeout) {
|
HAL_StatusTypeDef
|
||||||
|
HAL_SPI_Transmit(SPI_HandleTypeDef* hspi, uint8_t* pData, uint16_t size, uint32_t Timeout) {
|
||||||
printf("[SPI] write %d to %s: ", size, *hspi);
|
printf("[SPI] write %d to %s: ", size, *hspi);
|
||||||
for(size_t i = 0; i < size; i++) {
|
for(size_t i = 0; i < size; i++) {
|
||||||
printf("%02X ", pData[i]);
|
printf("%02X ", pData[i]);
|
||||||
|
@ -10,12 +10,8 @@ Dummy hal for local fw build
|
|||||||
|
|
||||||
UART_HandleTypeDef DEBUG_UART = 0;
|
UART_HandleTypeDef DEBUG_UART = 0;
|
||||||
|
|
||||||
uint16_t HAL_UART_Transmit(
|
uint16_t
|
||||||
UART_HandleTypeDef* handle,
|
HAL_UART_Transmit(UART_HandleTypeDef* handle, uint8_t* bufer, uint16_t size, uint32_t wait_ms) {
|
||||||
uint8_t* bufer,
|
|
||||||
uint16_t size,
|
|
||||||
uint32_t wait_ms
|
|
||||||
) {
|
|
||||||
uint16_t res = write(1, (const char*)bufer, size);
|
uint16_t res = write(1, (const char*)bufer, size);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
@ -30,15 +30,13 @@ void* pthread_wrapper(void* p) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskHandle_t xTaskCreateStatic(
|
TaskHandle_t xTaskCreateStatic(TaskFunction_t pxTaskCode,
|
||||||
TaskFunction_t pxTaskCode,
|
|
||||||
const char* const pcName,
|
const char* const pcName,
|
||||||
const uint32_t ulStackDepth,
|
const uint32_t ulStackDepth,
|
||||||
void* const pvParameters,
|
void* const pvParameters,
|
||||||
UBaseType_t uxPriority,
|
UBaseType_t uxPriority,
|
||||||
StackType_t* const puxStackBuffer,
|
StackType_t* const puxStackBuffer,
|
||||||
StaticTask_t * const pxTaskBuffer
|
StaticTask_t* const pxTaskBuffer) {
|
||||||
) {
|
|
||||||
TaskHandle_t thread = malloc(sizeof(TaskHandle_t));
|
TaskHandle_t thread = malloc(sizeof(TaskHandle_t));
|
||||||
PthreadTask* task = malloc(sizeof(PthreadTask));
|
PthreadTask* task = malloc(sizeof(PthreadTask));
|
||||||
|
|
||||||
@ -51,7 +49,6 @@ TaskHandle_t xTaskCreateStatic(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void vTaskDelete(TaskHandle_t xTask) {
|
void vTaskDelete(TaskHandle_t xTask) {
|
||||||
|
|
||||||
if(xTask == NULL) {
|
if(xTask == NULL) {
|
||||||
// kill itself
|
// kill itself
|
||||||
pthread_exit(NULL);
|
pthread_exit(NULL);
|
||||||
@ -82,16 +79,12 @@ bool task_equal(TaskHandle_t a, TaskHandle_t b) {
|
|||||||
return pthread_equal(*a, *b) != 0;
|
return pthread_equal(*a, *b) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseType_t xQueueSend(
|
BaseType_t xQueueSend(QueueHandle_t xQueue, const void* pvItemToQueue, TickType_t xTicksToWait) {
|
||||||
QueueHandle_t xQueue, const void * pvItemToQueue, TickType_t xTicksToWait
|
|
||||||
) {
|
|
||||||
// TODO: add implementation
|
// TODO: add implementation
|
||||||
return pdTRUE;
|
return pdTRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseType_t xQueueReceive(
|
BaseType_t xQueueReceive(QueueHandle_t xQueue, void* pvBuffer, TickType_t xTicksToWait) {
|
||||||
QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait
|
|
||||||
) {
|
|
||||||
// TODO: add implementation
|
// TODO: add implementation
|
||||||
osDelay(100);
|
osDelay(100);
|
||||||
|
|
||||||
@ -100,12 +93,10 @@ BaseType_t xQueueReceive(
|
|||||||
|
|
||||||
static uint32_t queue_global_id = 0;
|
static uint32_t queue_global_id = 0;
|
||||||
|
|
||||||
QueueHandle_t xQueueCreateStatic(
|
QueueHandle_t xQueueCreateStatic(UBaseType_t uxQueueLength,
|
||||||
UBaseType_t uxQueueLength,
|
|
||||||
UBaseType_t uxItemSize,
|
UBaseType_t uxItemSize,
|
||||||
uint8_t* pucQueueStorageBuffer,
|
uint8_t* pucQueueStorageBuffer,
|
||||||
StaticQueue_t *pxQueueBuffer
|
StaticQueue_t* pxQueueBuffer) {
|
||||||
) {
|
|
||||||
// TODO: check this implementation
|
// TODO: check this implementation
|
||||||
int* msgid = malloc(sizeof(int));
|
int* msgid = malloc(sizeof(int));
|
||||||
|
|
||||||
@ -117,11 +108,9 @@ QueueHandle_t xQueueCreateStatic(
|
|||||||
return (QueueHandle_t)msgid;
|
return (QueueHandle_t)msgid;
|
||||||
}
|
}
|
||||||
|
|
||||||
SemaphoreHandle_t xSemaphoreCreateCountingStatic(
|
SemaphoreHandle_t xSemaphoreCreateCountingStatic(UBaseType_t uxMaxCount,
|
||||||
UBaseType_t uxMaxCount,
|
|
||||||
UBaseType_t uxInitialCount,
|
UBaseType_t uxInitialCount,
|
||||||
StaticSemaphore_t* pxSemaphoreBuffer
|
StaticSemaphore_t* pxSemaphoreBuffer) {
|
||||||
) {
|
|
||||||
pxSemaphoreBuffer->type = SemaphoreTypeCounting;
|
pxSemaphoreBuffer->type = SemaphoreTypeCounting;
|
||||||
pxSemaphoreBuffer->take_counter = 0;
|
pxSemaphoreBuffer->take_counter = 0;
|
||||||
pxSemaphoreBuffer->give_counter = 0;
|
pxSemaphoreBuffer->give_counter = 0;
|
||||||
@ -136,7 +125,6 @@ SemaphoreHandle_t xSemaphoreCreateMutexStatic(StaticSemaphore_t* pxMutexBuffer)
|
|||||||
return pxMutexBuffer;
|
return pxMutexBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BaseType_t xSemaphoreTake(volatile SemaphoreHandle_t xSemaphore, TickType_t xTicksToWait) {
|
BaseType_t xSemaphoreTake(volatile SemaphoreHandle_t xSemaphore, TickType_t xTicksToWait) {
|
||||||
if(xSemaphore == NULL) return pdFALSE;
|
if(xSemaphore == NULL) return pdFALSE;
|
||||||
|
|
||||||
@ -167,10 +155,8 @@ BaseType_t xSemaphoreTake(volatile SemaphoreHandle_t xSemaphore, TickType_t xTic
|
|||||||
|
|
||||||
TickType_t ticks = xTicksToWait;
|
TickType_t ticks = xTicksToWait;
|
||||||
|
|
||||||
while(
|
while(xSemaphore->take_counter != xSemaphore->give_counter &&
|
||||||
xSemaphore->take_counter != xSemaphore->give_counter
|
(ticks > 0 || xTicksToWait == portMAX_DELAY)) {
|
||||||
&& (ticks > 0 || xTicksToWait == portMAX_DELAY)
|
|
||||||
) {
|
|
||||||
osDelay(1);
|
osDelay(1);
|
||||||
ticks--;
|
ticks--;
|
||||||
}
|
}
|
||||||
@ -207,9 +193,7 @@ static void create_tls_keys() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void* pvTaskGetThreadLocalStoragePointer(
|
void* pvTaskGetThreadLocalStoragePointer(TaskHandle_t xTaskToQuery, BaseType_t xIndex) {
|
||||||
TaskHandle_t xTaskToQuery, BaseType_t xIndex
|
|
||||||
) {
|
|
||||||
// Non-current task TLS access is not allowed
|
// Non-current task TLS access is not allowed
|
||||||
if(xTaskToQuery != NULL) {
|
if(xTaskToQuery != NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -224,9 +208,7 @@ void* pvTaskGetThreadLocalStoragePointer(
|
|||||||
return pthread_getspecific(tls_keys[xIndex]);
|
return pthread_getspecific(tls_keys[xIndex]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void vTaskSetThreadLocalStoragePointer(
|
void vTaskSetThreadLocalStoragePointer(TaskHandle_t xTaskToSet, BaseType_t xIndex, void* pvValue) {
|
||||||
TaskHandle_t xTaskToSet, BaseType_t xIndex, void *pvValue
|
|
||||||
) {
|
|
||||||
// Non-current task TLS access is not allowed
|
// Non-current task TLS access is not allowed
|
||||||
if(xTaskToSet != NULL) {
|
if(xTaskToSet != NULL) {
|
||||||
return;
|
return;
|
||||||
|
@ -88,6 +88,12 @@ If you want to add some features or suggest some changes, do following steps:
|
|||||||
* Your code is merged in master branch
|
* Your code is merged in master branch
|
||||||
5. If you can do only part of work, create PR with `WIP` label. Describe what you have already done and what remains to be done and other people can help you.
|
5. If you can do only part of work, create PR with `WIP` label. Describe what you have already done and what remains to be done and other people can help you.
|
||||||
|
|
||||||
|
## Coding Style
|
||||||
|
|
||||||
|
Flipper Zero source code is formatted using clang-format for C code and rustfmt for rust. We use the [Kernel Code Style](https://www.kernel.org/doc/html/latest/process/coding-style.html) with minor changes, you can see the rules in .clang-format file. The Github CI tests will automatically check the code format and fail if the format is incorrect.
|
||||||
|
|
||||||
|
Also, you can check and fix format with syntax_check.sh script.
|
||||||
|
|
||||||
## Pull requests
|
## Pull requests
|
||||||
|
|
||||||
1. Don't forget reference issues or other PR
|
1. Don't forget reference issues or other PR
|
||||||
|
Loading…
x
Reference in New Issue
Block a user