社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 精华区
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
搜索
查看: 547|回复: 1

[讨论] MSP430F5438低功耗下通过串口接收唤醒问题

[复制链接]

2318

TA的帖子

19

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-2-21 08:41:58 | 显示全部楼层 |阅读模式
有什么原因会导致串口接收唤醒不管用,我这个初始化的函数有问题吗,求各位大神指点。
程序里面各个低功耗模式似乎没有什么区别,比如LPM0和LPM4都会进入定时器中断,而定时器时钟设置的是SMCLK,有人知道是什么情况吗?


void Init_UART3_CFG(unsigned long ulBaudRate)
{
  unsigned  int n=0;//
  float x=0.0;
  UART3_SEL    |= TXD + RXD                                      ; // 选择引脚功能
  UART3_DIR    |= TXD                                            ; // 选择引脚功能
  put_UART3_UCSWRST(1)                                           ; // Enabled. USCI logic held in reset state.
  put_UART3_UCSSEL(UCSSEL_SMCLK)                                  ; //
  n=UART3_ACLK_FOSC/ulBaudRate;
  if (n<16)   
  {
    put_UART3_UCOS16(0);            //低频率模式
    put_UART3_UCBRF(0);             //小数分频配置            
    x=1.0*UART3_ACLK_FOSC/ulBaudRate;
    n=UART3_ACLK_FOSC/ulBaudRate;
    put_UART3_UC0BR1(n/256);         //波特率
    put_UART3_UC0BR0(n%256);
    x=x-n;
    n=(int)(x*8+0.5);
    put_UART3_UCBRS(n);             //小数分频配置
  }
  else  
  {
    put_UART3_UCOS16(1);            //高频率模式
    x=1.0*UART3_ACLK_FOSC/ulBaudRate/16;
    n=(int)x;                        // n=UART3_ACLK_FOSC/ulBaudRate/16
    put_UART3_UC0BR1(n/256);         //波特率
    put_UART3_UC0BR0(n%256);
    x=x-n;
    n=(int)(x*16+0.5);
    put_UART3_UCBRF(n);             //小数分频配置            
    put_UART3_UCBRS(0);             //小数分频配置            
  }
  put_UART3_UC7BIT(0)                                             ;//默认,8位数据传输
  put_UART3_UCPEN(0)                                              ;//无校验
  put_UART3_UCSWRST(0)                                            ;// USCI reset released for operation.
  put_UART3_UCRXIE(1)                                             ;// Receive interrupt enable
  put_UART3_UCTXIE(1)                                             ;// Receive interrupt enable
  RS485_A3IN;
}
这个是串口初始化,主程序就是一段程序后进入低功耗,然后如果有串口数据就进行唤醒,但是为什么我的程序在低功耗LPM0,LPM3下进入不了串口中断,在正常运行的时候是可以的,另外有一个问题就是同样设置都是SMCLK,为什么LPM3下定时器能够进入中断而串口进入不了。

此帖出自MSP430论坛

回复

使用道具 举报

389

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-2-21 14:04:27 | 显示全部楼层
每个低功耗模式都是有区别的,看下图: 例如不同的低功耗模式其对应的唤醒动作不一样,这就需要你自己去看芯片手册了。
在进入低功耗的时候,注意要打开全局中断
852.PNG


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-9-23 06:43 , Processed in 0.209226 second(s), 17 queries , Redis On.

快速回复 返回顶部 返回列表