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.

[参考译文] MSP430FR2433:UART TX 中断

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1424747/msp430fr2433-uart-tx-interrupt

器件型号:MSP430FR2433

工具与软件:

工具:CCS 12.7.1

大家好!

C.

有人 给我一个关于这个代码的手?

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <msp430.h>
#define MCLK_FREQ_MHZ 1 // MCLK = 1MHz
void Software_Trim(); // Software Trim to get the best DCOFTRIM value
void UARTConf(void);
/**
* main.c
*/
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
__bis_SR_register(SCG0); // Disable FLL
CSCTL3 = SELREF__REFOCLK; // Set REFO as FLL reference source
CSCTL1 = DCOFTRIMEN | DCOFTRIM0 | DCOFTRIM1 | DCORSEL_0;// DCOFTRIM=3, DCO Range = 1MHz
CSCTL2 = FLLD_0 + 30; // DCODIV = 1MHz
__delay_cycles(3);
__bic_SR_register(SCG0); // Enable FLL
Software_Trim(); // Software Trim to get the best DCOFTRIM value
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

它只应该回显从连接到 GPS 模块的 RX 引脚接收到的数据。 我可以进行检查、中断没有触发、并且已经检查了导线电路。

感谢您的任何帮助!

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

    你从 main ()返回,它关闭所有-包括中断。 您需要一个 while (1){}无限循环。

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

    > __ bis_SR_register (LPM3_bits |GIE);//进入 LPM3、中断被启用

    在 LPM3中、SMCLK 被关闭。 请尝试改用:

    > __ bis_SR_register (LPM0_bits|GIE);//进入 LPM0、中断被启用

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

    时钟请求系统在串行端口需要时不能启用 SMCLK? 这可能会因检测到起始位时的时钟启动延迟而导致时序问题。 这会导致数据错误、而不是完全缺少数据。

    此外、ISR 不会导致从 LPM3退出、因此 main 中缺少 while (1)应该无关紧要。

    我想知道代码是否会将其用于 UART init。 可能会卡在所有这些时钟系统的抖动中。 尝试使用调试器进行检查。

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

    更新了:我移除了 J101接头的 RX/TX 引脚、现在触发 RX 中断。 但来自 GPS 的数据不回传。 我将使用逻辑分析仪来监控引脚。 还有其他建议吗?

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

    你是否在 UCA0TXBUF = UCA0RXBUF 上放置了一个中断以确保你到达那里?

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

    听起来 您想要通过 UCA0 Rx 侧接受 GPS 输出、然后通过 UCA0 Tx 侧将其回显到反向通道 UART (PC 终端)。

    如果是、您应该(仅限)将 TXD 跳线放回 J101上。

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

    谢谢你的伙伴!