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

TMS320F28335 CAN通信

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
can通信配置can.c
( f/ Q  m( y% `#include “can.h”
; k. I; t, W, a4 h( D+ \. y3 i1 u  Vlong int i;
: f1 e8 a6 A  dlong loopcount = 0;3 K, o6 Y% t" G% L9 w, T0 ~  k
void Ecan_Config(void)
9 T" y0 {0 R" {/ \, R& Z{- _  {# {" f$ _6 x
struct ECAN_REGS ECanaShadow;
1 n8 i! _1 @+ E' a" ?5 L0 Estruct ECAN_REGS ECanbShadow;
9 B) I, D& g6 z! K/ Q( p9 P// Step 5. User specific code:  S) P7 b% i. C! I- r
" Q5 m( B4 E- g' F3 R$ l
/* Write to the MSGID field */+ ]8 P8 Z  r/ ]& F- b  F  f

; A3 t; k, V% o0 NECanaMboxes.MBOX0.MSGID.all = 0x95555555; // Extended Identifier
8 ?. Q2 O: w- i% }, f% S, |  g( k6 ?8 KECanaMboxes.MBOX15.MSGID.all = 0x95555555; // Extended Identifier0 H# S, N& t; s" z, y
ECanbMboxes.MBOX25.MSGID.all = 0x95555555; // Extended Identifier
* Q% r% i% {# A3 ?$ `ECanbMboxes.MBOX0.MSGID.all = 0x95555555; // Extended Identifier
5 d7 P: G. x! d3 u( P/ U7 E2 K
9 m7 o# q1 k5 J! ]3 ^" T/* 配置CANA 邮箱0为发送邮箱 */
7 n' t& m3 m; V- W  FECanaShadow.CANMD.all =ECanaRegs.CANMD.all;+ Q8 h3 U1 d4 i) y
ECanaShadow.CANMD.bit.MD0 = 0;7 k, Q& `( x, |' J% K
ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;
% E" R$ \  U0 w1 l4 @1 x
$ }  y( S5 X- {% D  P//配置CANB 邮箱25为接受邮箱
/ W. A! s: L$ LECanbShadow.CANMD.all = ECanbRegs.CANMD.all;( b; \8 i. S; z" r
ECanbShadow.CANMD.bit.MD25 = 1;- E8 ]' ?# @( l2 L+ h( ~* z1 `! h
ECanbRegs.CANMD.all = ECanbShadow.CANMD.all;7 c+ l* k- N. Q. M( k3 X+ ?
9 i! ], K' e5 L; |0 U
//配置CANA 邮箱0使能
8 |. H, S! N+ ?ECanaShadow.CANME.all = ECanaRegs.CANME.all;
& k3 O7 G0 o1 \7 ]  {8 u) k8 WECanaShadow.CANME.bit.ME0 = 1;
: i! T9 K6 c* \. e4 [ECanaRegs.CANME.all = ECanaShadow.CANME.all;
% s: X8 h% \9 ^7 H" |
& ~# H6 K0 Q3 l* k//配置CANB 邮箱25使能( r! T1 w9 z( K3 H  W% B
ECanbShadow.CANME.all = ECanbRegs.CANME.all;
3 l3 E' S8 Z9 i* Q( p0 l  zECanbShadow.CANME.bit.ME25 = 1;$ e& S- v- W) Q3 m4 D8 ~
ECanbRegs.CANME.all = ECanbShadow.CANME.all;2 }+ U3 l( y" [' e/ Y* ?- n
5 Q# I; E4 K- L/ |; M# c8 o
/* Write to DLC field in Master Control reg */
, L1 D% s& U% T, s: `' ~2 fECanaMboxes.MBOX0.MSGCTRL.bit.DLC = 8;4 J; @! ?, }. @3 f. |; s. j4 }; N/ A
ECanbMboxes.MBOX25.MSGCTRL.bit.DLC = 8;* v/ b/ x! m( f4 k8 d3 ?+ S
2 m7 u- V' I1 \+ v9 [
//CANA 邮箱0发送信息! R# C) ^0 f( I
ECanaMboxes.MBOX0.MDL.all = 0x12345678;" A- S: w& a( |+ `$ k$ y
ECanaMboxes.MBOX0.MDH.all = 0x87654321;
7 d4 }, S) |+ ]' I) t" S- G9 u6 C7 h6 u! T8 p2 J; V$ E
// ECanbMboxes.MBOX25.MDL.all = 0x12345678;
) D5 b7 }8 C: x0 q1 d4 T$ P( A0 m0 _// ECanbMboxes.MBOX25.MDH.all = 0x87654321;
3 ~/ `. v$ g. x2 T//8 y: `$ C9 n  f, ^( i- @
// //配置为自检模式,实验现象表明可以正常发送数据
: _& t( D4 T* |1 W// EALLOW;2 o- g) N. @" _  o) J$ a
// ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
5 ~' Q2 Q; ]7 A1 F! x7 _// ECanaShadow.CANMC.bit.STM = 1; // Configure CAN for self-test mode
* n7 N2 \, [  R9 F" S// ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;4 J% G; s' G/ n0 `0 Y
// EDIS;( I2 W6 k/ @" u' G5 H. M% k9 ?

) u* H' Y. _! ifor( i=0; i < 1000; i++)& }: K- B' P- V, o- }4 q
{* A: A* ]4 Z! ^8 Y5 [: X* B( R) r
ECanaShadow.CANTRS.all = 0;
8 ^- a$ Q- R4 b# y% |) AECanaShadow.CANTRS.bit.TRS0 = 1; // Set TRS for mailbox under test
$ E8 o9 _# ?- p* oECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;
. L8 E7 V  O" Z: S2 B//单步运行卡在此处,需检查CAN总线是否挂载另一个节点,GPIO配置,CANA,CANB配置等问题
. c, y2 K9 _$ x0 J, ]5 i) ydo
$ f! R! A4 l, v' f$ X, C{
1 G# Y  L) b( r. C8 _4 ZECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
: p/ n4 t0 U% j! |. x} while(ECanaShadow.CANTA.bit.TA0 == 0 ); // Wait for TA5 bit to be set…$ g# b4 h$ m: @$ z& k- W0 Y; Y
4 V4 f% m! N/ a9 c" v. j2 f% h
    ECanaShadow.CANTA.all = 0;
2 m) w$ W5 u+ C3 r. A- E1 S0 E    ECanaShadow.CANTA.bit.TA0 = 1;               // Clear TA5$ b6 M& F% h" X" x
    ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;0 U2 G$ O8 S- I5 _  V

! j7 I( f% Z: H    loopcount ++;
7 C3 g6 y; p2 A$ h2 d }, g7 f' _/ Y9 S4 f4 D! _, k
    ECanaShadow.CANTA.all = 0;
! D8 D# x; w' v0 l8 ~# W+ N3 [+ M" ?    ECanaShadow.CANTA.bit.TA0 = 1;               // Clear TA5& F" T9 P9 h& T$ @3 g9 p0 k
    ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;
$ W: _4 z/ e- O! j& ^5 r, E
$ h3 q& V# j, @/ ?9 W    loopcount ++;" f  \& B4 B$ k
}. k( ^7 a' N  w

4 n% x9 x( a+ L7 E6 g7 w# E6 _}
0 J* u# {8 U3 b* J/ D6 H# t
# q- @, s$ q& O% e1 p; cCAN通信的can.h文件( S4 D' b- ^, Q. Y
#ifndef CAN_H0 i( m' |) H; ~8 W5 ~- O* v
#define CAN_H
/ x, J$ ^. o1 N3 n
( A/ ?' F; C. L' z+ [#include “DSP2833x_Device.h” // DSP2833x 头文件3 f: c( m0 z( G; C8 t( I
#include “DSP2833x_Examples.h” // DSP2833x 例子相关头文件
2 B, K5 E3 j# l4 }) T% @; jvoid Ecan_Config(void);
" z7 b, i* W- k0 g
) f! L) ^0 w' q#endif /* APP_CAN_H_ */# i* `. g, v* B# H1 i0 d6 K& {5 f
8 s7 I& C  g7 M, Y
在主程序中运行该程序,则通过CAN分析仪可在PC机上看到发出1000次信息。
0 b3 j6 w% |7 d/ Q- i) ]# K, k# B

该用户从未签到

2#
发表于 2021-11-16 14:19 | 只看该作者
配置CANA 邮箱0使能
: g7 G/ b1 h4 aECanaShadow.CANME.all = ECanaRegs.CANME.all;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 03:18 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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