From 411a3d157ec745c827adb93db9cbe7debb74af3d Mon Sep 17 00:00:00 2001 From: wmano Date: Sun, 24 Aug 2025 16:38:15 +0800 Subject: [PATCH] add intr --- apps/chrg/applications/chrg_can.c | 28 +++ apps/chrg/applications/chrg_can.h | 4 + apps/chrg/applications/chrg_i2c.h | 4 + apps/chrg/applications/chrg_intr.c | 117 +++++++++ apps/chrg/applications/chrg_intr.h | 46 ++++ apps/chrg/applications/chrg_tty.h | 2 + apps/chrg/project.uvprojx | 385 +++++++++++++++-------------- 7 files changed, 396 insertions(+), 190 deletions(-) create mode 100644 apps/chrg/applications/chrg_intr.c create mode 100644 apps/chrg/applications/chrg_intr.h diff --git a/apps/chrg/applications/chrg_can.c b/apps/chrg/applications/chrg_can.c index 9b2d91b..2a6ccb1 100644 --- a/apps/chrg/applications/chrg_can.c +++ b/apps/chrg/applications/chrg_can.c @@ -1,6 +1,7 @@ #include #include +#include #include "chrg_can.h" @@ -13,6 +14,33 @@ struct chrg_can_t chrgcan[TOTAL_CAN] = { } }; +rt_err_t chrg_can1_write (rt_uint8_t id, rt_uint8_t *data, rt_uint16_t len) +{ + rt_size_t size = 0; + struct rt_can_msg msg; + struct chrg_can_t *pCAN = &chrgcan[IDX_CAN_1]; + + msg.id = id; + msg.ide = RT_CAN_STDID; + msg.rtr = RT_CAN_DTR; + + if (len <= 8) { + msg.len = len; + memcpy(msg.data, data, len); + } else { + return RT_EINVAL; + } + + size = rt_device_write(pCAN->dev, 0, &msg, sizeof(msg)); + if (0 == size) { + rt_kprintf("dev '%s' write failed.\r\n", pCAN->name); + return RT_ERROR; + } + + return RT_EOK; +} + + static rt_err_t chrg_can1_rx_callback(rt_device_t dev, rt_size_t size) { diff --git a/apps/chrg/applications/chrg_can.h b/apps/chrg/applications/chrg_can.h index 14a17ce..c0c30fb 100644 --- a/apps/chrg/applications/chrg_can.h +++ b/apps/chrg/applications/chrg_can.h @@ -23,6 +23,10 @@ struct chrg_can_t { extern struct chrg_can_t chrgcan[TOTAL_CAN]; +extern rt_err_t chrg_can1_write (rt_uint8_t id, rt_uint8_t *data, rt_uint16_t len); + + #endif + diff --git a/apps/chrg/applications/chrg_i2c.h b/apps/chrg/applications/chrg_i2c.h index f3aa668..3df222a 100644 --- a/apps/chrg/applications/chrg_i2c.h +++ b/apps/chrg/applications/chrg_i2c.h @@ -31,7 +31,11 @@ struct chrg_i2c_t { extern struct chrg_i2c_t chrgi2c[TOTAL_I2C]; +extern rt_uint8_t i2c_read_byte(struct chrg_i2c_t *pI2C, rt_uint8_t addr); + +extern rt_err_t i2c_write_byte(struct chrg_i2c_t *pI2C, rt_uint8_t addr, rt_uint8_t data); #endif + diff --git a/apps/chrg/applications/chrg_intr.c b/apps/chrg/applications/chrg_intr.c new file mode 100644 index 0000000..376da88 --- /dev/null +++ b/apps/chrg/applications/chrg_intr.c @@ -0,0 +1,117 @@ + +#include +#include + +#include "chrg_intr.h" + +struct chrg_intr_t chrgintr[TOTAL_INTR] = { + [IDX_INTR_I2C1] = { + .name = NAME_INTR_I2C1, + .index = IDX_INTR_I2C1, + .pin = PIN_INTR_I2C1, + .mode = PIN_MODE_INPUT_PULLUP, + .pulse = PIN_IRQ_MODE_FALLING, + .value = PIN_LOW, + .delay = 20, + }, + [IDX_INTR_I2C2] = { + .name = NAME_INTR_I2C2, + .index = IDX_INTR_I2C2, + .pin = PIN_INTR_I2C2, + .mode = PIN_MODE_INPUT_PULLUP, + .pulse = PIN_IRQ_MODE_FALLING, + .value = PIN_LOW, + .delay = 0, + }, + [IDX_INTR_I2C3] = { + .name = NAME_INTR_I2C3, + .index = IDX_INTR_I2C3, + .pin = PIN_INTR_I2C3, + .mode = PIN_MODE_INPUT_PULLUP, + .pulse = PIN_IRQ_MODE_FALLING, + .value = PIN_LOW, + .delay = 0, + }, + [IDX_INTR_I2C4] = { + .name = NAME_INTR_I2C4, + .index = IDX_INTR_I2C4, + .pin = PIN_INTR_I2C4, + .mode = PIN_MODE_INPUT_PULLUP, + .pulse = PIN_IRQ_MODE_FALLING, + .value = PIN_LOW, + .delay = 0, + }, + [IDX_INTR_KEY] = { + .name = NAME_INTR_KEY, + .index = IDX_INTR_KEY, + .pin = PIN_INTR_KEY, + .mode = PIN_MODE_INPUT_PULLUP, + .pulse = PIN_IRQ_MODE_RISING, + .value = PIN_LOW, + .delay = 0, + } +}; + +static void chrg_intr_tmr_callback (void* data) +{ + struct chrg_intr_t *pINTR = (struct chrg_intr_t *)data; + + if (RT_NULL != pINTR) { + rt_ssize_t val = rt_pin_read(pINTR->pin); + if (pINTR->value == val) { + rt_kprintf("check pin '%s' intr %d.\r\n", pINTR->name, pINTR->value); + } + } +} + +static int chrg_intr_tmr_create (struct chrg_intr_t *pINTR) +{ + pINTR->tmr_fd = rt_timer_create(pINTR->name, chrg_intr_tmr_callback, + pINTR, pINTR->delay, RT_TIMER_FLAG_ONE_SHOT); + if (pINTR->tmr_fd == RT_NULL) { + rt_kprintf("tmr create '%s' failed.\r\n", pINTR->name); + return -1; + } + + return 0; +} + +static void chrg_intr_callback (void *args) +{ + struct chrg_intr_t *pINTR = (struct chrg_intr_t *)args; + + if (RT_NULL != pINTR) { + pINTR->value = rt_pin_read(pINTR->pin); + if (pINTR->delay) { + rt_timer_start(pINTR->tmr_fd); + } + rt_kprintf("pin '%s' intr %d.\r\n", pINTR->name, pINTR->value); + } + +} + +static int chrg_intr_init (void) +{ + int i = 0; + struct chrg_intr_t *pINTR = RT_NULL; + + for (i = 0; i < TOTAL_INTR; i++) { + pINTR = &chrgintr[i]; + + rt_pin_mode(pINTR->pin, pINTR->mode); + rt_pin_attach_irq(pINTR->pin, pINTR->pulse, chrg_intr_callback, pINTR); + rt_pin_irq_enable(pINTR->pin, PIN_IRQ_ENABLE); + + if (pINTR->delay) { + chrg_intr_tmr_create(pINTR); + } + } + + return 0; +} + + +INIT_ENV_EXPORT(chrg_intr_init); + + + diff --git a/apps/chrg/applications/chrg_intr.h b/apps/chrg/applications/chrg_intr.h new file mode 100644 index 0000000..8406a7f --- /dev/null +++ b/apps/chrg/applications/chrg_intr.h @@ -0,0 +1,46 @@ +#ifndef __CHRG_IRQ_H__ +#define __CHRG_IRQ_H__ + +#include +#include + +#include "drv_gpio.h" + +#define NAME_INTR_I2C1 "i2c1irq" +#define NAME_INTR_I2C2 "i2c2irq" +#define NAME_INTR_I2C3 "i2c3irq" +#define NAME_INTR_I2C4 "i2c4irq" +#define NAME_INTR_KEY "keyirq" + +#define PIN_INTR_I2C1 GET_PIN(C, 8) //GET_PIN(C, 1) +#define PIN_INTR_I2C2 GET_PIN(C, 9) //GET_PIN(A, 1) +#define PIN_INTR_I2C3 GET_PIN(A, 7) +#define PIN_INTR_I2C4 GET_PIN(B, 13) +#define PIN_INTR_KEY GET_PIN(A, 0) //GET_PIN(B, 6) + +typedef enum { + IDX_INTR_I2C1 = 0, + IDX_INTR_I2C2 = 1, + IDX_INTR_I2C3 = 2, + IDX_INTR_I2C4 = 3, + IDX_INTR_KEY = 4, + + TOTAL_INTR +} eIDX_INTR; + +struct chrg_intr_t { + const char *name; + rt_int32_t pin; + rt_uint8_t mode; + rt_uint8_t pulse; + rt_uint16_t delay; // 消抖延时 ms + rt_ssize_t value; // 当前值 + rt_timer_t tmr_fd; + eIDX_INTR index; +}; + +extern struct chrg_intr_t chrgintr[TOTAL_INTR]; + +#endif + + diff --git a/apps/chrg/applications/chrg_tty.h b/apps/chrg/applications/chrg_tty.h index 281ee60..61a864e 100644 --- a/apps/chrg/applications/chrg_tty.h +++ b/apps/chrg/applications/chrg_tty.h @@ -41,3 +41,5 @@ extern struct chrg_tty_t chrgtty[TOTAL_TTY]; #endif + + diff --git a/apps/chrg/project.uvprojx b/apps/chrg/project.uvprojx index 5842e97..fdc5853 100644 --- a/apps/chrg/project.uvprojx +++ b/apps/chrg/project.uvprojx @@ -337,9 +337,9 @@ 0 - USE_HAL_DRIVER, __CLK_TCK=RT_TICK_PER_SECOND, RT_USING_ARMLIBC, STM32F405xx, RT_USING_LIBC, __RTTHREAD__, __STDC_LIMIT_MACROS + RT_USING_ARMLIBC, STM32F405xx, USE_HAL_DRIVER, __STDC_LIMIT_MACROS, __CLK_TCK=RT_TICK_PER_SECOND, __RTTHREAD__, RT_USING_LIBC - ..\..\rt-thread\components\drivers\include;.;..\..\libs\freemodbus\modbus\include;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers;..\..\rt-thread\components\drivers\include;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\libc\posix\ipc;..\..\rt-thread\include;..\..\rt-thread\components\finsh;..\..\rt-thread\components\libc\posix\io\epoll;..\..\rt-thread\components\libc\compilers\common\extension\fcntl\octal;..\..\rt-thread\libcpu\arm\cortex-m4;board\CubeMX_Config\Inc;..\..\rt-thread\components\drivers\include;..\..\libs\freemodbus\modbus\tcp;..\..\libs\stm32f4\STM32F4_HAL\Inc\Legacy;..\..\libs\freemodbus\modbus\ascii;..\..\libs\stm32f4\STM32F4_CMSIS\Include;..\..\rt-thread\components\drivers\smp_call;..\..\rt-thread\components\libc\posix\io\poll;..\..\rt-thread\components\libc\compilers\common\extension;..\..\rt-thread\components\drivers\include;..\..\libs\freemodbus\modbus\rtu;..\..\rt-thread\components\drivers\phy;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\config;..\..\rt-thread\components\libc\compilers\common\include;..\..\libs\freemodbus\port;..\..\libs\cmsis-core\Include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\libc\posix\io\eventfd;..\..\libs\stm32f4\STM32F4_HAL\Inc;applications;..\..\rt-thread\libcpu\arm\common;board + ..\..\rt-thread\components\libc\posix\io\epoll;..\..\rt-thread\components\drivers\phy;applications;board\CubeMX_Config\Inc;..\..\libs\stm32f4\STM32F4_HAL\Inc\Legacy;..\..\rt-thread\components\finsh;..\..\rt-thread\components\libc\posix\ipc;..\..\rt-thread\components\drivers\smp_call;..\..\libs\freemodbus\modbus\rtu;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\libc\compilers\common\extension;..\..\rt-thread\components\drivers\include;board;..\..\rt-thread\components\drivers\include;..\..\libs\freemodbus\modbus\tcp;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers;..\..\libs\stm32f4\STM32F4_CMSIS\Include;..\..\rt-thread\components\libc\posix\io\poll;..\..\rt-thread\components\drivers\include;..\..\rt-thread\include;..\..\libs\freemodbus\modbus\include;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\config;.;..\..\libs\stm32f4\STM32F4_HAL\Inc;..\..\rt-thread\components\libc\compilers\common\extension\fcntl\octal;..\..\rt-thread\libcpu\arm\common;..\..\libs\freemodbus\port;..\..\libs\cmsis-core\Include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\libc\posix\io\eventfd;..\..\libs\freemodbus\modbus\ascii;..\..\rt-thread\components\drivers\include;..\..\rt-thread\libcpu\arm\cortex-m4;..\..\rt-thread\components\libc\compilers\common\include;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers @@ -384,9 +384,14 @@ Applications - tmr_pin.c + switch_south.c 1 - applications\tmr_pin.c + applications\switch_south.c + + + chrg_i2c.c + 1 + applications\chrg_i2c.c tmr_clk.c @@ -398,20 +403,20 @@ 1 applications\main.c - - chrg_i2c.c - 1 - applications\chrg_i2c.c - switch_north.c 1 applications\switch_north.c - switch_south.c + tmr_pin.c 1 - applications\switch_south.c + applications\tmr_pin.c + + + chrg_intr.c + 1 + applications\chrg_intr.c chrg_tty.c @@ -1415,14 +1420,9 @@ Finsh - msh_parse.c + msh.c 1 - ..\..\rt-thread\components\finsh\msh_parse.c - - - cmd.c - 1 - ..\..\rt-thread\components\finsh\cmd.c + ..\..\rt-thread\components\finsh\msh.c shell.c @@ -1430,9 +1430,14 @@ ..\..\rt-thread\components\finsh\shell.c - msh.c + cmd.c 1 - ..\..\rt-thread\components\finsh\msh.c + ..\..\rt-thread\components\finsh\cmd.c + + + msh_parse.c + 1 + ..\..\rt-thread\components\finsh\msh_parse.c @@ -1440,64 +1445,104 @@ FreeModbus - mbfuncdiag.c + mbcrc.c 1 - ..\..\libs\freemodbus\modbus\functions\mbfuncdiag.c + ..\..\libs\freemodbus\modbus\rtu\mbcrc.c - mbrtu.c + sample_mb_slave.c 1 - ..\..\libs\freemodbus\modbus\rtu\mbrtu.c + ..\..\libs\freemodbus\samples\sample_mb_slave.c - mbfuncholding_m.c + mbutils.c 1 - ..\..\libs\freemodbus\modbus\functions\mbfuncholding_m.c - - - portevent_m.c - 1 - ..\..\libs\freemodbus\port\portevent_m.c - - - mbfuncinput.c - 1 - ..\..\libs\freemodbus\modbus\functions\mbfuncinput.c - - - mbfuncinput_m.c - 1 - ..\..\libs\freemodbus\modbus\functions\mbfuncinput_m.c - - - porttcp.c - 1 - ..\..\libs\freemodbus\port\porttcp.c + ..\..\libs\freemodbus\modbus\functions\mbutils.c mbrtu_m.c 1 ..\..\libs\freemodbus\modbus\rtu\mbrtu_m.c + + porttcp.c + 1 + ..\..\libs\freemodbus\port\porttcp.c + + + mbfunccoils_m.c + 1 + ..\..\libs\freemodbus\modbus\functions\mbfunccoils_m.c + + + mbfuncdiag.c + 1 + ..\..\libs\freemodbus\modbus\functions\mbfuncdiag.c + + + porttimer_m.c + 1 + ..\..\libs\freemodbus\port\porttimer_m.c + + + port.c + 1 + ..\..\libs\freemodbus\port\port.c + portserial.c 1 ..\..\libs\freemodbus\port\portserial.c + + mbfuncinput.c + 1 + ..\..\libs\freemodbus\modbus\functions\mbfuncinput.c + user_mb_app_m.c 1 ..\..\libs\freemodbus\port\user_mb_app_m.c - mbfunccoils.c + mbfuncinput_m.c 1 - ..\..\libs\freemodbus\modbus\functions\mbfunccoils.c + ..\..\libs\freemodbus\modbus\functions\mbfuncinput_m.c - porttimer_m.c + mbfuncholding.c 1 - ..\..\libs\freemodbus\port\porttimer_m.c + ..\..\libs\freemodbus\modbus\functions\mbfuncholding.c + + + mbrtu.c + 1 + ..\..\libs\freemodbus\modbus\rtu\mbrtu.c + + + mbfuncdisc.c + 1 + ..\..\libs\freemodbus\modbus\functions\mbfuncdisc.c + + + portserial_m.c + 1 + ..\..\libs\freemodbus\port\portserial_m.c + + + user_mb_app.c + 1 + ..\..\libs\freemodbus\port\user_mb_app.c + + + mb_m.c + 1 + ..\..\libs\freemodbus\modbus\mb_m.c + + + portevent_m.c + 1 + ..\..\libs\freemodbus\port\portevent_m.c mbfuncother.c @@ -1510,59 +1555,9 @@ ..\..\libs\freemodbus\modbus\functions\mbfuncdisc_m.c - port.c + mbfunccoils.c 1 - ..\..\libs\freemodbus\port\port.c - - - portserial_m.c - 1 - ..\..\libs\freemodbus\port\portserial_m.c - - - mbfuncholding.c - 1 - ..\..\libs\freemodbus\modbus\functions\mbfuncholding.c - - - mbfunccoils_m.c - 1 - ..\..\libs\freemodbus\modbus\functions\mbfunccoils_m.c - - - mb.c - 1 - ..\..\libs\freemodbus\modbus\mb.c - - - mbfuncdisc.c - 1 - ..\..\libs\freemodbus\modbus\functions\mbfuncdisc.c - - - mbcrc.c - 1 - ..\..\libs\freemodbus\modbus\rtu\mbcrc.c - - - porttimer.c - 1 - ..\..\libs\freemodbus\port\porttimer.c - - - mb_m.c - 1 - ..\..\libs\freemodbus\modbus\mb_m.c - - - user_mb_app.c - 1 - ..\..\libs\freemodbus\port\user_mb_app.c - - - sample_mb_slave.c - 1 - ..\..\libs\freemodbus\samples\sample_mb_slave.c + ..\..\libs\freemodbus\modbus\functions\mbfunccoils.c sample_mb_master.c @@ -1570,9 +1565,19 @@ ..\..\libs\freemodbus\samples\sample_mb_master.c - mbutils.c + mb.c 1 - ..\..\libs\freemodbus\modbus\functions\mbutils.c + ..\..\libs\freemodbus\modbus\mb.c + + + mbfuncholding_m.c + 1 + ..\..\libs\freemodbus\modbus\functions\mbfuncholding_m.c + + + porttimer.c + 1 + ..\..\libs\freemodbus\port\porttimer.c portevent.c @@ -2435,14 +2440,9 @@ ..\..\rt-thread\src\klibc\kstring.c - kstdio.c + kerrno.c 1 - ..\..\rt-thread\src\klibc\kstdio.c - - - rt_vsnprintf_tiny.c - 1 - ..\..\rt-thread\src\klibc\rt_vsnprintf_tiny.c + ..\..\rt-thread\src\klibc\kerrno.c rt_vsscanf.c @@ -2450,9 +2450,14 @@ ..\..\rt-thread\src\klibc\rt_vsscanf.c - kerrno.c + rt_vsnprintf_tiny.c 1 - ..\..\rt-thread\src\klibc\kerrno.c + ..\..\rt-thread\src\klibc\rt_vsnprintf_tiny.c + + + kstdio.c + 1 + ..\..\rt-thread\src\klibc\kstdio.c @@ -2504,101 +2509,101 @@ STM32F4-HAL - - stm32f4xx_hal_can.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_can.c - - - stm32f4xx_hal_rcc_ex.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc_ex.c - - - stm32f4xx_hal_usart.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_usart.c - - - stm32f4xx_hal_gpio.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_gpio.c - - - stm32f4xx_hal_pwr.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr.c - - - stm32f4xx_hal_cortex.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cortex.c - stm32f4xx_hal_dma_ex.c 1 ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma_ex.c - stm32f4xx_hal_pwr_ex.c + stm32f4xx_hal_can.c 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr_ex.c - - - stm32f4xx_hal_rng.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rng.c - - - stm32f4xx_hal_i2c_ex.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_i2c_ex.c - - - stm32f4xx_hal_uart.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_uart.c - - - stm32f4xx_hal_dma.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma.c - - - stm32f4xx_hal_i2c.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_i2c.c - - - stm32f4xx_hal_cryp_ex.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cryp_ex.c - - - stm32f4xx_hal_cryp.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cryp.c - - - stm32f4xx_hal_crc.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_crc.c - - - stm32f4xx_hal_cec.c - 1 - ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cec.c + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_can.c stm32f4xx_hal.c 1 ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal.c + + stm32f4xx_hal_rcc_ex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc_ex.c + + + stm32f4xx_hal_gpio.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_gpio.c + + + stm32f4xx_hal_cec.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cec.c + + + stm32f4xx_hal_i2c.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_i2c.c + + + stm32f4xx_hal_i2c_ex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_i2c_ex.c + + + stm32f4xx_hal_pwr_ex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr_ex.c + stm32f4xx_hal_rcc.c 1 ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc.c + + stm32f4xx_hal_dma.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma.c + + + stm32f4xx_hal_pwr.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr.c + + + stm32f4xx_hal_cryp.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cryp.c + + + stm32f4xx_hal_usart.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_usart.c + + + stm32f4xx_hal_cortex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cortex.c + + + stm32f4xx_hal_cryp_ex.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cryp_ex.c + + + stm32f4xx_hal_rng.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rng.c + + + stm32f4xx_hal_uart.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_uart.c + + + stm32f4xx_hal_crc.c + 1 + ..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_crc.c +