Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
e2f2b1a9
提交
e2f2b1a9
authored
9月 12, 2020
作者:
高增攀
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
123
上级
e7758fb7
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
91 行增加
和
83 行删除
+91
-83
Memory.c
DcPillar/Src/Memory.c
+5
-0
Memory.h
DcPillar/Src/Memory.h
+2
-0
Drv_DcModule_SmartAllocation.c
DcPillar/Src/SmartAllocation/Drv_DcModule_SmartAllocation.c
+39
-41
Drv_TCUComm.c
DcPillar/Src/TCU/Drv_TCUComm.c
+43
-40
main.c
DcPillar/Src/main.c
+2
-2
没有找到文件。
DcPillar/Src/Memory.c
浏览文件 @
e2f2b1a9
...
...
@@ -87,6 +87,9 @@ StructMemory UserParamDef =
.
Module
=
{
eDCModType_Incre
,
1
},
.
SingleMaxCurrt
=
2000
,
.
SOCMAX
=
100
,
.
PillarCommAddr
=
0
;
.
PillarCommAddr_B
=
0
;
};
...
...
@@ -157,6 +160,8 @@ StructMemory UserParam =
.
Module
=
{
eDCModType_Incre
,
1
},
.
SingleMaxCurrt
=
2000
,
.
SOCMAX
=
100
,
.
PillarCommAddr
=
0
;
.
PillarCommAddr_B
=
0
;
};
StructFlashRecdParam
TempChgRecdParam
=
//历史充电记录参数
...
...
DcPillar/Src/Memory.h
浏览文件 @
e2f2b1a9
...
...
@@ -247,6 +247,8 @@ typedef struct
StructModul
Module
;
u16
SingleMaxCurrt
;
u16
SOCMAX
;
u8
PillarCommAddr
;
//分体桩通讯地址
u8
PillarCommAddr_B
;
//分体桩通讯地址
}
StructMemory
;
extern
StructMemory
UserParam
;
...
...
DcPillar/Src/SmartAllocation/Drv_DcModule_SmartAllocation.c
浏览文件 @
e2f2b1a9
...
...
@@ -51,12 +51,12 @@ void DcModuleRxIrqHandle(void)
//StructDcModuleStatus Data;
u8
RecvFlag
;
IrSta
=
MCP2515_ReadStatus
();
IrSta
=
MCP2515_
B_
ReadStatus
();
if
(
IrSta
&
0x01
)
{
RecvFlag
=
MCP2515_Receive
(
0
,
&
RxMsg
);
MCP2515_BitModify
(
CANINTF
,
0x01
,
0x00
);
RecvFlag
=
MCP2515_
B_
Receive
(
0
,
&
RxMsg
);
MCP2515_B
_B
itModify
(
CANINTF
,
0x01
,
0x00
);
if
(
TRUE
==
RecvFlag
)
...
...
@@ -82,8 +82,8 @@ void DcModuleRxIrqHandle(void)
}
else
if
(
IrSta
&
0x02
)
{
RecvFlag
=
MCP2515_Receive
(
1
,
&
RxMsg
);
MCP2515_BitModify
(
CANINTF
,
0x02
,
0x00
);
RecvFlag
=
MCP2515_
B_
Receive
(
1
,
&
RxMsg
);
MCP2515_B
_B
itModify
(
CANINTF
,
0x02
,
0x00
);
if
(
TRUE
==
RecvFlag
)
{
...
...
@@ -113,19 +113,17 @@ void DcModuleRxIrqHandle(void)
void
DcModuleCanInit
(
void
)
{
DcModleVoltChkCnt
=
0
;
DcModuleGroupDateInit
();
MCP2515_B_EnterCritical
();
MCP2515_
EnterCritical
(
);
MCP2515_
B_SetInt
(
TCURxIrqHandle
,
DISABLE
);
MCP2515_
SetInt
(
DcModuleRxIrqHandle
,
DISABLE
);
MCP2515_
B_SpiInit
();
//初始化MCU的SPI总线
MCP2515_SpiInit
();
//初始化MCU的SPI总线
MCP2515_Reset
();
// MCP2515 启动前进行软件复位
MCP2515_B_Reset
();
// MCP2515 启动前进行软件复位
//使用位修改指令将MCP2515设置为配置模式
//也就是将CANCTRL寄存器的REQOP[2:0]设置为100
MCP2515_BitModify
(
CANCTRL
,
0xE0
,
(
1
<<
REQOP2
));
MCP2515_B
_B
itModify
(
CANCTRL
,
0xE0
,
(
1
<<
REQOP2
));
/*
//计算并设置MCP2515的位时间
...
...
@@ -135,74 +133,74 @@ void DcModuleCanInit(void)
// 最小时间份额 TQ = 2 * ( BRP + 1 ) / Fosc = 2*(7+1)/16M = 1uS
// 同步段 Sync Seg = 1TQ
// 传播段 Prop Seg = ( PRSEG + 1 ) * TQ = 1 TQ
// 相位缓冲段 Phase Seg1 = ( PHSEG1 + 1 ) * TQ =
3
TQ
// 相位缓冲段 Phase Seg2 = ( PHSEG2 + 1 ) * TQ =
3
TQ
// 相位缓冲段 Phase Seg1 = ( PHSEG1 + 1 ) * TQ =
1
TQ
// 相位缓冲段 Phase Seg2 = ( PHSEG2 + 1 ) * TQ =
1
TQ
// 同步跳转长度设置为 CNF1.SJW[1:0] = 00, 即 1TQ
// 总线波特率 NBR = Fbit = 1/(sync seg + Prop seg + PS1 + PS2 )
// = 1/(
8TQ) = 1/8uS = 125
kHz
// = 1/(
4TQ) = 1/4uS = 250
kHz
//设置分频控制器CNF1.BRP[5:0] = 7,同步跳转长度设置为 CNF1.SJW[1:0] = 00
MCP2515_WriteReg( CNF1, (1<<BRP0)|(1<<BRP1)|(1<<BRP2) );
// 设置传播段 Prop Seg 为00,即1TQ,相位缓冲段 Phase Seg1的长度
3
TQ
MCP2515_WriteReg( CNF2, (1<<BTLMODE)|(
1<<PHSEG11
) );
// 设置 相位缓冲段 Phase Seg2为
3
TQ , 禁用唤醒滤波器
MCP2515_WriteReg( CNF3, (
1<<PHSEG21
) );
// 设置传播段 Prop Seg 为00,即1TQ,相位缓冲段 Phase Seg1的长度
1
TQ
MCP2515_WriteReg( CNF2, (1<<BTLMODE)|(
0<<PHSEG10
) );
// 设置 相位缓冲段 Phase Seg2为
1
TQ , 禁用唤醒滤波器
MCP2515_WriteReg( CNF3, (
0<<PHSEG20
) );
*/
MCP2515_
WriteReg
(
CNF1
,
(
1
<<
BRP0
)
|
(
1
<<
BRP1
)
|
(
1
<<
BRP2
));
//125K
MCP2515_
B_WriteReg
(
CNF1
,
(
1
<<
BRP0
)
|
(
1
<<
BRP1
)
|
(
1
<<
BRP2
));
// 设置传播段 Prop Seg 为00,即1TQ,相位缓冲段 Phase Seg1的长度
3
TQ
MCP2515_
WriteReg
(
CNF2
,
(
1
<<
BTLMODE
)
|
(
1
<<
PHSEG11
));
// 设置传播段 Prop Seg 为00,即1TQ,相位缓冲段 Phase Seg1的长度
1
TQ
MCP2515_
B_WriteReg
(
CNF2
,
(
1
<<
BTLMODE
)
|
(
0
<<
PHSEG11
));
// 设置 相位缓冲段 Phase Seg2为
3
TQ , 禁用唤醒滤波器
MCP2515_
WriteReg
(
CNF3
,
(
1
<<
PHSEG21
));
// 设置 相位缓冲段 Phase Seg2为
1
TQ , 禁用唤醒滤波器
MCP2515_
B_WriteReg
(
CNF3
,
(
0
<<
PHSEG21
));
// 设置MCP2515中断使能寄存器,使能接收缓冲器中断
MCP2515_WriteReg
(
CANINTE
,
(
1
<<
RX1IE
)
|
(
1
<<
RX0IE
));
MCP2515_
B_
WriteReg
(
CANINTE
,
(
1
<<
RX1IE
)
|
(
1
<<
RX0IE
));
//设置数据接收相关寄存器
// 设置RXM[1:0]=11,关闭接收缓冲器0屏蔽/滤波功能,接收所有报文;禁止滚存功能
//MCP2515_WriteReg(RXB0CTRL, (1<<RXM1)|(1<<RXM0));
MCP2515_WriteReg
(
RXB0CTRL
,
(
1
<<
RXM1
)
|
(
1
<<
RXM0
)
|
(
1
<<
BUKT
));
MCP2515_
B_
WriteReg
(
RXB0CTRL
,
(
1
<<
RXM1
)
|
(
1
<<
RXM0
)
|
(
1
<<
BUKT
));
// 设置RXM[1:0]=11,关闭接收缓冲器1屏蔽/滤波功能,接收所有报文;
MCP2515_WriteReg
(
RXB1CTRL
,
(
1
<<
RXM1
)
|
(
1
<<
RXM0
));
MCP2515_
B_
WriteReg
(
RXB1CTRL
,
(
1
<<
RXM1
)
|
(
1
<<
RXM0
));
u8
Temp
[
4
]
=
{
0
,
0
,
0
,
0
};
//设置6个验收滤波寄存器为0,
MCP2515_WriteBuffer
(
RXF0SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXF1SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXF2SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXF3SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXF4SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXF5SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXF0SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXF1SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXF2SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXF3SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXF4SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXF5SIDH
,
Temp
,
4
);
//设置2个验收滤波寄存器为0,
MCP2515_WriteBuffer
(
RXM0SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXM1SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXM0SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXM1SIDH
,
Temp
,
4
);
//配置引脚
//设置接收相关引脚控制寄存器,配置它们禁用第二功能
MCP2515_WriteReg
(
BFPCTRL
,
0
);
MCP2515_
B_
WriteReg
(
BFPCTRL
,
0
);
//调试使用,设置BFPCTRL使RX0BF,RX1BF设置为数字输出。
//MCP2515_BitModify( BFPCTRL, (1<<B1BFE)|(1<<B0BFE)|(1<<B1BFM)|(1<<B0BFM), (1<<B1BFE)|(1<<B0BFE) );
//设置发送相关引脚控制寄存器,配置它们禁用第二功能
MCP2515_WriteReg
(
TXRTSCTRL
,
0
);
MCP2515_
B_
WriteReg
(
TXRTSCTRL
,
0
);
//MCP2515进入环回模式,进行功能测试
//MCP2515_BitModify(CANCTRL, 0XE0, (1<<REQOP1));
//MCP2515进入正常模式
MCP2515_BitModify
(
CANCTRL
,
0xE0
,
0
);
MCP2515_B
_B
itModify
(
CANCTRL
,
0xE0
,
0
);
MCP2515_SetInt
(
DcModuleRxIrqHandle
,
ENABLE
);
MCP2515_
B_
SetInt
(
DcModuleRxIrqHandle
,
ENABLE
);
MCP2515_ExitCritical
();
MCP2515_
B_
ExitCritical
();
MCP2515_SpiHightSpeedInit
();
MCP2515_
B_
SpiHightSpeedInit
();
}
...
...
DcPillar/Src/TCU/Drv_TCUComm.c
浏览文件 @
e2f2b1a9
...
...
@@ -32,7 +32,7 @@ u8 TCUSendMsg(StructChargeSend * pMsg)
TxMsg
.
Data
[
6
]
=
pMsg
->
Data
[
6
];
TxMsg
.
Data
[
7
]
=
pMsg
->
Data
[
7
];
if
(
CAN_TxStatus_NoMailBox
!=
MCP2515_
B_
Transmit
(
&
TxMsg
))
if
(
CAN_TxStatus_NoMailBox
!=
MCP2515_Transmit
(
&
TxMsg
))
return
TRUE
;
return
FALSE
;
//未发送成功,返回FALSE
...
...
@@ -50,13 +50,13 @@ void TCURxIrqHandle(void)
{
.
Mult
=
0
,
};
IrSta
=
MCP2515_
B_
ReadStatus
();
IrSta
=
MCP2515_ReadStatus
();
portBASE_TYPE
taskWoken
=
pdFALSE
;
if
(
IrSta
&
0x01
)
{
MCP2515_
B_
Receive
(
0
,
&
RxMsg
);
MCP2515_B
_B
itModify
(
CANINTF
,
0x01
,
0x00
);
MCP2515_Receive
(
0
,
&
RxMsg
);
MCP2515_BitModify
(
CANINTF
,
0x01
,
0x00
);
if
((
CAN_ID_STD
==
RxMsg
.
IDE
)
||
(
CAN_RTR_REMOTE
==
RxMsg
.
RTR
))
return
;
...
...
@@ -153,8 +153,8 @@ void TCURxIrqHandle(void)
if
(
IrSta
&
0x02
)
{
MCP2515_
B_
Receive
(
1
,
&
RxMsg
);
MCP2515_B
_B
itModify
(
CANINTF
,
0x02
,
0x00
);
MCP2515_Receive
(
1
,
&
RxMsg
);
MCP2515_BitModify
(
CANINTF
,
0x02
,
0x00
);
if
((
CAN_ID_STD
==
RxMsg
.
IDE
)
||
(
CAN_RTR_REMOTE
==
RxMsg
.
RTR
))
return
;
...
...
@@ -256,17 +256,20 @@ void TCURxIrqHandle(void)
void
TCUCanInit
(
void
)
{
MCP2515_B_EnterCritical
();
MCP2515_B_SetInt
(
TCURxIrqHandle
,
DISABLE
);
DcModuleGroupDateInit
(
);
MCP2515_
B_SpiInit
();
//初始化MCU的SPI总线
MCP2515_
EnterCritical
();
MCP2515_B_Reset
();
// MCP2515 启动前进行软件复位
MCP2515_SetInt
(
DcModuleRxIrqHandle
,
DISABLE
);
MCP2515_SpiInit
();
//初始化MCU的SPI总线
MCP2515_Reset
();
// MCP2515 启动前进行软件复位
//使用位修改指令将MCP2515设置为配置模式
//也就是将CANCTRL寄存器的REQOP[2:0]设置为100
MCP2515_B
_B
itModify
(
CANCTRL
,
0xE0
,
(
1
<<
REQOP2
));
MCP2515_BitModify
(
CANCTRL
,
0xE0
,
(
1
<<
REQOP2
));
/*
//计算并设置MCP2515的位时间
...
...
@@ -276,74 +279,74 @@ void TCUCanInit(void)
// 最小时间份额 TQ = 2 * ( BRP + 1 ) / Fosc = 2*(7+1)/16M = 1uS
// 同步段 Sync Seg = 1TQ
// 传播段 Prop Seg = ( PRSEG + 1 ) * TQ = 1 TQ
// 相位缓冲段 Phase Seg1 = ( PHSEG1 + 1 ) * TQ =
1
TQ
// 相位缓冲段 Phase Seg2 = ( PHSEG2 + 1 ) * TQ =
1
TQ
// 相位缓冲段 Phase Seg1 = ( PHSEG1 + 1 ) * TQ =
3
TQ
// 相位缓冲段 Phase Seg2 = ( PHSEG2 + 1 ) * TQ =
3
TQ
// 同步跳转长度设置为 CNF1.SJW[1:0] = 00, 即 1TQ
// 总线波特率 NBR = Fbit = 1/(sync seg + Prop seg + PS1 + PS2 )
// = 1/(
4TQ) = 1/4uS = 250
kHz
// = 1/(
8TQ) = 1/8uS = 125
kHz
//设置分频控制器CNF1.BRP[5:0] = 7,同步跳转长度设置为 CNF1.SJW[1:0] = 00
MCP2515_WriteReg( CNF1, (1<<BRP0)|(1<<BRP1)|(1<<BRP2) );
// 设置传播段 Prop Seg 为00,即1TQ,相位缓冲段 Phase Seg1的长度
1
TQ
MCP2515_WriteReg( CNF2, (1<<BTLMODE)|(
0<<PHSEG10
) );
// 设置 相位缓冲段 Phase Seg2为
1
TQ , 禁用唤醒滤波器
MCP2515_WriteReg( CNF3, (
0<<PHSEG20
) );
// 设置传播段 Prop Seg 为00,即1TQ,相位缓冲段 Phase Seg1的长度
3
TQ
MCP2515_WriteReg( CNF2, (1<<BTLMODE)|(
1<<PHSEG11
) );
// 设置 相位缓冲段 Phase Seg2为
3
TQ , 禁用唤醒滤波器
MCP2515_WriteReg( CNF3, (
1<<PHSEG21
) );
*/
MCP2515_
B_WriteReg
(
CNF1
,
(
1
<<
BRP0
)
|
(
1
<<
BRP1
)
|
(
1
<<
BRP2
));
MCP2515_
WriteReg
(
CNF1
,
(
1
<<
BRP0
)
|
(
1
<<
BRP1
)
|
(
1
<<
BRP2
));
//125K
// 设置传播段 Prop Seg 为00,即1TQ,相位缓冲段 Phase Seg1的长度
1
TQ
MCP2515_
B_WriteReg
(
CNF2
,
(
1
<<
BTLMODE
)
|
(
0
<<
PHSEG11
));
// 设置传播段 Prop Seg 为00,即1TQ,相位缓冲段 Phase Seg1的长度
3
TQ
MCP2515_
WriteReg
(
CNF2
,
(
1
<<
BTLMODE
)
|
(
1
<<
PHSEG11
));
// 设置 相位缓冲段 Phase Seg2为
1
TQ , 禁用唤醒滤波器
MCP2515_
B_WriteReg
(
CNF3
,
(
0
<<
PHSEG21
));
// 设置 相位缓冲段 Phase Seg2为
3
TQ , 禁用唤醒滤波器
MCP2515_
WriteReg
(
CNF3
,
(
1
<<
PHSEG21
));
// 设置MCP2515中断使能寄存器,使能接收缓冲器中断
MCP2515_
B_
WriteReg
(
CANINTE
,
(
1
<<
RX1IE
)
|
(
1
<<
RX0IE
));
MCP2515_WriteReg
(
CANINTE
,
(
1
<<
RX1IE
)
|
(
1
<<
RX0IE
));
//设置数据接收相关寄存器
// 设置RXM[1:0]=11,关闭接收缓冲器0屏蔽/滤波功能,接收所有报文;禁止滚存功能
//MCP2515_WriteReg(RXB0CTRL, (1<<RXM1)|(1<<RXM0));
MCP2515_
B_
WriteReg
(
RXB0CTRL
,
(
1
<<
RXM1
)
|
(
1
<<
RXM0
)
|
(
1
<<
BUKT
));
MCP2515_WriteReg
(
RXB0CTRL
,
(
1
<<
RXM1
)
|
(
1
<<
RXM0
)
|
(
1
<<
BUKT
));
// 设置RXM[1:0]=11,关闭接收缓冲器1屏蔽/滤波功能,接收所有报文;
MCP2515_
B_
WriteReg
(
RXB1CTRL
,
(
1
<<
RXM1
)
|
(
1
<<
RXM0
));
MCP2515_WriteReg
(
RXB1CTRL
,
(
1
<<
RXM1
)
|
(
1
<<
RXM0
));
u8
Temp
[
4
]
=
{
0
,
0
,
0
,
0
};
//设置6个验收滤波寄存器为0,
MCP2515_
B_
WriteBuffer
(
RXF0SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXF1SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXF2SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXF3SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXF4SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXF5SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXF0SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXF1SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXF2SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXF3SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXF4SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXF5SIDH
,
Temp
,
4
);
//设置2个验收滤波寄存器为0,
MCP2515_
B_
WriteBuffer
(
RXM0SIDH
,
Temp
,
4
);
MCP2515_
B_
WriteBuffer
(
RXM1SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXM0SIDH
,
Temp
,
4
);
MCP2515_WriteBuffer
(
RXM1SIDH
,
Temp
,
4
);
//配置引脚
//设置接收相关引脚控制寄存器,配置它们禁用第二功能
MCP2515_
B_
WriteReg
(
BFPCTRL
,
0
);
MCP2515_WriteReg
(
BFPCTRL
,
0
);
//调试使用,设置BFPCTRL使RX0BF,RX1BF设置为数字输出。
//MCP2515_BitModify( BFPCTRL, (1<<B1BFE)|(1<<B0BFE)|(1<<B1BFM)|(1<<B0BFM), (1<<B1BFE)|(1<<B0BFE) );
//设置发送相关引脚控制寄存器,配置它们禁用第二功能
MCP2515_
B_
WriteReg
(
TXRTSCTRL
,
0
);
MCP2515_WriteReg
(
TXRTSCTRL
,
0
);
//MCP2515进入环回模式,进行功能测试
//MCP2515_BitModify(CANCTRL, 0XE0, (1<<REQOP1));
//MCP2515进入正常模式
MCP2515_B
_B
itModify
(
CANCTRL
,
0xE0
,
0
);
MCP2515_BitModify
(
CANCTRL
,
0xE0
,
0
);
MCP2515_
B_
SetInt
(
TCURxIrqHandle
,
ENABLE
);
MCP2515_SetInt
(
TCURxIrqHandle
,
ENABLE
);
MCP2515_
B_
ExitCritical
();
MCP2515_ExitCritical
();
MCP2515_
B_
SpiHightSpeedInit
();
MCP2515_SpiHightSpeedInit
();
}
...
...
DcPillar/Src/main.c
浏览文件 @
e2f2b1a9
...
...
@@ -120,8 +120,8 @@ int main(void)
osThreadDef
(
Thd_Charge_B
,
Thd_Charge_B
,
osPriorityHigh
,
0
,
2
*
configMINIMAL_STACK_SIZE
);
osThreadCreate
(
osThread
(
Thd_Charge_B
),
NULL
);
//
osThreadDef(Thd_Mult, Thd_Mult, osPriorityNormal, 0, configMINIMAL_STACK_SIZE);
//
osThreadCreate(osThread(Thd_Mult), NULL);
osThreadDef
(
Thd_Mult
,
Thd_Mult
,
osPriorityNormal
,
0
,
configMINIMAL_STACK_SIZE
);
osThreadCreate
(
osThread
(
Thd_Mult
),
NULL
);
osThreadDef
(
Thd_Lcd
,
Thd_Lcd
,
osPriorityNormal
,
0
,
2
*
configMINIMAL_STACK_SIZE
);
osThreadCreate
(
osThread
(
Thd_Lcd
),
NULL
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论