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

TMS320F28335 CAN通信

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
can通信配置can.c
# B1 u) r# d9 G, d% |3 ~! [#include “can.h”
0 z+ g: y3 j  Blong int i;$ \' |3 a$ J8 [) Z; @- P
long loopcount = 0;
* }5 c3 q6 C3 ~: C) z1 Dvoid Ecan_Config(void)
# A1 S7 V8 [! d- K- [6 a{7 ?' q9 ~' {& D8 X3 y  R& i
struct ECAN_REGS ECanaShadow;. m% \+ s1 `2 O! c& g4 A
struct ECAN_REGS ECanbShadow;
( _1 X0 Y9 Z* n& u// Step 5. User specific code:/ A% \" A$ |* j# }

. U# n% V# b$ b8 n8 n- `/* Write to the MSGID field */! U  w8 y7 F3 Y" b: @9 H
) x+ E: K( B3 x9 l( g
ECanaMboxes.MBOX0.MSGID.all = 0x95555555; // Extended Identifier
' E/ l; F% e0 d) m% rECanaMboxes.MBOX15.MSGID.all = 0x95555555; // Extended Identifier
* G* E' A( v) y8 k: R2 j: n5 BECanbMboxes.MBOX25.MSGID.all = 0x95555555; // Extended Identifier
% u/ k8 o, i4 P& a% p9 ?% @* [; gECanbMboxes.MBOX0.MSGID.all = 0x95555555; // Extended Identifier
: A1 q3 V( r+ q
, R7 |1 ~5 d0 K( a/* 配置CANA 邮箱0为发送邮箱 */9 n: ?" B1 d3 F
ECanaShadow.CANMD.all =ECanaRegs.CANMD.all;) l; m/ v/ l( j; C. I5 x9 }& r
ECanaShadow.CANMD.bit.MD0 = 0;
( J4 Y" B+ T: T& q( cECanaRegs.CANMD.all = ECanaShadow.CANMD.all;
* B0 L+ v8 |& {4 }7 }( `3 _  M- W* ?/ H1 L
//配置CANB 邮箱25为接受邮箱5 X' U" H' h2 v0 o) f3 f) a- V, H
ECanbShadow.CANMD.all = ECanbRegs.CANMD.all;
, y- T& ^% ]6 K# r) u+ q; |4 p; |# YECanbShadow.CANMD.bit.MD25 = 1;; V5 g8 F; f* a4 w" x0 Y
ECanbRegs.CANMD.all = ECanbShadow.CANMD.all;/ Z# d% K/ y0 Y( y0 O' ]
- K9 C4 M) ^3 `/ g  u' Y
//配置CANA 邮箱0使能
+ o. V! [- i9 \5 M1 mECanaShadow.CANME.all = ECanaRegs.CANME.all;8 X4 a* x# _7 L8 h* m1 ]: p9 U4 `
ECanaShadow.CANME.bit.ME0 = 1;
( K2 B8 R& S" b* nECanaRegs.CANME.all = ECanaShadow.CANME.all;
3 U% x) o) J& T6 D; F& t
4 T4 _( g; l/ U, _' g" L5 s//配置CANB 邮箱25使能* T/ N3 F, W9 G
ECanbShadow.CANME.all = ECanbRegs.CANME.all;$ N9 a" C- n7 v2 j9 p
ECanbShadow.CANME.bit.ME25 = 1;
* d( l" G2 Z0 k  \5 Q8 G8 A8 \ECanbRegs.CANME.all = ECanbShadow.CANME.all;
) n$ d6 @: l6 _4 ]# m5 p7 P
7 W9 N! d3 E* u- Q/* Write to DLC field in Master Control reg */4 U8 v+ E  d) O5 g% b: i
ECanaMboxes.MBOX0.MSGCTRL.bit.DLC = 8;
  m  |. Y2 F& z; `. A9 V, fECanbMboxes.MBOX25.MSGCTRL.bit.DLC = 8;* B8 n% p* x/ u) c, O
8 U( w$ W; A/ `, ^+ G& Q/ n
//CANA 邮箱0发送信息1 l* k# s% a( S& ]: s4 l6 s" n
ECanaMboxes.MBOX0.MDL.all = 0x12345678;
0 \2 m  i' |$ f( GECanaMboxes.MBOX0.MDH.all = 0x87654321;: z# \- O$ y, Z! d
2 i/ i0 R% P1 O  s3 h
// ECanbMboxes.MBOX25.MDL.all = 0x12345678;
7 j% I7 F% U2 `& D* W0 m// ECanbMboxes.MBOX25.MDH.all = 0x87654321;
8 H8 w1 a4 L0 q, r4 l) @//
/ s0 _# a2 ^2 g6 T4 j' T6 A! n( Y// //配置为自检模式,实验现象表明可以正常发送数据
/ P: ^' G, L% R8 Q5 q3 X// EALLOW;' H5 n% Y3 f% t6 B, X1 l( h0 z
// ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
" g# f! S5 m# a// ECanaShadow.CANMC.bit.STM = 1; // Configure CAN for self-test mode! E4 S6 A) f; p& g# y# N
// ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
8 w1 i3 r6 M0 Q// EDIS;
# h/ n. m- y% y
4 M5 X% G' o! p; Cfor( i=0; i < 1000; i++)# l, @* f. F. W: P* U- d
{& m2 T7 r2 `9 E. u- K7 m6 k$ g
ECanaShadow.CANTRS.all = 0;8 z$ o3 z1 _0 |# d, K& Z1 x. o
ECanaShadow.CANTRS.bit.TRS0 = 1; // Set TRS for mailbox under test
" S: w; e3 F2 O) I8 t" y8 EECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;
( T9 a& n2 M$ h7 q' j& i//单步运行卡在此处,需检查CAN总线是否挂载另一个节点,GPIO配置,CANA,CANB配置等问题
! P( N. h5 E7 }/ s  Sdo
) D8 U4 @5 ?% C2 u" D  r1 F4 l{
3 h! |; C0 t, d5 {+ {ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;/ `- I, |  f$ h" E0 q! I' U# {
} while(ECanaShadow.CANTA.bit.TA0 == 0 ); // Wait for TA5 bit to be set…- [& `  y" y; V5 `3 ]/ h

4 Z2 |7 K, W2 t* Z- t    ECanaShadow.CANTA.all = 0;! s( y3 b% j- p4 h
    ECanaShadow.CANTA.bit.TA0 = 1;               // Clear TA5
9 y* `" ]6 @) @0 I8 A. q7 ~    ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;; X' n& }/ h; T
" o/ P8 W' B; M. B
    loopcount ++;
7 `2 u$ z6 n, C0 C8 v# g }* E1 D! e" v5 H7 C+ _0 O4 s
    ECanaShadow.CANTA.all = 0;* n+ e2 K& ?8 ?* I
    ECanaShadow.CANTA.bit.TA0 = 1;               // Clear TA59 c7 u" W2 H1 w1 J5 Y( u( Y% {9 |
    ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;4 Y( ?1 G- {% Y8 [' V2 f
% F$ `- @- w9 }' B$ M
    loopcount ++;
5 N  X1 b1 ?5 s }9 F4 p1 ^4 `% E4 f0 q( V
0 q, D  N+ Z  i7 `
}
3 E+ o  y+ p8 P3 |! `8 q; J  {& u3 E* `& X
CAN通信的can.h文件  [0 _9 a* m  m4 }6 Y( D8 X
#ifndef CAN_H0 N+ S+ O: Y3 c1 s9 N# p' ]
#define CAN_H
$ }  w8 [2 ?/ H& v% o
  r, a3 p1 G/ ^5 k! f#include “DSP2833x_Device.h” // DSP2833x 头文件
2 f' [0 r! a1 N( y# j2 x. \' F#include “DSP2833x_Examples.h” // DSP2833x 例子相关头文件
$ C- I- ?! c. Gvoid Ecan_Config(void);; c+ i% w; v& Q! k7 K1 u5 l8 i$ W

9 S: ^0 j- Q0 A3 C#endif /* APP_CAN_H_ */
9 Z3 Q# @% P" ?; f; W# c. Z+ f. B4 k8 G4 z
在主程序中运行该程序,则通过CAN分析仪可在PC机上看到发出1000次信息。$ E8 K/ r$ x% P8 @% T" l  ?

# F" R3 R! z; d3 ?, i7 ^0 O9 B/ O

该用户从未签到

2#
发表于 2021-11-16 14:19 | 只看该作者
配置CANA 邮箱0使能; K# T; E( h" Y, Z8 k% {
ECanaShadow.CANME.all = ECanaRegs.CANME.all;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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