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

TMS320F28335 CAN通信

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
can通信配置can.c
! i# l+ w$ Q' r  j8 M#include “can.h”7 a- X7 M0 _* |) d8 S( C  N7 M) r1 U
long int i;+ V' y% ~7 L0 g9 ^( D* R
long loopcount = 0;
% i: {% \( Y0 E# _% `" Kvoid Ecan_Config(void)( o2 F% l7 O$ r1 P( ?
{0 a1 z1 j" o  P9 ^
struct ECAN_REGS ECanaShadow;0 J- P; P5 O3 {* @/ g; k
struct ECAN_REGS ECanbShadow;
. L/ s2 M7 K& ?% L9 n( X& n$ d// Step 5. User specific code:
' `% l; j# ~; n
: k9 b( \; L1 y/* Write to the MSGID field */
3 a; |9 V, {* E0 k: k9 Z$ @" I- t
ECanaMboxes.MBOX0.MSGID.all = 0x95555555; // Extended Identifier
8 x1 T6 f% u- W, L2 g) ?ECanaMboxes.MBOX15.MSGID.all = 0x95555555; // Extended Identifier
* g3 B% g/ w& _  m0 I+ w5 ^2 C/ hECanbMboxes.MBOX25.MSGID.all = 0x95555555; // Extended Identifier
, l' _( i) b  Q. F9 t% C4 BECanbMboxes.MBOX0.MSGID.all = 0x95555555; // Extended Identifier( d; ?  ]$ }, x
1 R& n! t9 {& D: ?
/* 配置CANA 邮箱0为发送邮箱 */
( `( c) T9 M" F0 XECanaShadow.CANMD.all =ECanaRegs.CANMD.all;
3 m, y) r2 C/ q3 k3 NECanaShadow.CANMD.bit.MD0 = 0;: T& O- Q* ^$ J* K9 T6 W
ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;
; v6 K8 [! b) F" r6 [5 j
" [9 s' f% b1 u* f3 R//配置CANB 邮箱25为接受邮箱: p4 y3 W7 ~" U) [
ECanbShadow.CANMD.all = ECanbRegs.CANMD.all;
, O- c! G7 {2 h  S5 m0 cECanbShadow.CANMD.bit.MD25 = 1;7 y. o/ o- b: u* x# K+ o( W
ECanbRegs.CANMD.all = ECanbShadow.CANMD.all;& c" F- v& X( b6 l; O- K

7 H: V  j0 e9 D, o/ q//配置CANA 邮箱0使能0 [; w- S5 E( H( f0 c
ECanaShadow.CANME.all = ECanaRegs.CANME.all;
4 A4 l1 ~9 q, W, z* o/ G, SECanaShadow.CANME.bit.ME0 = 1;5 l; E2 [3 [1 S
ECanaRegs.CANME.all = ECanaShadow.CANME.all;# h6 Q3 }- T' m% j  j: U

- K* b# k5 {4 Z2 x6 z//配置CANB 邮箱25使能- J7 C# w5 y2 ]* `+ h
ECanbShadow.CANME.all = ECanbRegs.CANME.all;
6 R1 e6 R+ `! x' e5 }9 B/ C" iECanbShadow.CANME.bit.ME25 = 1;
8 |* Y6 N( c- N. ]) Y& y) PECanbRegs.CANME.all = ECanbShadow.CANME.all;" ~  Z4 h) X; @) Z5 |

& J1 ]4 C! @' P) U8 ~4 B2 g. j/* Write to DLC field in Master Control reg */
9 e; a; a& Y; w, Z; G2 x  QECanaMboxes.MBOX0.MSGCTRL.bit.DLC = 8;6 U: B6 c7 A8 j! d: h9 v6 I  x
ECanbMboxes.MBOX25.MSGCTRL.bit.DLC = 8;
" r  O7 u$ g/ b/ e1 U' p5 {: a) m6 b. _5 Y
//CANA 邮箱0发送信息3 H" ~, z  R' l3 e% Q  b% R8 n0 U
ECanaMboxes.MBOX0.MDL.all = 0x12345678;
: X' S  e% q& D0 k0 ]' M; rECanaMboxes.MBOX0.MDH.all = 0x87654321;  \' z( o7 V- _2 ]1 p" u

/ R/ x( o7 m& V6 a# c// ECanbMboxes.MBOX25.MDL.all = 0x12345678;0 G. W0 P6 ~9 O! b8 S
// ECanbMboxes.MBOX25.MDH.all = 0x87654321;
% |# w" X2 i9 F5 ?; D2 C2 t//3 b, Z& y8 w( E
// //配置为自检模式,实验现象表明可以正常发送数据! D3 S  }) T" j
// EALLOW;/ m6 a; F# G, @$ O( |# `
// ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;8 y1 k4 M4 A- P7 c. i5 m
// ECanaShadow.CANMC.bit.STM = 1; // Configure CAN for self-test mode/ I' j! i: F/ B3 Y( D! |
// ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
/ Y" m6 Q8 d( s// EDIS;
/ j7 v5 \% {& S3 `. f
1 t6 \0 Y6 }! s9 T; afor( i=0; i < 1000; i++)5 X! \: J6 L  l( i6 r) a# N' U& O) [
{
4 L- O9 \: J( RECanaShadow.CANTRS.all = 0;& `& e/ R/ o0 g9 H7 U: T4 x
ECanaShadow.CANTRS.bit.TRS0 = 1; // Set TRS for mailbox under test
/ D- x; u" I9 oECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;
# V0 U* W6 o1 R+ {; H+ K3 \" D//单步运行卡在此处,需检查CAN总线是否挂载另一个节点,GPIO配置,CANA,CANB配置等问题
' v" a( e1 L0 X0 z6 c( A$ ndo
) D* k: J. d. Y, K8 ^4 \{- n+ g$ M+ e% M2 [% R
ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
- \, E* f/ ~4 h2 v} while(ECanaShadow.CANTA.bit.TA0 == 0 ); // Wait for TA5 bit to be set…
& K6 `; M/ I. C' a4 T+ L7 z8 G. O7 x1 U
    ECanaShadow.CANTA.all = 0;
/ g% T  T+ |$ V1 S5 |. j( Y    ECanaShadow.CANTA.bit.TA0 = 1;               // Clear TA5
  h  _! W/ s, {* w  C    ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;
! r, U/ a/ U. M% ?4 r5 e4 ]$ H9 M( e; N$ K
    loopcount ++;2 T6 D7 z- X! ^2 Y' g6 x
}
/ o( M; u5 O4 s    ECanaShadow.CANTA.all = 0;
- G; r" h* i9 @) a    ECanaShadow.CANTA.bit.TA0 = 1;               // Clear TA5
; b/ M  V% c( C    ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;  d  R# J/ I' l$ a6 Q: b' K# v

4 E7 K( u/ _; E/ A' G9 I2 A    loopcount ++;
! w5 L3 ?/ O8 c) i) k4 a }* c2 M  p; c! Z$ B) W9 n

, _: c2 _5 E7 I3 W9 b, E: ~5 u}
" [* w  E/ @! c  x- r1 J# ]& F& p
CAN通信的can.h文件
3 c" a- _  d& O0 ~#ifndef CAN_H
7 E# `5 `. u% h. k/ m1 {#define CAN_H
, F! L8 j" ?$ M& z; e  `( D/ O  g* @9 e( w8 A! ]1 `7 h" |
#include “DSP2833x_Device.h” // DSP2833x 头文件% x5 i! W7 O- S! e+ Q6 {0 i5 Q2 U! o
#include “DSP2833x_Examples.h” // DSP2833x 例子相关头文件
' _* Z+ M" T  V# n6 ^void Ecan_Config(void);
! j0 T: `0 {9 n1 [3 m5 u
0 |. B& o2 V" ^& @( ~' ~#endif /* APP_CAN_H_ */5 T( @3 B+ z$ K, [  K
- O# M2 x1 P# v& P1 J4 W
在主程序中运行该程序,则通过CAN分析仪可在PC机上看到发出1000次信息。) R& J" I& J5 }- I4 ?: k( }$ ^+ H# Q, J

0 K- z6 @, }, ^6 b9 ~. w' _7 \9 s

该用户从未签到

2#
发表于 2021-11-16 14:19 | 只看该作者
配置CANA 邮箱0使能
# _7 b' e; z+ X& J  p# c5 y) P* q" JECanaShadow.CANME.all = ECanaRegs.CANME.all;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-11 13:34 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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