没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
New0001.c
页 1
00001:
00001:
// Copyright(C) LabArtwork.com
// Copyright(C) LabArtwork.com
00002:
00002:
//
发送
can
包
//
发送
can
包
00003:
00003:
int
int
uart_send_canmsg
uart_send_canmsg
(
(
u32
u32
id
id
,
,
void
void
*
*
buf
buf
,
,
u8
u8
bufsize
bufsize
)
)
00004:
00004:
{
{
00005:
00005:
int
int
i
i
,
,
idx
idx
=
=
2
2
;
;
00006:
00006:
u8
u8
can_buf
can_buf
[
[
42
42
],
],
temp
temp
,
,
crc
crc
=
=
0
0
,
,
*
*
pbuf
pbuf
=
=
(
(
u8
u8
*
*
)
)
buf
buf
;
;
00007:
00007:
00008:
00008:
if
if
(g_bt_pusart
(g_bt_pusart
==
==
NULL
NULL
)
)
00009:
00009:
return
return
-
-
1
1
;
;
00010:
00010:
00011:
00011:
/*
打包
*/
/*
打包
*/
00012:
00012:
can_buf
can_buf
[
[
0
0
]
]
=
=
0xaa
0xaa
;
;
00013:
00013:
can_buf
can_buf
[
[
1
1
]
]
=
=
0xaa
0xaa
;
;
00014:
00014:
00015:
00015:
/* ext id */
/* ext id */
00016:
00016:
id
id
&=
&=
0x3FFFFFFF
0x3FFFFFFF
;
;
00017:
00017:
00018:
00018:
for
for
(
(
i
i
=
=
0
0
;
;
i
i
<
<
4
4
;
;
i
i
++
++
){
){
00019:
00019:
temp
temp
=
=
(
(
id
id
>>
>>
(
(
i
i
*
*
8
8
)
)
)
)
&
&
0xFF
0xFF
;
;
00020:
00020:
if
if
(
(
temp
temp
==
==
0x55
0x55
||
||
temp
temp
==
==
0xAA
0xAA
){
){
00021:
00021:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
0xa5
0xa5
;
;
00022:
00022:
}
}
00023:
00023:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
temp
temp
;
;
00024:
00024:
crc
crc
+=
+=
temp
temp
;
;
00025:
00025:
}
}
00026:
00026:
00027:
00027:
/* crc in data[8] */
/* crc in data[8] */
00028:
00028:
for
for
(
(
i
i
=
=
0
0
;
;
i
i
<
<
bufsize
bufsize
;
;
i
i
++
++
){
){
00029:
00029:
if
if
(
(
pbuf
pbuf
[
[
i
i
]
]
==
==
0x55
0x55
||
||
pbuf
pbuf
[
[
i
i
]
]
==
==
0xAA
0xAA
){
){
00030:
00030:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
0xa5
0xa5
;
;
00031:
00031:
}
}
00032:
00032:
00033:
00033:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
pbuf
pbuf
[
[
i
i
];
];
00034:
00034:
crc
crc
+=
+=
pbuf
pbuf
[
[
i
i
];
];
00035:
00035:
}
}
00036:
00036:
for
for
(;
(;
i
i
<
<
8
8
;
;
i
i
++
++
){
){
00037:
00037:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
0
0
;
;
00038:
00038:
}
}
00039:
00039:
00040:
00040:
/* len/formatpe */
/* len/formatpe */
00041:
00041:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
bufsize
bufsize
;
;
00042:
00042:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
MSG_CH_UART
MSG_CH_UART
;
;
/* ch=0 */
/* ch=0 */
00043:
00043:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
EXTENDED_FORMAT
EXTENDED_FORMAT
;
;
/*EXTENDED_FORMAT*/
/*EXTENDED_FORMAT*/
00044:
00044:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
DATA_FRAME
DATA_FRAME
;
;
00045:
00045:
00046:
00046:
/* crc more */
/* crc more */
00047:
00047:
for
for
(
(
i
i
=
=
0
0
;
;
i
i
<
<
4
4
;
;
i
i
++
++
){
){
00048:
00048:
crc
crc
+=
+=
can_buf
can_buf
[
[
idx
idx
-
-
4
4
+
+
i
i
];
];
00049:
00049:
}
}
00050:
00050:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
crc
crc
;
;
00051:
00051:
00052:
00052:
/*
帧尾
*/
/*
帧尾
*/
00053:
00053:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
0x55
0x55
;
;
00054:
00054:
can_buf
can_buf
[
[
idx
idx
++
++
]
]
=
=
0x55
0x55
;
;
00055:
00055:
00056:
00056:
if
if
(
(
UsartPuts
UsartPuts
(
(
g_bt_pusart,(
g_bt_pusart,(
char
char
*
*
)
)
can_buf
can_buf
,
,
idx
idx
)
)
==
==
0
0
)
)
00057:
00057:
return
return
-
-
1
1
;
;
00058:
00058:
00059:
00059:
return 0
return 0
;
;
00060:
00060:
}
}
? end uart_send_canmsg ?
? end uart_send_canmsg ?
00061:
00061:
00062:
00062:
#define
#define
CAN_PKT_SIZE
CAN_PKT_SIZE
21
21
00063:
00063:
#define
#define
MAX_CAN_PARSE_BUF_LEN
MAX_CAN_PARSE_BUF_LEN
64
64
00064:
00064:
static
static
u8
u8
g_can_frame
g_can_frame
[
[
MAX_CAN_PARSE_BUF_LEN
MAX_CAN_PARSE_BUF_LEN
];
];
00065:
00065:
00066:
00066:
enum
enum
frame_sync_e
frame_sync_e
{
{
00067:
00067:
FS_FIND_AA1
FS_FIND_AA1
,
,
00068:
00068:
FS_FIND_AA2
FS_FIND_AA2
,
,
00069:
00069:
FS_FIND_DATA
FS_FIND_DATA
,
,
00070:
00070:
FS_FIND_CRC
FS_FIND_CRC
,
,
/*
有转义字符不用
*/
/*
有转义字符不用
*/
00071:
00071:
FS_FIND_551
FS_FIND_551
,
,
00072:
00072:
FS_FIND_552
FS_FIND_552
00073:
00073:
};
};
00074:
00074:
00075:
00075:
00076:
00076:
/* uart
接收
can
包处理
*/
/* uart
接收
can
包处理
*/
资源评论
- weiwei_meiyou2016-12-25代码参考意义不大
- haixianliu2016-12-21做广告呢,滚出去。
- gootoomoon2018-05-11不推荐,人是用来卖硬件的
- goodname2016-04-25只有2个函数。代码参考意义不大。个人看法。
#Page#
- 粉丝: 1626
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于扰动观测器的伺服系统摩擦补偿Matlab仿真 1.模型简介 模型为基于扰动观测器的摩擦补偿仿真,仿真基于永磁同步电机速
- 大作业用C语言实的代码.zip
- 电力电子变压器 整流级采用级联H桥多电平拓扑,由三个H桥模块级联,将工频交流转为直流,级联多电平可以减小开关器件的电压应力和开
- 永磁同步电机,基于扩展卡尔曼滤波算法无传感器仿真模型,s函数编写算法,基于matlab simulink搭建
- 混合储能系统 光储微网 下垂控制 1、仿真由光伏发电系统和混合储能系统构成直流微网 2、混合储能系统由超级电容器和蓄电池构成
- IT战略规划资料合集.zip
- 系统Java项目大作业源码.zip
- 两级式单相光伏并网仿真(注意版本matlab 2021a) 前级采用DC-DC变电路,通过MPPT控制DC-DC电路的pwm波来
- python实现系统源码.zip
- Python标准库简介.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功