主题中讨论的其他器件: MSP430FR6043
团队、您好!
我使用 TTL 直接通信进行通信。 通信仅成功一次、但之后持续失败。
我使用了 UCOS16=1和 UCOS16=0时的 UART 寄存器设置
我已经尝试了其他波特率设置、它们都工作正常。
我使用了 SMCLK 并将其设置为4MHz。
如果需要进行任何修改、敬请告知。
此致
GVS
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.
团队、您好!
我使用 TTL 直接通信进行通信。 通信仅成功一次、但之后持续失败。
我使用了 UCOS16=1和 UCOS16=0时的 UART 寄存器设置
我已经尝试了其他波特率设置、它们都工作正常。
我使用了 SMCLK 并将其设置为4MHz。
如果需要进行任何修改、敬请告知。
此致
GVS
您好、GVS:
我建议您将您的代码与 UART 的参考代码进行检查:
https://dev.ti.com/tirex/explore/node?node=A__AKjkBdLbzC2yNgi8o.TDcA__msp430ware__IOGqZri__LATEST
然后、如果配置正确、请首先检查 MSP430F67791A 中的 UART 通信回显(自发送和自接收)。
B.R.
萨尔
大家好、
我已经成功运行波特率配置的波特率9,600,19219200,38400。 只有波特率115200 ,我面临的问题。 我的设置包括:
UCA1CTL1 = UCSWRST;
UCA1CTL1|=UCSSEL_SMCLK;
UCA1BRW= 2;
UCA1MCTLW = 0xBB00 | UCBRF_2 | UCOS16;
UCA1CTL1 &=~μ H UCSWRST;
UCA1IE |= UCRXIE;
////////////// ////////////// ////////////// ////////////// ////////////// //////////////
UCA1CTL1 = UCSWRST;
UCA1CTL1|=UCSSEL_SMCLK;
UCA1BRW= 34;
UCA1MCTLW = UCBRS6+UCBRF0;
UCA1CTL1 &=~μ H UCSWRST;
UCA1IE |= UCRXIE;
是否需要采取措施来补偿 TX 误差%和 Rx 误差%。 USCI 和 eUSCI 波特率表都显示了115200的较高误差百分比。
大家好、
我成功地与其他波特率9,600,38438400,19200通信。 仅当波特率为115200时才会出现问题。
对于115200、Tx 误差百分比和 RX 误差百分比都很高。 我们是否需要采取任何措施来补偿该误差。
我参考的是 Dev TI 代码:
您好、GVS:
当然、这会产生一些影响、也会对主机精度/时钟精度产生影响。 这会使数据传输不正确、误差较大、但预计不会 失败。
我发现您提到:
Unknown 说:通信仅成功一次,但随后失败。
它是否仍然存在-成功一次? 什么是故障现象?
同时、我建议您使用16MHz 并试一试。
欢迎任何反馈。 如果我下周能在办公桌上找到类似的器件、我可能会参加测试。
B.R.
萨尔
您好、GVS:
我已在 LP-FR6043中进行了测试、因为我找不到类似的器件。 430器件的 UART 模块应该相同。
其结果就是可以在波特率为115200的1MHz 或4MHz 上工作。 (主机为 MSP430、目标为 PC)
该设置与您所执行的操作完全相同:
//使用4MHz 启动时钟系统-用于 MSP430FR6043
CSCTL0_H = CSKEY_H;//解锁 CS 寄存器
CSCTL3 = DIVS__2;
CSCTL0_H = 0;
UCA1CTL1 = UCSWRST;
UCA1CTL1|=UCSSEL_SMCLK;
UCA1BRW= 2;
UCA1MCTLW = 0xBB00 | UCBRF_2 | UCOS16;
UCA1CTL1 &=~μ H UCSWRST;
UCA1IE |= UCRXIE;
好的、我认为这可能与您的通信电路相关、负载可能会使其运行电压不能高于115200。
我建议您使用连接到 PC 的430器件、并确定它是否能成功。
B.R.
萨尔
但通信间歇性成功,大多数时候都失败。
失败的原因是什么? 发送? 接收? 奇偶校验错误? 组帧错误?