• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > MSP430F149单片机无法进入USART接收中断

MSP430F149单片机无法进入USART接收中断

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了msp430f149中断,msp430f149外部中断,msp430f149单片机,msp430f149单片机介绍,usart空闲中断等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: MSP430F149单片机无法进入USART接收中断
描述:

本帖最后由 xikangsoon 于 2017-03-24 13:59:33 编辑

MSP430F149单片机;USART数据接收中断

MSP430F149单片机无法进入USART接收中断,当用串口调试助手向单片机发送数据时。不能进入中断处理函数中,出现的现象就是运行的程序挂掉了。求大神解答。
以下是我的程序。串口发送功能是好的,串口工具可以接收到数据。
#include <msp430x14x.h>
typedef unsigned char uchar;
typedef unsigned int uint;
static uchar pstr = 'A';
void Putchar(uchar c)
{
    while((IFG1 & UTXIFG0) == 0);
    TXBUF0 = c;
}
void Delays(void)
{
    uchar i=20;
    uint j;
    while(i--)
    {
            j=2000;
            while(j--);
    }
}
void main(void) {
    WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
    ME1 |= UTXE0 + URXE0;                     // 使能USART0收发
    IE1 |= URXIE0;                            // 使能接收中断
    UCTL0 |= CHAR;                            // 8-bit character
    UTCTL0 |= SSEL0;                          // UCLK = ACLK
    UBR00 = 0x0D;                             // 32k/2400 - 13.65
    UBR10 = 0x00;                             //
    UMCTL0 = 0x6B;                            // Modulation
    UCTL0 &= ~SWRST;                          // 初始化UART0状态机
    P3SEL |= 0x30;                            // P3.4,5选择为UART收发端口
    P3DIR |= 0x10;
    _EINT();
    Putchar(pstr);
    Putchar('\n');
    for(;;)
    {
        Delays();
        Delays();
     }
}
#pragma vector = USART0RX_VECTOR
__interrupt void usart0_rx(void)
{
    uchar c = 0;
    while((IFG1 & UTXIFG0) == 0);
    TXBUF0 = RXBUF0;
    c ++ ;
}
    在用仿真器调试的时候,我用串口调试助手向开发板发送一个字节的数据以后,系统随即死机。开发板上显示调试状态的灯也不亮了。仿真器上Power灯也灭掉了。


解决方案1:

第二,你的主要问题应该是中断设置不对
你的#pragma vector = USART0RX_VECTOR,按照你设置的寄存器来看是用的UART方式
应该是 #pragma vector = UART0RX_VECTOR,
当使用SPI或者I2C的时候才是USART0RX_VECTOR

解决方案2:


    UCTL0 &= ~SWRST;                          // 初始化UART0状态机
    P3SEL |= 0x30;                            // P3.4,5选择为UART收发端口
    P3DIR |= 0x10;
    _EINT();
注意此处,把刚开始的中断放到初始化状态机之后试一下,设置SWRST的时候会影响一些状态位和控制位,应该在SWRST=1时设置串口,再将SWRST置0,如果需要中断,再设置中断,按照这样的顺序初始化,你试一下,不保证能解决你的问题


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MSP430F149单片机无法进入USART接收中断

相关文章

  • 2017-06-05 驱动中怎么响应其他设备的中断??
  • 2017-06-05 am5728音频加载
  • 2017-06-05 如何去掉usb设备时,弹出的对话框,请高手指点
  • 2017-06-05 WEB服务器照书上打的程序,有点问题,大家帮我看看吧
  • 2017-06-05 DNSCrypt的工作原理是什么?
  • 2017-06-05 坐标云台控制(嵌入式或者x86
  • 2017-06-05 quartusII怎样知道破解成功
  • 2017-06-17嵌入式系统设计的3个层次
  • 2017-06-05 PC与FPGA通过以太网连接
  • 2017-06-05 请问一下,有什么版本的linux里的fdisk可以正确的识别DOC盘的吗?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 请高手帮忙,怎样提高这个SQL语句的运行速度(建立索引)
    • 设计了一块板子用了AMS1117电源芯片输入5V,输出电压只有00几V,求大神帮忙解决
    • 设备对象与具体的物理设备关系?
    • 想在虚拟机安装MACOS,如何找到MACOS的IOS文件?
    • 请教!!!!!!!!!!!
    • 高人求教,SPI总线上接1个spi可以工作,多个spi设备不能正常工作
    • XilinxNetFPGA-1G-CMLKintex-7FPGA板子做视频传输系统,求大神指点!!!
    • 求虚拟串口源码
    • USB+ARM开发的小东东,请各路高手给点思路!跪谢!
    • linux文件读写open()函数的返回值

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有