This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28032:程序执行期间切换波特率

Guru**** 1831610 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1435719/tms320f28032-switching-baud-rate-during-program-execution

器件型号:TMS320F28032

工具与软件:

 TMSF28032 由       125k 的波特率初始化、 并且 在 程序 执行期间、 此     波特 率被切换至  500k 的波特率。  然而、  总线    在 500k 处不是空闲的 、并且  CANES.bit.CCE 不能  设置 为 1、这 会阻止  器件  进入  初始化 模式 、 因此  无法  设置  波特 率。  是否 有    直接 进入  初始化 模式 并 设置  波特 率的解决方案?

目前、 我 已经 尝试 进入  本地 断电 模式 、方法是 访问  CANMC 寄存器的  PDR (CANMC.bit.PDR) 、 然后 退出  本地 断电 模式 以 执行  上电 序列 、     再次重新配置波特率、 但  问题 仍然存在。

下面 是 我的 配置 程序:

(1) 进入 本地 断电 模式

EALLOW;

// 进入 本地 断电 模式
ECanaShadow.CANMC.all = ECanaRegs.CANMC.all ;
ECanaShadow.CANMC.bit.PDR = 1;
ECanaShadow.CANMC.bit.WUBA = 0;
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all ;

EDIS;

(2) 退出 本地 断电 模式

if (ECanaShadow.canes.bit.pda)

EALLOW;

ECanaShadow.CANMC.all = ECanaRegs.CANMC.all ;
ECanaShadow.CANMC.bit.CCR = 1;
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all ;

ECanaShadow.CANTIOC.all = ECanaRegs.CANTIOC.all;
ECanaShadow.CANTIOC.bit.TXFUNC = 1;
ECanaRegs.CANTIOC.all = ECanaShadow.CANTIOC.all;

ECanaShadow.CANRIOC.all = ECanaRegs.CANRIOC.all;
ECanaShadow.CANRIOC.bit.RXFUNC = 1;
ECanaRegs.CANRIoc.all = ECanaShadow.CANRIoc.all ;

ECanaShadow.CANMC.all = ECanaRegs.CANMC.all ;
ECanaShadow.CANMC.bit.SUSP = 1;
ECanaShadow.CANMC.bit.SCB = 1;
ECanaShadow.CANMC.bit.ABO = 1;
ECanaShadow.CANMC.bit.PDR = 0;
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all ;

...配置 波特 率

EDIS;
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    更改波特率时、必须遵循以下程序序列。