找回密码
 注册
关于网站域名变更的通知
查看: 436|回复: 1
打印 上一主题 下一主题

TMS320F28335 CAN通信

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-11-16 14:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
can通信配置can.c3 i: h- x' Q# z5 _
#include “can.h”1 M* ~0 m) Q; t. d* S0 w3 s  X
long int i;7 p. z' |8 i6 T5 h0 M- ?
long loopcount = 0;0 M3 u) l. K( r5 F4 ~
void Ecan_Config(void)
7 n' ~. J5 h- H% c/ E{
) r$ J2 [( n4 i& F& @! c* [struct ECAN_REGS ECanaShadow;
! N3 l, I- L' `' a& ]struct ECAN_REGS ECanbShadow;
& f1 {$ K1 W, f/ H) Y// Step 5. User specific code:8 z+ ?# P; i1 ^5 n( X/ r8 S( }
) [9 E  q6 q- i8 h- r
/* Write to the MSGID field */
& C. }. [( Q, w2 d9 i" {
9 q9 y! X: B. U5 d$ z2 c6 UECanaMboxes.MBOX0.MSGID.all = 0x95555555; // Extended Identifier
! H2 ~' J8 `" K6 R8 v1 T3 gECanaMboxes.MBOX15.MSGID.all = 0x95555555; // Extended Identifier: C3 ^' Y; ]# ^% a1 w
ECanbMboxes.MBOX25.MSGID.all = 0x95555555; // Extended Identifier7 O/ T9 j  \4 b! Q
ECanbMboxes.MBOX0.MSGID.all = 0x95555555; // Extended Identifier' d2 ]* N3 p" {! u! t: ]- _- I' B
  c. ?! R/ s8 v: ?
/* 配置CANA 邮箱0为发送邮箱 */
/ j1 Q2 n% s" @3 ]ECanaShadow.CANMD.all =ECanaRegs.CANMD.all;$ o- }9 r6 q1 I
ECanaShadow.CANMD.bit.MD0 = 0;
5 k2 g7 R, ^+ S, P. S& ]; G) @ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;9 s, y7 U( [( s$ t' m9 K; Q0 \/ \
7 t, E% k* n! k0 e1 H: o, x) y
//配置CANB 邮箱25为接受邮箱
( z* s6 D. U. ^4 FECanbShadow.CANMD.all = ECanbRegs.CANMD.all;
) I5 n8 X  t& M) m9 [7 s/ zECanbShadow.CANMD.bit.MD25 = 1;
* k% ^8 t/ @7 n9 I( u3 GECanbRegs.CANMD.all = ECanbShadow.CANMD.all;) k  e! d- M! W, p9 _

4 G; k5 D7 M' q" J//配置CANA 邮箱0使能
) t* f- m0 j) I4 F% fECanaShadow.CANME.all = ECanaRegs.CANME.all;
) s! q, G) j! h% ^' I" Y! nECanaShadow.CANME.bit.ME0 = 1;
% l+ ~* G& E6 C# i- S2 fECanaRegs.CANME.all = ECanaShadow.CANME.all;
8 T3 E- J* u* t2 @  d) g& h' ^( V% ?
//配置CANB 邮箱25使能
0 I$ \- u+ f6 E" s9 z% `ECanbShadow.CANME.all = ECanbRegs.CANME.all;
$ [5 r& O) e9 AECanbShadow.CANME.bit.ME25 = 1;
; M& V. [+ J1 i; _+ Z( VECanbRegs.CANME.all = ECanbShadow.CANME.all;
/ `4 t2 `! ~9 a: U( z1 F  K0 `+ ~# D3 @4 E
/* Write to DLC field in Master Control reg */1 R5 N, b* I% @
ECanaMboxes.MBOX0.MSGCTRL.bit.DLC = 8;% d8 u6 j, h6 i0 T# C
ECanbMboxes.MBOX25.MSGCTRL.bit.DLC = 8;. \( K* y4 i5 q
, l2 q. p; b# S( t; \, z* l( m* S% f
//CANA 邮箱0发送信息# _0 G1 X1 H$ F2 T# n
ECanaMboxes.MBOX0.MDL.all = 0x12345678;6 @3 N( U6 O1 b4 T* G
ECanaMboxes.MBOX0.MDH.all = 0x87654321;$ O7 `% q2 _/ h; H
0 s  d4 E% H( W6 I, `
// ECanbMboxes.MBOX25.MDL.all = 0x12345678;
$ R( `; }" l. {3 H4 E6 p// ECanbMboxes.MBOX25.MDH.all = 0x87654321;
* e! n4 ^5 O" d* J: Q//
; @$ _- A/ @  V// //配置为自检模式,实验现象表明可以正常发送数据
- e+ I8 K: F% J( T// EALLOW;$ d+ j1 f5 i2 r+ X) m2 H3 n
// ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;) ]* H5 P5 v3 k$ V6 i: ?
// ECanaShadow.CANMC.bit.STM = 1; // Configure CAN for self-test mode5 m  W3 b% j& Z- x
// ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;4 B/ [* c/ U. S; M# K
// EDIS;& b# V# H' \6 t, c

: S! N3 N; l; T: w8 b, D6 o5 w  G" O2 r9 Sfor( i=0; i < 1000; i++)4 o! u: {8 y3 Q, N. d
{" B" j3 U0 v! _2 e
ECanaShadow.CANTRS.all = 0;4 l# c" ?' A+ i
ECanaShadow.CANTRS.bit.TRS0 = 1; // Set TRS for mailbox under test' N6 x  V) @5 Y4 `+ }" |. y( j: {& V
ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;
9 z4 z; D8 e% m//单步运行卡在此处,需检查CAN总线是否挂载另一个节点,GPIO配置,CANA,CANB配置等问题
- n9 ]$ u2 e) G+ Mdo
7 P$ j) o; P. _/ q& w+ }  Q' Q3 m0 s{
9 {, W  F0 V1 g4 cECanaShadow.CANTA.all = ECanaRegs.CANTA.all;& q* h* c9 N, C/ m7 e: S# N: \9 P- _4 B
} while(ECanaShadow.CANTA.bit.TA0 == 0 ); // Wait for TA5 bit to be set…( q) r. _% K+ Y+ e: D# `5 M! K

7 e, Z/ L0 D+ u+ ?! q  `    ECanaShadow.CANTA.all = 0;; I0 q6 {: q! B( j
    ECanaShadow.CANTA.bit.TA0 = 1;               // Clear TA5
: q9 \, E1 ^$ M& _: v8 }: [    ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;
/ j7 b' r0 D- Q& [7 v) G) B+ p
: A8 z$ V  k" p    loopcount ++;
0 t" p* |. Q7 g6 s% G. A" U }; l6 v% m2 F" U3 v
    ECanaShadow.CANTA.all = 0;% j) q: I8 p8 u$ _# C% f( W: b
    ECanaShadow.CANTA.bit.TA0 = 1;               // Clear TA5! K* i. e; z) E& e0 R% F
    ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;. @, w! f! w; A" {! T/ u
. ?7 ^2 e" p1 R, }3 W) R
    loopcount ++;
0 N9 B1 W, Y8 y% f5 M( v1 @ }
8 X, y" d8 q+ m
) [$ X8 p" T! I; S. h2 ]- h}
' c6 c6 B( B2 x$ r8 N2 n5 i
8 o; G1 i7 W4 ~, e; @CAN通信的can.h文件
( Y. ]# x2 X- g- V- D3 a#ifndef CAN_H# {' Q+ m3 S2 p) J6 ~
#define CAN_H
; ?/ ?9 c) e! A8 w& ]7 a* D4 ]
#include “DSP2833x_Device.h” // DSP2833x 头文件
, {* }) M  A$ E. C0 a& l; R; Z. O#include “DSP2833x_Examples.h” // DSP2833x 例子相关头文件$ |2 @8 z4 T+ ^5 j/ T
void Ecan_Config(void);- s" r; g5 A7 z$ y( `; [; W

) B( i8 |; u" p% s#endif /* APP_CAN_H_ */
% }9 c" b! d4 l5 J" X% r' K7 g
( _/ c2 K+ J1 r) |在主程序中运行该程序,则通过CAN分析仪可在PC机上看到发出1000次信息。( K6 y. `* l; X+ l5 R3 N& p& c! B% S& H

% G) J3 F* }4 S& i6 Q

该用户从未签到

2#
发表于 2021-11-16 14:19 | 只看该作者
配置CANA 邮箱0使能
# k5 K/ K3 `2 L! N& F; bECanaShadow.CANME.all = ECanaRegs.CANME.all;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 00:02 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表