MSP430系列单片机串口中断无法进入问题记录

使用MSP430F5529单片机串口时,发现数据可以正常发送,但中断始终无法进入。

查询资料了解到:串口初始化时,模块初始化的过程顺序与SWRST的值有关

SWRST为串口复位软件控制位。一次正确的模块初始化过程应该是:先在SWRST = 1时设置串口,设置完串口后再设置SWRST = 0,最后如需中断,再设置中断使能。

操作寄存器修改SWRST: 

    UCA0CTL1 |= UCSWRST;    /*复位USCI_Ax*/
    ......
    UCA0CTL1 &= ~UCSWRST;   /*清除复位位,使能UART*/

使用库函数修改SWRST:

void USCI_A_UART_disable (uint16_t baseAddress)
{
    //Set the UCSWRST bit to disable the USCI Module
    HWREG8(baseAddress + OFS_UCAxCTL1) |= UCSWRST;
}

void USCI_A_UART_enable (uint16_t baseAddress)
{
    //Reset the UCSWRST bit to enable the USCI Module
    HWREG8(baseAddress + OFS_UCAxCTL1) &= ~(UCSWRST);
}

将串口中断使能放在串口初始化之前,会导致无法进入串口中断。此前使用其他单片机,无SWRST位,不曾遇到该问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值