打印

MSP430F5438在低功耗模式下没有办法通过串口接收唤醒

[复制链接]
2214|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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下定时器能够进入中断而串口进入不了。

相关帖子

沙发
orzding123|  楼主 | 2017-1-6 14:54 | 只看该作者
都会有什么原因会导致串口接收唤醒不管用,我这个初始化的函数有问题吗,求各位大神指点。

使用特权

评论回复
板凳
orzding123|  楼主 | 2017-1-6 15:42 | 只看该作者
补充一下,我发现我的程序里面各个低功耗模式似乎没有什么区别,比如LPM0和LPM4都会进入定时器中断,而我的定时器时钟设置的是SMCLK,有人知道是什么情况吗?

使用特权

评论回复
地板
usysm| | 2017-1-6 22:36 | 只看该作者
串口中断不能唤醒低功耗吗?

使用特权

评论回复
5
usysm| | 2017-1-6 22:44 | 只看该作者
还是不要进入LPM0了,功耗不会很高。

使用特权

评论回复
6
火山LF| | 2017-1-7 08:32 | 只看该作者
有的时候,并不是进入不了串口中断,而是你的定时器中断太频繁,所以就认为是定时器中断
你可以试一试,进入睡眠之前把定时器中断使能位清零,然后试试串口能不能唤醒MCU
模式肯定是有区别的,你看看规格书,哪种模式搭配什么样的唤醒动作
我没有用过i那个芯片,我用的是5969的,在5969芯片手册当中,在LPM3模式中,SMCLK是禁止的,你看看你的什么问题了,个人觉得是代码问题

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
orzding123 + 1 赞一个!
7
touser| | 2017-1-7 21:25 | 只看该作者
orzding123 发表于 2017-1-6 14:54
都会有什么原因会导致串口接收唤醒不管用,我这个初始化的函数有问题吗,求各位大神指点。 ...

不能唤醒是你的中断有问题吗?

使用特权

评论回复
8
touser| | 2017-1-7 21:31 | 只看该作者
进入中断之后应该是程序存在问题。

使用特权

评论回复
9
orzding123|  楼主 | 2017-1-9 11:48 | 只看该作者
火山LF 发表于 2017-1-7 08:32
有的时候,并不是进入不了串口中断,而是你的定时器中断太频繁,所以就认为是定时器中断
你可以试一试,进 ...

尝试将UCSCTL8寄存器清零后,定时器中断能够正常关闭,但是仍然没有办法利用串口进行唤醒,关闭了定时器的中断使能后也没有反应,还可能有其他原因导致吗?

使用特权

评论回复
10
火山LF| | 2017-1-9 11:51 | 只看该作者
orzding123 发表于 2017-1-9 11:48
尝试将UCSCTL8寄存器清零后,定时器中断能够正常关闭,但是仍然没有办法利用串口进行唤醒,关闭了定时器 ...

你在进入低功耗的时候,有没有开启串口的中断啊?全局使能中断有没有开启?

使用特权

评论回复
11
orzding123|  楼主 | 2017-1-9 12:07 | 只看该作者
usysm 发表于 2017-1-6 22:36
串口中断不能唤醒低功耗吗?

是啊,找不到原因,在正常运行时是能够进入串口中断的,但是进入低功耗了就不能了。

使用特权

评论回复
12
orzding123|  楼主 | 2017-1-9 12:08 | 只看该作者
火山LF 发表于 2017-1-9 11:51
你在进入低功耗的时候,有没有开启串口的中断啊?全局使能中断有没有开启? ...

开启了啊,定时器中断正常,就串口中断有问题

使用特权

评论回复
13
火山LF| | 2017-1-9 19:57 | 只看该作者
orzding123 发表于 2017-1-9 12:08
开启了啊,定时器中断正常,就串口中断有问题

如果确定开了中断然后不能唤醒的话,你看看你的芯片规格书,串口是否可以唤醒LPM3

使用特权

评论回复
14
wengh2016| | 2017-1-9 21:25 | 只看该作者
先在DEBUG中跑一下断点看看能不能进中断

使用特权

评论回复
15
wengh2016| | 2017-1-9 21:38 | 只看该作者
IO中断设置有误

使用特权

评论回复
16
dirtwillfly| | 2017-2-1 19:27 | 只看该作者
火山LF 发表于 2017-1-7 08:32
有的时候,并不是进入不了串口中断,而是你的定时器中断太频繁,所以就认为是定时器中断
你可以试一试,进 ...

这个表很全,我收藏了

使用特权

评论回复
17
backlugin| | 2017-2-1 21:00 | 只看该作者
那就不要进入低功耗模式

使用特权

评论回复
18
backlugin| | 2017-2-1 21:01 | 只看该作者
芯片进入低功耗应该资源节约不来多少吧。

使用特权

评论回复
19
usysm| | 2017-2-2 22:02 | 只看该作者
LPM3下定时器能够进入中断

使用特权

评论回复
20
usysm| | 2017-2-2 22:06 | 只看该作者
LPM3唤醒就可以。

使用特权

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

本版积分规则

1

主题

6

帖子

0

粉丝