历史上的今天
返回首页

历史上的今天

今天是:2025年02月12日(星期三)

正在发生

2020年02月12日 | msp430串口接收调试

2020-02-12 来源:eefocus

串口调试出错 


串口接收配置需要注意的是开启总中断( __enable_interrupt(); ),不能仅开启串口接收中断。


#include

//**********************************************

//RS485芯片方向控制

//***********************************************

void set_rs485_dir(char tx_rx)

{ //1---发送,0接收

 

  if (tx_rx==1)

  {

    P9OUT|=(BIT6+BIT7);

  }

  else

  {

    P9OUT&=~(BIT6+BIT7);

  }

  P9DIR|=(BIT6+BIT7);

}

 

void delay(char num)

{

  while(num--);

}

 

int main(void)

{

  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

 

  //串口2 初始化

  P9SEL|= BIT4+BIT5;      //对于P5 6,7为模块功能

  P9DIR|=BIT4;

  P9DIR&=~BIT5;

  UCA2CTL1 |= UCSWRST;                      // **Put state machine in reset**

  UCA2CTL1 |= UCSSEL_2;                     // SMCLK

  UCA2BR0 = 109;                             

  UCA2BR1 = 0;                             

  UCA2MCTL |= UCBRS_1 + UCBRF_0;            // Modulation UCBRSx=1, UCBRFx=0

  UCA2CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**

  UCA2IE |= UCRXIE;                         // Enable USCI_A0 RX interrupt

  

  __enable_interrupt();//容易忽略

  

     set_rs485_dir(1);//发送

     delay(3000);

     while (!(UCA2IFG&UCTXIFG));             // USCI_A2 TX buffer ready?

     UCA2TXBUF = 0x55;                  // TX -> RXed character

     delay(3000);

     set_rs485_dir(0);//接收

     delay(3000);

     while(1)

     {

       delay(2000);

     }

}

 

#pragma vector=USCI_A2_VECTOR

__interrupt void USCI_A2_ISR(void)

{

  switch(__even_in_range(UCA2IV,4))

    {

       case 0:break;                             // Vector 0 - no interrupt

       case 2:                                   // Vector 2 - RXIFG

       set_rs485_dir(1);//发送

       delay(30);

       while (!(UCA2IFG&UCTXIFG));               // USCI_A0 TX buffer ready?

       UCA2TXBUF = UCA2RXBUF;                    // TX -> RXed character

       set_rs485_dir(0);//接收

       delay(30);

       break;

       case 4:break;                             // Vector 4 - TXIFG

       default: break;

    }

}

推荐阅读

史海拾趣

博众电气(BOZHONG ELECTRIC)公司的发展小趣事

博众电气自创立之初,就明确了自己的市场定位和发展方向。作为一家致力于成为一站式电子物料供应企业的公司,博众电气从一开始就注重技术研发和产品质量。公司创始人凭借对电子行业的深刻理解和敏锐的市场洞察力,为博众电气奠定了坚实的基础。

在初创期,博众电气通过引进国内外先进的生产设备和检测设备,不断提升产品的性能和质量。同时,公司还注重与国内外知名同行的技术交流和协作,积极吸收和借鉴先进的生产和管理经验。这些举措使得博众电气在激烈的市场竞争中逐渐脱颖而出。

Dialog Semiconductor(戴乐格半导体)公司的发展小趣事

Dialog Semiconductor一直专注于能源管理领域,致力于提供高效的电源管理解决方案。公司推出了多种高效的电源管理芯片,这些芯片能够显著延长电池寿命并提高设备效率。特别是在移动设备领域,Dialog Semiconductor的电源管理芯片被广泛应用于智能手机、平板电脑等设备中,为用户提供了更长的使用时间和更好的使用体验。

Elpaq公司的发展小趣事
EWC Controls公司的发展小趣事

EWC Controls公司始终将产品质量视为企业的生命线。公司建立了一套严格的质量管理体系和检测流程,确保每一台产品都符合高标准的质量要求。同时,公司还不断追求卓越的品质和服务,通过持续改进和创新提升产品的性能和可靠性。这种质量为本、追求卓越的理念使得EWC Controls公司的产品赢得了客户的信任和好评。

台湾富致(FUZETEC)公司的发展小趣事

自1983年Futaba的VFD产品被福特汽车公司采用后,其在美国三大汽车厂的市场占有率迅速达到100%。这一成就不仅证明了Futaba VFD产品在汽车行业的卓越性能和广泛应用,还推动了其在全球汽车市场上的快速扩张。VFD的抗震性能、良好的温差适应性以及高可靠性,使其在汽车仪表盘和抬头显示器等关键部件中扮演了重要角色。随着新能源汽车的兴起,Futaba的VFD技术也进一步适应市场需求,为新能源汽车提供了更加先进的显示解决方案。

ENSIGN公司的发展小趣事

ENSIGN在资本市场上的表现也备受关注。近年来,ENSIGN的股价稳步上涨,市值不断扩大。多家投资机构对ENSIGN的前景表示乐观,并上调了其目标股价。ENSIGN凭借其稳健的财务表现、强大的研发能力和广阔的市场前景,吸引了众多投资者的关注。

这些故事概述了ENSIGN在电子行业中的发展历程和多元化战略。通过不断创新和拓展业务领域,ENSIGN逐渐成为了电子行业中备受瞩目的企业之一。

问答坊 | AI 解惑

【EEWORLD】救火车和你一起学ARM系列活动之六

IO引脚配置和输入输出实验 在前几个实验中,我们一直在研究ARM核心东西。本次实验,我们要把最基本的外设----IO引脚学习一下。学习中要注意的几个问题:1、定时器时钟源的倍频分频。2、理解匹配及如何产生中断。3、产生中断后,如何跳转到中断函数 ...…

查看全部问答>

求助椭圆滤波器

最近在看DDS,好多资料都采用的是椭圆滤波器,我也想做一个来试试,貌似椭圆滤波器的要求很高,请问做过的大虾们我应该怎样做一个性能好的滤波器呢?采用别的简单的滤波器可以实现么?…

查看全部问答>

大家帮我看看这个异常是怎么产生的?

是SPI初始化代码,也不是每次都会有异常,偶尔重新烧写NK的时候才出现。奇怪这如果错误了,怎么不是每次都出现! 定义: typedef struct __SPIRX_BUFFER_INFO {         ULONG        Read;  &nbs ...…

查看全部问答>

如何判断仪表返回的数据有多少位?

通过串口发送指令,不知道返回的数据有多少位?难道末位有特殊的结束符吗?…

查看全部问答>

TVP5150求助

大家设在6410上调试过TVP5150吗?寄存器应该怎么配置?…

查看全部问答>

请教 编写uart在2410板上运行出现的错误

下面是原程序: #include #include #include #include #include #include #include #define UART_ULCON1     (*(volatile unsigned *)0x50004000) //UART 1 Line control #define UART_UCON1  &nb ...…

查看全部问答>

送分!

坐沙发者即送分!…

查看全部问答>

请问谁有F2812的 on-chip flash programmer

请问谁有F2812的 on-chip flash programmer 我用的CCS 是CCS3.1 不知道可以从哪下载 有那个插件的朋友能不能飞一个给我   我的邮箱: shasha_zhu@yahoo.com.cn…

查看全部问答>

开关电源适配器12V 2A是个什么意思?

我的理解是,电源输出电压恒定为12V,输出电流视负载大小而定,从0到2A,不知道有没有问题? 如果是这样理解,那么能带的最大负载是12V/2A=6Ω,小于6Ω的负载是否会产生过流保护?如果没有过流保护电路,是否烧电源? 开关电源的过压保 ...…

查看全部问答>

LCD后面写着TS1640,这是什么意思?

本帖最后由 paulhyde 于 2014-9-15 09:04 编辑    …

查看全部问答>