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.

[参考译文] CCS/MSP430FR5969:msp430fr5969 -使用正常 GPIO 引脚中的计时器使用软件 UART 发送数据时出现问题。

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/591408/ccs-msp430fr5969-msp430fr5969--problem-regarding-transmitting-data-using-software-uart-using-timers-in-normal-gpio-pin

器件型号:MSP430FR5969

工具/软件:Code Composer Studio

大家好,我在 P4.5引脚上尝试了使用计时器的软件 UART。 我只是将单个字符传输到控制器,但在超级终端中没有重新发送。 它的9600波特率。 请报告任何错误或更改。

.#include"driverlib.h"
在 Launchpad 上#define TX_PIN BIT5 //P4.5、XOUT
#define bit_time 104 //0x680 for 9600;

uint8_t buff Tx [64];
uint8_t * ptr_Tx;
uint8_t bitCount、flag=0;
uint16_t test_buff = 0x00、TXByte;
uint32_t 时钟= 0;
void initio (void);
void initTA1 (void);
void uartTx (uint8_t byte);
void main()

WDTCTL = WDTPW + WDTHOLD;//停止 WDT
PM5CTL0 &=~LOCKLPM5;
Clock=CS_getSMCLK();
_bis_SR_register (GIE);
initio();
while (1)

uartTx(3);


void 初始化(void)

P4SEL0 |= TX_PIN;
P4OUT |= BIT5;
P4DIR |= TX_PIN;

空 uartTx (uint8_t 字节)

TXByte =字节;
bitCount = 0xA;//加载位计数器、8位+ ST/SP
TXByte |= 0x100;//将停止位添加到 TXByte (逻辑1)//txbyte=0001 0000 0000
TXByte = TXByte << 1;//添加起始位(逻辑0)//0010 0000 0000
initTA1();

空 initTA1 (空)

while (TA0CCTL0和 CCIE)

;//等待前一个 xmit 完成

TA0CCR0 = TA0R;//与当前 TIMERA 计数器重新同步
TA0CCR0 += BIT_TIME;//设置下一个开始位边沿时间
TA0CTL = tassel_2 + MC_2;
TA0CCTL0 = OUT | CCIE|CCIS0;//将 EQU0上的 TX_PIN 设置为高电平并重新启用中断

//计时器 A0中断服务例程
#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector = TIMER0_A0_vector
_interrupt void Timer0_A0_ISR (void)
#Elif defined (_GNU_)
void __attribute__((中断(TIMER0_A0_Vector)) Timer0_A0_ISR (void)
其他
错误编译器不受支持!
#endif

TA0CCR0 += bit_time;//将偏移添加到 TA0CCR0
flag=(TXByte & 0x01);
如果(flag==1)

(P4OUT |= TX_PIN);

其他

(P4OUT &=~TX_PIN);

TXByte = TXByte >> 1;
bitCount --;
if (bitCount=1)

TA0CCR0=0;
TA0CCTL0 &=~CCIE;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    P4.5不连接到任何定时器输出或 TA0.0功能。 您很可能希望使用 P1.6或 P2.3。 您从何处获取该示例? 您是否参考了 msp430g2xx3_ta_uart960.c 示例? 您应将其连接到 MSP430FR5969器件。

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

    forum.43oh.com/.../