for switch

This commit is contained in:
wmano
2025-08-25 22:58:48 +08:00
parent 411a3d157e
commit f9e7fa9956
25 changed files with 502 additions and 524 deletions
+5 -2
View File
@@ -3,9 +3,12 @@ import os
cwd = GetCurrentDir()
src = Glob('*.c')
CPPPATH = [cwd]
src += Glob('bsp/*.c')
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
path = [cwd]
path += [cwd + '/bsp']
group = DefineGroup('Applications', src, depend = [''], CPPPATH = path)
list = os.listdir(cwd)
for item in list:
@@ -7,7 +7,7 @@
#define DEV_NAME_CAN "can1"
typedef enum {
IDX_CAN_1 = 0,
IDX_CAN_1 = 0, // 0
TOTAL_CAN
} eIDX_CAN;
@@ -3,15 +3,15 @@
#include <rtthread.h>
#include <rtdevice.h>
#include "tmr_clk.h"
#include "chrg_clk.h"
struct tmr_clk_t tmrclk = {
struct chrg_clk_t chrgclk = {
.cnt = 0,
};
static void tmr_clk_callback (void *args)
static void chrg_clk_callback (void *args)
{
struct tmr_clk_t *pCLK = (struct tmr_clk_t *)args;
struct chrg_clk_t *pCLK = (struct chrg_clk_t *)args;
pCLK->cnt++;
@@ -22,20 +22,20 @@ static void tmr_clk_callback (void *args)
//rt_kprintf("\r\n");
}
static int tmr_clk_init (void)
static int chrg_clk_init (void)
{
rt_err_t ret = RT_EOK;
rt_timer_t timer_fd;
timer_fd = rt_timer_create("tmr_clk", tmr_clk_callback,
&tmrclk, RT_TICK_PER_SECOND, RT_TIMER_FLAG_PERIODIC);
timer_fd = rt_timer_create("clk", chrg_clk_callback,
&chrgclk, RT_TICK_PER_SECOND, RT_TIMER_FLAG_PERIODIC);
if (timer_fd == RT_NULL) {
//rt_kprintf("create tmr_clk.\r\n");
//rt_kprintf("create clk.\r\n");
return -1;
} else {
ret = rt_timer_start(timer_fd);
if (ret != RT_EOK) {
rt_kprintf("start tmr_clk failed.\r\n");
rt_kprintf("start clk failed.\r\n");
return ret;
}
}
@@ -43,6 +43,6 @@ static int tmr_clk_init (void)
return RT_EOK;
}
INIT_APP_EXPORT(tmr_clk_init);
INIT_APP_EXPORT(chrg_clk_init);
+14
View File
@@ -0,0 +1,14 @@
#ifndef __CHRG_CLK_H__
#define __CHRG_CLK_H__
struct chrg_clk_t {
rt_uint32_t cnt;
};
extern struct chrg_clk_t chrgclk;
#endif
@@ -12,10 +12,10 @@
#define DEV_NAME_I2C4 "i2c4"
typedef enum {
IDX_I2C_1 = 0,
IDX_I2C_2 = 1,
IDX_I2C_3 = 2,
IDX_I2C_4 = 3,
IDX_I2C_1 = 0, // 0
IDX_I2C_2, // 1
IDX_I2C_3, // 2
IDX_I2C_4, // 3
TOTAL_I2C
} eIDX_I2C;
@@ -19,11 +19,11 @@
#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,
IDX_INTR_I2C1 = 0, // 0
IDX_INTR_I2C2, // 1
IDX_INTR_I2C3, // 2
IDX_INTR_I2C4, // 3
IDX_INTR_KEY, // 4
TOTAL_INTR
} eIDX_INTR;
@@ -1,8 +1,8 @@
#include <rtthread.h>
#include "tmr_pin.h"
#include "chrg_pin.h"
struct tmr_pin_t tmrpins[TOTAL_PINS] = {
struct chrg_pin_t chrgpins[TOTAL_PINS] = {
[IDX_PIN_LED1] = {
.index = IDX_PIN_LED1,
.pin_name = PIN_NAME_LED1,
@@ -47,19 +47,19 @@ struct tmr_pin_t tmrpins[TOTAL_PINS] = {
}*/
};
rt_int32_t tmr_pin_get (ePIN_IDX index)
rt_int32_t chrg_pin_get (eIDX_PIN index)
{
if (index >= TOTAL_PINS) {
return -1;
}
struct tmr_pin_t *pPIN = &tmrpins[index];
struct chrg_pin_t *pPIN = &chrgpins[index];
pPIN->pin_value = rt_pin_read(pPIN->pin_base);
return pPIN->pin_value;
}
rt_int32_t tmr_pin_set (struct tmr_pin_t *pPIN, rt_uint8_t value)
rt_int32_t chrg_pin_set (struct chrg_pin_t *pPIN, rt_uint8_t value)
{
pPIN->pin_value = value;
rt_pin_write(pPIN->pin_base, pPIN->pin_value);
@@ -67,13 +67,13 @@ rt_int32_t tmr_pin_set (struct tmr_pin_t *pPIN, rt_uint8_t value)
return 0;
}
rt_int32_t tmr_pin_toggle (ePIN_IDX index)
rt_int32_t chrg_pin_toggle (eIDX_PIN index)
{
if (index >= TOTAL_PINS) {
return -1;
}
struct tmr_pin_t *pPIN = &tmrpins[index];
struct chrg_pin_t *pPIN = &chrgpins[index];
pPIN->pin_value = !pPIN->pin_value;
rt_pin_write(pPIN->pin_base, pPIN->pin_value);
@@ -81,36 +81,36 @@ rt_int32_t tmr_pin_toggle (ePIN_IDX index)
return 0;
}
static rt_int32_t tmr_pin_timer_set_on (struct tmr_pin_t *pPIN)
static rt_int32_t chrg_pin_timer_set_on (struct chrg_pin_t *pPIN)
{
return rt_timer_control(pPIN->tmr_fd, RT_TIMER_CTRL_SET_TIME, (void *)&pPIN->tmr_millis_on);
}
static rt_int32_t tmr_pin_timer_set_off (struct tmr_pin_t *pPIN)
static rt_int32_t chrg_pin_timer_set_off (struct chrg_pin_t *pPIN)
{
return rt_timer_control(pPIN->tmr_fd, RT_TIMER_CTRL_SET_TIME, (void *)&pPIN->tmr_millis_off);
}
rt_int32_t tmr_pin_pulsing (struct tmr_pin_t *pPIN, rt_uint8_t state)
rt_int32_t chrg_pin_pulsing (struct chrg_pin_t *pPIN, rt_uint8_t state)
{
rt_int32_t ret = 0;
if (state == PULSE_OFF) {
pPIN->tmr_stage = PIN_STAGE_IDLE;
tmr_pin_set(pPIN, PIN_HIGH);
chrg_pin_set(pPIN, PIN_HIGH);
} else {
if (pPIN->tmr_millis_on == HOLD_ZERO) { // 常低
pPIN->tmr_stage = PIN_STAGE_IDLE;
rt_timer_stop(pPIN->tmr_fd);
tmr_pin_set(pPIN, PIN_HIGH);
chrg_pin_set(pPIN, PIN_HIGH);
} else if (pPIN->tmr_millis_off == HOLD_ZERO) { // 常高
pPIN->tmr_stage = PIN_STAGE_IDLE;
tmr_pin_set(pPIN, PIN_LOW);
chrg_pin_set(pPIN, PIN_LOW);
} else { // 交替
if (pPIN->tmr_stage == PIN_STAGE_IDLE) {
pPIN->tmr_stage = PIN_STAGE_ON;
tmr_pin_set(pPIN, PIN_LOW);
tmr_pin_timer_set_on(pPIN);
chrg_pin_set(pPIN, PIN_LOW);
chrg_pin_timer_set_on(pPIN);
ret = rt_timer_start(pPIN->tmr_fd);
}
}
@@ -119,23 +119,23 @@ rt_int32_t tmr_pin_pulsing (struct tmr_pin_t *pPIN, rt_uint8_t state)
return ret;
}
static void tmr_pin_timer_timeout_callback (void* parameter)
static void chrg_pin_timer_timeout_callback (void* parameter)
{
struct tmr_pin_t *pPIN = (struct tmr_pin_t *)parameter;
struct chrg_pin_t *pPIN = (struct chrg_pin_t *)parameter;
if (pPIN->tmr_stage == PIN_STAGE_ON) {
pPIN->tmr_stage = PIN_STAGE_OFF;
tmr_pin_set(pPIN, PIN_HIGH);
tmr_pin_timer_set_off(pPIN);
chrg_pin_set(pPIN, PIN_HIGH);
chrg_pin_timer_set_off(pPIN);
rt_timer_start(pPIN->tmr_fd);
} else if (pPIN->tmr_stage == PIN_STAGE_OFF) {
pPIN->tmr_stage = PIN_STAGE_IDLE;
if ((pPIN->tmr_times == TIMES_ALWAYS)&&(pPIN->tmr_millis_off != HOLD_ZERO)) { // 保持闪烁
pPIN->tmr_stage = PIN_STAGE_ON;
tmr_pin_set(pPIN, PIN_LOW);
tmr_pin_timer_set_on(pPIN);
chrg_pin_set(pPIN, PIN_LOW);
chrg_pin_timer_set_on(pPIN);
rt_timer_start(pPIN->tmr_fd);
} else { // 计数闪烁
if (++pPIN->tmr_cnt >= pPIN->tmr_times) {
@@ -143,25 +143,25 @@ static void tmr_pin_timer_timeout_callback (void* parameter)
rt_timer_stop(pPIN->tmr_fd);
} else {
pPIN->tmr_stage = PIN_STAGE_ON;
tmr_pin_set(pPIN, PIN_LOW);
tmr_pin_timer_set_on(pPIN);
chrg_pin_set(pPIN, PIN_LOW);
chrg_pin_timer_set_on(pPIN);
rt_timer_start(pPIN->tmr_fd);
}
}
}
}
static rt_int32_t tmr_pin_timer_start (ePIN_IDX index)
static rt_int32_t chrg_pin_timer_start (eIDX_PIN index)
{
if (index >= TOTAL_PINS) {
return -1;
}
struct tmr_pin_t *pPIN = RT_NULL;
struct chrg_pin_t *pPIN = RT_NULL;
pPIN = &tmrpins[index];
pPIN = &chrgpins[index];
pPIN->tmr_fd = rt_timer_create(pPIN->tmr_name, tmr_pin_timer_timeout_callback,
pPIN->tmr_fd = rt_timer_create(pPIN->tmr_name, chrg_pin_timer_timeout_callback,
pPIN, pPIN->tmr_millis_on, RT_TIMER_FLAG_ONE_SHOT);
if (pPIN->tmr_fd == RT_NULL) {
@@ -172,16 +172,16 @@ static rt_int32_t tmr_pin_timer_start (ePIN_IDX index)
return 0;
}
rt_int32_t tmr_pin_timer_delete (ePIN_IDX index)
rt_int32_t chrg_pin_timer_delete (eIDX_PIN index)
{
if (index >= TOTAL_PINS) {
return -1;
}
return rt_timer_delete(tmrpins[index].tmr_fd);
return rt_timer_delete(chrgpins[index].tmr_fd);
}
static rt_int32_t tmr_pin_show (struct tmr_pin_t *pPIN, rt_uint32_t times, rt_uint32_t on, rt_uint32_t off)
static rt_int32_t chrg_pin_show (struct chrg_pin_t *pPIN, rt_uint32_t times, rt_uint32_t on, rt_uint32_t off)
{
rt_int32_t ret = 0;
@@ -191,34 +191,34 @@ static rt_int32_t tmr_pin_show (struct tmr_pin_t *pPIN, rt_uint32_t times, rt_ui
pPIN->tmr_cnt = 0;
if (pPIN->tmr_millis_on == HOLD_ZERO) {
ret = tmr_pin_pulsing(pPIN, PULSE_OFF);
ret = chrg_pin_pulsing(pPIN, PULSE_OFF);
} else {
ret = tmr_pin_pulsing(pPIN, PULSE_ON);
ret = chrg_pin_pulsing(pPIN, PULSE_ON);
}
return ret;
}
rt_int32_t tmr_led_flashing (ePIN_IDX index, rt_uint32_t times, rt_uint32_t on, rt_uint32_t off)
rt_int32_t chrg_led_flashing (eIDX_PIN index, rt_uint32_t times, rt_uint32_t on, rt_uint32_t off)
{
rt_int32_t ret = -1;
struct tmr_pin_t *pPIN = NULL;
struct chrg_pin_t *pPIN = NULL;
if (index < TOTAL_PINS) {
pPIN = &tmrpins[index];
ret = tmr_pin_show(pPIN, times, on, off);
pPIN = &chrgpins[index];
ret = chrg_pin_show(pPIN, times, on, off);
}
return ret;
}
static int tmr_pins_init (void)
static int chrg_pins_init (void)
{
rt_uint8_t i = 0;
struct tmr_pin_t *pPIN = RT_NULL;
struct chrg_pin_t *pPIN = RT_NULL;
for (i = 0; i < TOTAL_PINS; i++) {
pPIN = &tmrpins[i];
pPIN = &chrgpins[i];
rt_pin_mode(pPIN->pin_base, pPIN->pin_mode);
@@ -227,15 +227,15 @@ static int tmr_pins_init (void)
rt_pin_write(pPIN->pin_base, pPIN->pin_value);
}
tmr_pin_timer_start((ePIN_IDX)i);
chrg_pin_timer_start((eIDX_PIN)i);
}
tmr_led_flashing(IDX_PIN_LED1, TIMES_ALWAYS, PULSE_TIME*8, PULSE_TIME*8);
chrg_led_flashing(IDX_PIN_LED1, TIMES_ALWAYS, PULSE_TIME*8, PULSE_TIME*8);
return 0;
}
INIT_ENV_EXPORT(tmr_pins_init);
INIT_ENV_EXPORT(chrg_pins_init);
@@ -1,5 +1,5 @@
#ifndef __PIN_TMR_H__
#define __PIN_TMR_H__
#ifndef __CHRG_PIN_H__
#define __CHRG_PIN_H__
#include <rttypes.h>
#include <rtdef.h>
@@ -34,7 +34,7 @@ typedef enum {
// IDX_PIN_LED2 = 1, // LED2
// IDX_PIN_LED3 = 2, // LED3
TOTAL_PINS
} ePIN_IDX;
} eIDX_PIN;
typedef enum {
PIN_STAGE_IDLE = (0x00), // 空闲
@@ -44,7 +44,7 @@ typedef enum {
PIN_STAGE_END
} ePIN_STAGE;
struct tmr_pin_t {
struct chrg_pin_t {
rt_uint8_t index; // 引脚索引
char *pin_name; // 引脚名
rt_int32_t pin_base; // 引脚映射值
@@ -60,15 +60,15 @@ struct tmr_pin_t {
rt_uint32_t tmr_cnt; // 定时器已执行周期次数
};
extern struct tmr_pin_t tmrpins[TOTAL_PINS];
extern struct chrg_pin_t tmrpins[TOTAL_PINS];
extern rt_int32_t tmr_pin_set (struct tmr_pin_t *pPIN, rt_uint8_t value);
extern rt_int32_t chrg_pin_set (struct chrg_pin_t *pPIN, rt_uint8_t value);
extern rt_int32_t tmr_pin_toggle (ePIN_IDX index);
extern rt_int32_t chrg_pin_toggle (eIDX_PIN index);
extern rt_int32_t tmr_pin_pulsing (struct tmr_pin_t *pPIN, rt_uint8_t state);
extern rt_int32_t chrg_pin_pulsing (struct chrg_pin_t *pPIN, rt_uint8_t state);
extern rt_int32_t tmr_led_flashing (ePIN_IDX index, rt_uint32_t times, rt_uint32_t on, rt_uint32_t off);
extern rt_int32_t chrg_led_flashing (eIDX_PIN index, rt_uint32_t times, rt_uint32_t on, rt_uint32_t off);
#endif
+128
View File
@@ -0,0 +1,128 @@
#include "chrg_switch.h"
int chrg_switch_ch (rt_base_t inA, rt_base_t inB, eIDX_CH ch)
{
rt_uint8_t a,b;
switch (ch) {
case IDX_CH_0:
a = PIN_LOW;
b = PIN_LOW;
break;
case IDX_CH_1:
a = PIN_LOW;
b = PIN_HIGH;
break;
case IDX_CH_2:
a = PIN_HIGH;
b = PIN_LOW;
break;
case IDX_CH_3:
a = PIN_HIGH;
b = PIN_HIGH;
break;
default:
return -1;
}
rt_pin_write(inA, a);
rt_pin_write(inB, b);
return 0;
}
// 北向通道选择
int chrg_switch_north (eIDX_CH ch)
{
if (ch >= TOTAL_CHS) {
return -1;
}
return chrg_switch_ch(PIN_SW_NORTH_A, PIN_SW_NORTH_B, ch);
}
static int chrg_switch_north_pins_init (void)
{
rt_pin_mode(PIN_SW_NORTH_A, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_NORTH_B, PIN_MODE_OUTPUT);
return 0;
}
int chrg_switch_south_lv1 (eIDX_CH ch)
{
if (ch >= 2) {
return -1;
}
return chrg_switch_ch(PIN_SW_SOUTH_LV1_A, PIN_SW_SOUTH_LV1_B, ch);
}
int chrg_switch_south_lv2_1 (eIDX_CH ch)
{
if (ch >= TOTAL_CHS) {
return -1;
}
return chrg_switch_ch(PIN_SW_SOUTH_LV2_A1, PIN_SW_SOUTH_LV2_B1, ch);
}
int chrg_switch_south_lv2_2 (eIDX_CH ch)
{
if (ch >= TOTAL_CHS) {
return -1;
}
return chrg_switch_ch(PIN_SW_SOUTH_LV2_A2, PIN_SW_SOUTH_LV2_B2, ch);
}
// 南向通道选择
int chrg_switch_south (eIDX_SOUTH_CH ch)
{
if (ch >= TOTAL_SOUTH_CHS) {
return -1;
}
if (ch < IDX_SOUTH_4) {
chrg_switch_south_lv1(IDX_CH_0);
chrg_switch_south_lv2_1((eIDX_CH)ch);
} else {
chrg_switch_south_lv1(IDX_CH_1);
chrg_switch_south_lv2_2((eIDX_CH)(ch-IDX_SOUTH_4));
}
return 0;
}
static int chrg_switch_south_pins_init (void)
{
rt_pin_mode(PIN_SW_SOUTH_LV1_A, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_SOUTH_LV1_B, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_SOUTH_LV2_A1, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_SOUTH_LV2_B1, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_SOUTH_LV2_A2, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_SOUTH_LV2_B2, PIN_MODE_OUTPUT);
return 0;
}
static int chrg_switch_init (void)
{
chrg_switch_north_pins_init();
chrg_switch_south_pins_init();
return 0;
}
INIT_ENV_EXPORT(chrg_switch_init);
+62
View File
@@ -0,0 +1,62 @@
#ifndef __CHRG_SWITCH_H__
#define __CHRG_SWITCH_H__
#include <rtthread.h>
#include <rtdevice.h>
#include "drv_gpio.h"
// 4路选通
typedef enum {
// U14 U23 U24 U25
// ----------------
IDX_CH_0 = 0, // J3 U24 J12 J16
IDX_CH_1, // J4 U25 J13 J17
IDX_CH_2, // J9 - J14 J18
IDX_CH_3, // J10 - J15 J19
TOTAL_CHS
} eIDX_CH;
// 南向选择 组合
typedef enum {
IDX_SOUTH_0 = 0, // U24_J12
IDX_SOUTH_1, // U24_J13
IDX_SOUTH_2, // U24_J14
IDX_SOUTH_3, // U24_J15
IDX_SOUTH_4, // U25_J16
IDX_SOUTH_5, // U25_J17
IDX_SOUTH_6, // U25_J18
IDX_SOUTH_7, // U25_J19
TOTAL_SOUTH_CHS
} eIDX_SOUTH_CH;
// U14 switch
#define PIN_SW_NORTH_A GET_PIN(B, 0)
#define PIN_SW_NORTH_B GET_PIN(B, 1)
// U23 switch
#define PIN_SW_SOUTH_LV1_A GET_PIN(C, 8)
#define PIN_SW_SOUTH_LV1_B GET_PIN(C, 9)
// U24 switch
#define PIN_SW_SOUTH_LV2_A1 GET_PIN(A, 15)
#define PIN_SW_SOUTH_LV2_B1 GET_PIN(C, 10)
// U25 switch
#define PIN_SW_SOUTH_LV2_A2 GET_PIN(C, 11)
#define PIN_SW_SOUTH_LV2_B2 GET_PIN(C, 12)
// 北向通道选择
extern int chrg_switch_north (eIDX_CH ch);
// 南向通道选择
extern int chrg_switch_south (eIDX_SOUTH_CH ch);
#endif
@@ -10,10 +10,10 @@
#define DEV_NAME_SOUTH "uart6"
typedef enum {
IDX_TTY_RS485 = 0,
IDX_TTY_LCD = 1,
IDX_TTY_NORTH = 2,
IDX_TTY_SOUTH = 3,
IDX_TTY_RS485 = 0, // 0
IDX_TTY_LCD, // 1
IDX_TTY_NORTH, // 2
IDX_TTY_SOUTH, // 3
TOTAL_TTY
} eIDX_TTY;
+6 -6
View File
@@ -1,11 +1,11 @@
#include <rtthread.h>
#include <board.h>
#include <drv_gpio.h>
#include "shell.h"
#include <board.h>
#include <rtthread.h>
#include <drv_gpio.h>
#ifndef RT_USING_NANO
#include <rtdevice.h>
#endif /* RT_USING_NANO */
#include "main.h"
void show_app_version (void)
{
+8
View File
@@ -0,0 +1,8 @@
#ifndef __MAIN_H__
#define __MAIN_H__
#include <rtthread.h>
#endif
-46
View File
@@ -1,46 +0,0 @@
#include "switch_north.h"
int switch_north_channel(eIDX_SW_NOR idx)
{
if (idx >= TOTAL_SW_NOR) {
return -1;
}
switch(idx) {
case IDX_SW_NOR_0:
rt_pin_write(PIN_SW_NORTH_A, PIN_LOW);
rt_pin_write(PIN_SW_NORTH_B, PIN_LOW);
break;
case IDX_SW_NOR_1:
rt_pin_write(PIN_SW_NORTH_A, PIN_LOW);
rt_pin_write(PIN_SW_NORTH_B, PIN_HIGH);
break;
case IDX_SW_NOR_2:
rt_pin_write(PIN_SW_NORTH_A, PIN_HIGH);
rt_pin_write(PIN_SW_NORTH_B, PIN_LOW);
break;
case IDX_SW_NOR_3:
rt_pin_write(PIN_SW_NORTH_A, PIN_HIGH);
rt_pin_write(PIN_SW_NORTH_B, PIN_HIGH);
break;
default:
return -1;
}
return 0;
}
static int switch_north_pins_init (void)
{
rt_pin_mode(PIN_SW_NORTH_A, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_NORTH_B, PIN_MODE_OUTPUT);
return 0;
}
INIT_ENV_EXPORT(switch_north_pins_init);
-22
View File
@@ -1,22 +0,0 @@
#ifndef __SWITCH_NORTH_H__
#define __SWITCH_NORTH_H__
#include "drv_gpio.h"
// U14 switch
#define PIN_SW_NORTH_A GET_PIN(B, 0)
#define PIN_SW_NORTH_B GET_PIN(B, 1)
typedef enum {
IDX_SW_NOR_0 = 0, // to J3
IDX_SW_NOR_1 = 1, // to J4
IDX_SW_NOR_2 = 2, // to J9
IDX_SW_NOR_3 = 3, // to J10
TOTAL_SW_NOR
} eIDX_SW_NOR;
#endif
-101
View File
@@ -1,101 +0,0 @@
#include "switch_south.h"
int switch_south_lv1_channel(eIDX_SW_SOU_LV1 idx)
{
if (idx >= TOTAL_SW_SOU_LV1) {
return -1;
}
switch(idx) {
case IDX_SW_SOU_LV1_0:
rt_pin_write(PIN_SW_SOUTH_LV1_A, PIN_LOW);
rt_pin_write(PIN_SW_SOUTH_LV1_B, PIN_LOW);
break;
case IDX_SW_SOU_LV1_1:
rt_pin_write(PIN_SW_SOUTH_LV1_A, PIN_LOW);
rt_pin_write(PIN_SW_SOUTH_LV1_B, PIN_HIGH);
break;
default:
return -1;
}
return 0;
}
int switch_south_lv2_1_channel(eIDX_SW_SOU_LV2_1 idx)
{
if (idx >= TOTAL_SW_SOU_LV2_1) {
return -1;
}
switch(idx) {
case IDX_SW_SOU_LV2_1_0:
rt_pin_write(PIN_SW_SOUTH_LV2_A1, PIN_LOW);
rt_pin_write(PIN_SW_SOUTH_LV2_B1, PIN_LOW);
break;
case IDX_SW_SOU_LV2_1_1:
rt_pin_write(PIN_SW_SOUTH_LV2_A1, PIN_LOW);
rt_pin_write(PIN_SW_SOUTH_LV2_B1, PIN_HIGH);
break;
case IDX_SW_SOU_LV2_1_2:
rt_pin_write(PIN_SW_SOUTH_LV2_A1, PIN_HIGH);
rt_pin_write(PIN_SW_SOUTH_LV2_B1, PIN_LOW);
break;
case IDX_SW_SOU_LV2_1_3:
rt_pin_write(PIN_SW_SOUTH_LV2_A1, PIN_HIGH);
rt_pin_write(PIN_SW_SOUTH_LV2_B1, PIN_HIGH);
break;
default:
return -1;
}
return 0;
}
int switch_south_lv2_2_channel(eIDX_SW_SOU_LV2_2 idx)
{
if (idx >= TOTAL_SW_SOU_LV2_2) {
return -1;
}
switch(idx) {
case IDX_SW_SOU_LV2_2_0:
rt_pin_write(PIN_SW_SOUTH_LV2_A2, PIN_LOW);
rt_pin_write(PIN_SW_SOUTH_LV2_B2, PIN_LOW);
break;
case IDX_SW_SOU_LV2_2_1:
rt_pin_write(PIN_SW_SOUTH_LV2_A2, PIN_LOW);
rt_pin_write(PIN_SW_SOUTH_LV2_B2, PIN_HIGH);
break;
case IDX_SW_SOU_LV2_2_2:
rt_pin_write(PIN_SW_SOUTH_LV2_A2, PIN_HIGH);
rt_pin_write(PIN_SW_SOUTH_LV2_B2, PIN_LOW);
break;
case IDX_SW_SOU_LV2_2_3:
rt_pin_write(PIN_SW_SOUTH_LV2_A2, PIN_HIGH);
rt_pin_write(PIN_SW_SOUTH_LV2_B2, PIN_HIGH);
break;
default:
return -1;
}
return 0;
}
static int switch_south_pins_init (void)
{
rt_pin_mode(PIN_SW_SOUTH_LV1_A, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_SOUTH_LV1_B, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_SOUTH_LV2_A1, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_SOUTH_LV2_B1, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_SOUTH_LV2_A2, PIN_MODE_OUTPUT);
rt_pin_mode(PIN_SW_SOUTH_LV2_B2, PIN_MODE_OUTPUT);
return 0;
}
INIT_ENV_EXPORT(switch_south_pins_init);
-49
View File
@@ -1,49 +0,0 @@
#ifndef __SWITCH_SOUTH_H__
#define __SWITCH_SOUTH_H__
#include "drv_gpio.h"
// U23 switch
#define PIN_SW_SOUTH_LV1_A GET_PIN(C, 8)
#define PIN_SW_SOUTH_LV1_B GET_PIN(C, 9)
typedef enum {
IDX_SW_SOU_LV1_0 = 0, // to U24
IDX_SW_SOU_LV1_1 = 1, // to U25
TOTAL_SW_SOU_LV1
} eIDX_SW_SOU_LV1;
// U24 switch
#define PIN_SW_SOUTH_LV2_A1 GET_PIN(A, 15)
#define PIN_SW_SOUTH_LV2_B1 GET_PIN(C, 10)
typedef enum {
IDX_SW_SOU_LV2_1_0 = 0, // to J12
IDX_SW_SOU_LV2_1_1 = 1, // to J13
IDX_SW_SOU_LV2_1_2 = 2, // to J14
IDX_SW_SOU_LV2_1_3 = 3, // to J15
TOTAL_SW_SOU_LV2_1
} eIDX_SW_SOU_LV2_1;
// U25 switch
#define PIN_SW_SOUTH_LV2_A2 GET_PIN(C, 11)
#define PIN_SW_SOUTH_LV2_B2 GET_PIN(C, 12)
typedef enum {
IDX_SW_SOU_LV2_2_0 = 0, // to J16
IDX_SW_SOU_LV2_2_1 = 1, // to J17
IDX_SW_SOU_LV2_2_2 = 2, // to J18
IDX_SW_SOU_LV2_2_3 = 3, // to J19
TOTAL_SW_SOU_LV2_2
} eIDX_SW_SOU_LV2_2;
#endif
-14
View File
@@ -1,14 +0,0 @@
#ifndef __TMR_CLK_H__
#define __TMR_CLK_H__
struct tmr_clk_t {
rt_uint32_t cnt;
};
extern struct tmr_clk_t tmrclk;
#endif
+201 -206
View File
@@ -337,9 +337,9 @@
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define>RT_USING_ARMLIBC, STM32F405xx, USE_HAL_DRIVER, __STDC_LIMIT_MACROS, __CLK_TCK=RT_TICK_PER_SECOND, __RTTHREAD__, RT_USING_LIBC</Define>
<Define>__CLK_TCK=RT_TICK_PER_SECOND, __RTTHREAD__, USE_HAL_DRIVER, __STDC_LIMIT_MACROS, STM32F405xx, RT_USING_LIBC, RT_USING_ARMLIBC</Define>
<Undefine></Undefine>
<IncludePath>..\..\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</IncludePath>
<IncludePath>..\..\libs\stm32f4\STM32F4_HAL\Inc\Legacy;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\libs\freemodbus\modbus\tcp;..\..\rt-thread\libcpu\arm\cortex-m4;board\CubeMX_Config\Inc;.;..\..\libs\freemodbus\modbus\include;..\..\rt-thread\components\libc\posix\io\eventfd;..\..\rt-thread\components\drivers\include;..\..\libs\cmsis-core\Include;..\..\rt-thread\components\libc\posix\io\epoll;..\..\rt-thread\components\libc\posix\ipc;..\..\rt-thread\components\libc\posix\io\poll;..\..\rt-thread\include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\rt-thread\components\drivers\include;..\..\libs\freemodbus\port;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers\drivers\config;..\..\rt-thread\components\libc\compilers\common\extension;..\..\rt-thread\components\finsh;..\..\libs\freemodbus\modbus\rtu;..\..\rt-thread\components\drivers\phy;..\..\rt-thread\components\drivers\include;board;..\..\libs\stm32f4\STM32F4_HAL\Inc;..\..\rt-thread\components\libc\compilers\common\extension\fcntl\octal;..\..\rt-thread\components\drivers\smp_call;applications;..\..\libs\freemodbus\modbus\ascii;..\..\rt-thread\bsp\stm32\libraries\HAL_Drivers;applications\bsp;..\..\rt-thread\libcpu\arm\common;..\..\rt-thread\components\libc\compilers\common\include;..\..\libs\stm32f4\STM32F4_CMSIS\Include</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -384,49 +384,44 @@
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>switch_south.c</FileName>
<FileName>chrg_pin.c</FileName>
<FileType>1</FileType>
<FilePath>applications\switch_south.c</FilePath>
<FilePath>applications\bsp\chrg_pin.c</FilePath>
</File>
<File>
<FileName>chrg_switch.c</FileName>
<FileType>1</FileType>
<FilePath>applications\bsp\chrg_switch.c</FilePath>
</File>
<File>
<FileName>chrg_intr.c</FileName>
<FileType>1</FileType>
<FilePath>applications\bsp\chrg_intr.c</FilePath>
</File>
<File>
<FileName>chrg_i2c.c</FileName>
<FileType>1</FileType>
<FilePath>applications\chrg_i2c.c</FilePath>
</File>
<File>
<FileName>tmr_clk.c</FileName>
<FileType>1</FileType>
<FilePath>applications\tmr_clk.c</FilePath>
<FilePath>applications\bsp\chrg_i2c.c</FilePath>
</File>
<File>
<FileName>main.c</FileName>
<FileType>1</FileType>
<FilePath>applications\main.c</FilePath>
</File>
<File>
<FileName>switch_north.c</FileName>
<FileType>1</FileType>
<FilePath>applications\switch_north.c</FilePath>
</File>
<File>
<FileName>tmr_pin.c</FileName>
<FileType>1</FileType>
<FilePath>applications\tmr_pin.c</FilePath>
</File>
<File>
<FileName>chrg_intr.c</FileName>
<FileType>1</FileType>
<FilePath>applications\chrg_intr.c</FilePath>
</File>
<File>
<FileName>chrg_tty.c</FileName>
<FileType>1</FileType>
<FilePath>applications\chrg_tty.c</FilePath>
<FilePath>applications\bsp\chrg_tty.c</FilePath>
</File>
<File>
<FileName>chrg_clk.c</FileName>
<FileType>1</FileType>
<FilePath>applications\bsp\chrg_clk.c</FilePath>
</File>
<File>
<FileName>chrg_can.c</FileName>
<FileType>1</FileType>
<FilePath>applications\chrg_can.c</FilePath>
<FilePath>applications\bsp\chrg_can.c</FilePath>
</File>
</Files>
</Group>
@@ -1419,16 +1414,6 @@
<Group>
<GroupName>Finsh</GroupName>
<Files>
<File>
<FileName>msh.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\rt-thread\components\finsh\msh.c</FilePath>
</File>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\rt-thread\components\finsh\shell.c</FilePath>
</File>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
@@ -1439,46 +1424,61 @@
<FileType>1</FileType>
<FilePath>..\..\rt-thread\components\finsh\msh_parse.c</FilePath>
</File>
<File>
<FileName>msh.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\rt-thread\components\finsh\msh.c</FilePath>
</File>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\rt-thread\components\finsh\shell.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>FreeModbus</GroupName>
<Files>
<File>
<FileName>mbcrc.c</FileName>
<FileName>sample_mb_master.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\rtu\mbcrc.c</FilePath>
<FilePath>..\..\libs\freemodbus\samples\sample_mb_master.c</FilePath>
</File>
<File>
<FileName>sample_mb_slave.c</FileName>
<FileName>mbfuncinput.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\samples\sample_mb_slave.c</FilePath>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncinput.c</FilePath>
</File>
<File>
<FileName>mbutils.c</FileName>
<FileName>mbrtu.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbutils.c</FilePath>
<FilePath>..\..\libs\freemodbus\modbus\rtu\mbrtu.c</FilePath>
</File>
<File>
<FileName>mbrtu_m.c</FileName>
<FileName>portevent.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\rtu\mbrtu_m.c</FilePath>
<FilePath>..\..\libs\freemodbus\port\portevent.c</FilePath>
</File>
<File>
<FileName>porttcp.c</FileName>
<FileName>user_mb_app.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\porttcp.c</FilePath>
</File>
<File>
<FileName>mbfunccoils_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfunccoils_m.c</FilePath>
<FilePath>..\..\libs\freemodbus\port\user_mb_app.c</FilePath>
</File>
<File>
<FileName>mbfuncdiag.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncdiag.c</FilePath>
</File>
<File>
<FileName>portevent_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\portevent_m.c</FilePath>
</File>
<File>
<FileName>mbfunccoils.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfunccoils.c</FilePath>
</File>
<File>
<FileName>porttimer_m.c</FileName>
<FileType>1</FileType>
@@ -1494,95 +1494,90 @@
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\portserial.c</FilePath>
</File>
<File>
<FileName>mbfuncinput.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncinput.c</FilePath>
</File>
<File>
<FileName>user_mb_app_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\user_mb_app_m.c</FilePath>
</File>
<File>
<FileName>mbfuncinput_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncinput_m.c</FilePath>
</File>
<File>
<FileName>mbfuncholding.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncholding.c</FilePath>
</File>
<File>
<FileName>mbrtu.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\rtu\mbrtu.c</FilePath>
</File>
<File>
<FileName>mbfuncdisc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncdisc.c</FilePath>
</File>
<File>
<FileName>portserial_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\portserial_m.c</FilePath>
</File>
<File>
<FileName>user_mb_app.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\user_mb_app.c</FilePath>
</File>
<File>
<FileName>mb_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\mb_m.c</FilePath>
</File>
<File>
<FileName>portevent_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\portevent_m.c</FilePath>
</File>
<File>
<FileName>mbfuncother.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncother.c</FilePath>
</File>
<File>
<FileName>mbfuncdisc_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncdisc_m.c</FilePath>
</File>
<File>
<FileName>mbfunccoils.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfunccoils.c</FilePath>
</File>
<File>
<FileName>sample_mb_master.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\samples\sample_mb_master.c</FilePath>
</File>
<File>
<FileName>mb.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\mb.c</FilePath>
</File>
<File>
<FileName>mbfuncholding_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncholding_m.c</FilePath>
</File>
<File>
<FileName>porttimer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\porttimer.c</FilePath>
</File>
<File>
<FileName>portevent.c</FileName>
<FileName>sample_mb_slave.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\portevent.c</FilePath>
<FilePath>..\..\libs\freemodbus\samples\sample_mb_slave.c</FilePath>
</File>
<File>
<FileName>mb_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\mb_m.c</FilePath>
</File>
<File>
<FileName>mbfuncholding.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncholding.c</FilePath>
</File>
<File>
<FileName>mbrtu_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\rtu\mbrtu_m.c</FilePath>
</File>
<File>
<FileName>mbfuncholding_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncholding_m.c</FilePath>
</File>
<File>
<FileName>mbcrc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\rtu\mbcrc.c</FilePath>
</File>
<File>
<FileName>user_mb_app_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\user_mb_app_m.c</FilePath>
</File>
<File>
<FileName>mbfuncother.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncother.c</FilePath>
</File>
<File>
<FileName>portserial_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\portserial_m.c</FilePath>
</File>
<File>
<FileName>mbfunccoils_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfunccoils_m.c</FilePath>
</File>
<File>
<FileName>mbutils.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbutils.c</FilePath>
</File>
<File>
<FileName>mbfuncinput_m.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncinput_m.c</FilePath>
</File>
<File>
<FileName>mb.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\mb.c</FilePath>
</File>
<File>
<FileName>mbfuncdisc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\modbus\functions\mbfuncdisc.c</FilePath>
</File>
<File>
<FileName>porttcp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\freemodbus\port\porttcp.c</FilePath>
</File>
</Files>
</Group>
@@ -2434,16 +2429,21 @@
<Group>
<GroupName>klibc</GroupName>
<Files>
<File>
<FileName>kstring.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\rt-thread\src\klibc\kstring.c</FilePath>
</File>
<File>
<FileName>kerrno.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\rt-thread\src\klibc\kerrno.c</FilePath>
</File>
<File>
<FileName>kstdio.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\rt-thread\src\klibc\kstdio.c</FilePath>
</File>
<File>
<FileName>kstring.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\rt-thread\src\klibc\kstring.c</FilePath>
</File>
<File>
<FileName>rt_vsscanf.c</FileName>
<FileType>1</FileType>
@@ -2454,11 +2454,6 @@
<FileType>1</FileType>
<FilePath>..\..\rt-thread\src\klibc\rt_vsnprintf_tiny.c</FilePath>
</File>
<File>
<FileName>kstdio.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\rt-thread\src\klibc\kstdio.c</FilePath>
</File>
</Files>
</Group>
<Group>
@@ -2494,86 +2489,91 @@
<Group>
<GroupName>STM32F4-CMSIS</GroupName>
<Files>
<File>
<FileName>system_stm32f4xx.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_CMSIS\Source\Templates\system_stm32f4xx.c</FilePath>
</File>
<File>
<FileName>startup_stm32f405xx.s</FileName>
<FileType>2</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_CMSIS\Source\Templates\arm\startup_stm32f405xx.s</FilePath>
</File>
<File>
<FileName>system_stm32f4xx.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_CMSIS\Source\Templates\system_stm32f4xx.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>STM32F4-HAL</GroupName>
<Files>
<File>
<FileName>stm32f4xx_hal_dma_ex.c</FileName>
<FileName>stm32f4xx_hal_cryp_ex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma_ex.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_can.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_can.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_rcc_ex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc_ex.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_gpio.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_cec.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cec.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_i2c.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_i2c.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_i2c_ex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_i2c_ex.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_pwr_ex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr_ex.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_rcc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc.c</FilePath>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cryp_ex.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_dma.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_dma_ex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_dma_ex.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_pwr.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_i2c_ex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_i2c_ex.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_cryp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cryp.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_can.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_can.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_uart.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_uart.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_pwr_ex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_pwr_ex.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_rng.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rng.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_rcc_ex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc_ex.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_rcc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rcc.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_gpio.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_usart.c</FileName>
<FileType>1</FileType>
@@ -2584,26 +2584,21 @@
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cortex.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_cryp_ex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cryp_ex.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_rng.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_rng.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_uart.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_uart.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_crc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_crc.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_cec.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_cec.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_hal_i2c.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libs\stm32f4\STM32F4_HAL\Src\stm32f4xx_hal_i2c.c</FilePath>
</File>
</Files>
</Group>
</Groups>
@@ -484,7 +484,7 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg)
return RT_EOK;
}
static int _can_sendmsg(struct rt_can_device *can, const void *buf, rt_uint32_t box_num)
static rt_ssize_t _can_sendmsg(struct rt_can_device *can, const void *buf, rt_uint32_t box_num)
{
CAN_HandleTypeDef *hcan;
hcan = &((struct stm32_can *) can->parent.user_data)->CanHandle;
@@ -586,7 +586,7 @@ static int _can_sendmsg(struct rt_can_device *can, const void *buf, rt_uint32_t
}
}
static int _can_recvmsg(struct rt_can_device *can, void *buf, rt_uint32_t fifo)
static rt_ssize_t _can_recvmsg(struct rt_can_device *can, void *buf, rt_uint32_t fifo)
{
HAL_StatusTypeDef status;
CAN_HandleTypeDef *hcan;