打印
[MCU]

总是返回电脑发送给单片机的数据

[复制链接]
1470|35
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dengdc|  楼主 | 2019-12-13 20:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dengdc|  楼主 | 2019-12-13 20:12 | 只看该作者

#include  <msp430FG437.h>
unsigned char data = 'a';
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  FLL_CTL0 |= XCAP18PF;                     // Configure load caps
  P2SEL |= 0x30;                            // P2.4,5 = USART0 TXD/RXD
  ME1 |= UTXE0 + URXE0;                     // Enable USART0 TXD/RXD
  UCTL0 |= CHAR;                            // 8-bit character
  UTCTL0 |= SSEL1;                          // UCLK = SMCLK
  UBR00 = 0x6D;                             // 1MHz 9600
  UBR10 = 0x00;                             //
  UMCTL0 = 0x03;                            // Modulation
  UCTL0 &= ~SWRST;                          // Initialize USART state machine
  IE1 |= URXIE0;                            // Enable USART0 RX interrupt
  P2DIR |= 0x10;                            // P2.4 output direction
  _EINT();
  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
}

#pragma vector=USART0RX_VECTOR
__interrupt void usart0_rx (void)
{
  while (!(IFG1 & UTXIFG0));                // USART0 TX buffer ready?
  //TXBUF0 = RXBUF0;                          // RXBUF0 to TXBUF0
  TXBUF0 = data;
}

使用特权

评论回复
板凳
heweibig| | 2019-12-13 20:14 | 只看该作者

然后呢

使用特权

评论回复
地板
dengdc|  楼主 | 2019-12-13 20:17 | 只看该作者
接着我将单片机发送数据的指令TXBUF=data取消了,结果还是会返回发给单片机的数据。

使用特权

评论回复
5
wuhany| | 2019-12-13 20:20 | 只看该作者

用万用电表测了吗

使用特权

评论回复
6
dengdc|  楼主 | 2019-12-13 20:25 | 只看该作者
嗯,发送跟接收管脚之间没有短路。请问这是什么问题

使用特权

评论回复
7
zhaoxqi| | 2019-12-13 20:30 | 只看该作者
是不是你的串口中断的问题

使用特权

评论回复
8
午夜粪车| | 2019-12-13 20:33 | 只看该作者
TXBUF0 = data; 这个又不是返回了吗

使用特权

评论回复
9
spark周| | 2019-12-13 20:35 | 只看该作者
没有判断data数据是什么吧。

使用特权

评论回复
10
huangchui| | 2019-12-13 20:38 | 只看该作者
屏蔽掉中断。

使用特权

评论回复
11
zhaoxqi| | 2019-12-13 20:40 | 只看该作者
去掉这个发送的代码。

使用特权

评论回复
12
wyjie| | 2019-12-13 20:44 | 只看该作者
#pragma vector=USART0RX_VECTOR
__interrupt void usart0_rx (void)
{
  while (!(IFG1 & UTXIFG0));                // USART0 TX buffer ready?
  //TXBUF0 = RXBUF0;                          // RXBUF0 to TXBUF0

}

使用特权

评论回复
13
zhanghqi| | 2019-12-13 20:48 | 只看该作者

这个程序都肯定执行了。

使用特权

评论回复
14
wyjie| | 2019-12-13 20:50 | 只看该作者
TXBUF0 = data; 这个有发送了。

使用特权

评论回复
15
zhaoxqi| | 2019-12-13 20:53 | 只看该作者
在哪里定义的data数据?

使用特权

评论回复
16
wuhany| | 2019-12-13 20:56 | 只看该作者

去掉返回函数,

使用特权

评论回复
17
shimx| | 2019-12-13 21:01 | 只看该作者
这个判断数据了吗?

使用特权

评论回复
18
heweibig| | 2019-12-13 21:04 | 只看该作者
是每次都是返回的‘a’吗?

使用特权

评论回复
19
jiahy| | 2019-12-13 21:07 | 只看该作者
你怎么定义的数据的?

使用特权

评论回复
20
shimx| | 2019-12-13 21:09 | 只看该作者
TXBUF0 =‘a’;这样行不行?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

892

主题

13885

帖子

7

粉丝