msp430实现串口计算器

本文介绍了一个使用Msp430单片机实现的串口计算器,通过串口通信接收表达式并进行解析计算。利用两个栈,一个存储运算数,一个存储运算符,根据运算符优先级进行计算。在接收到'='时,循环弹出栈内元素进行二元运算,直至栈空,最终结果存于NUM栈顶。
摘要由CSDN通过智能技术生成

工程下载链接:https://download.csdn.net/download/qq_45467083/12100424

本次实验实现了基于串口通信的表达式解析与计算功能,如下图所示,向单片机输入表达式:9*9*8 +9/3*6-3*8 * (1 * 5+4 * (2-2)+5)/(3-1 * 9)=;(空格会自动忽略); 返回计算结果:706,等等。在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
实验配置了一个波特率为115200的串口UART,在接受缓存满和发送缓存空的时候都会产生中断。在接受中断中调用oneCharProcess(revChar_temp);处理接受字符,在发送中断中发送待发送字符串。

中断服务程序如下:

/* ======== USCI A0/B0 TX Interrupt Handler Generation ======== */
#pragma vector = USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void){
   
    switch(__even_in_range(UCA1IV,4)){
   //user guide:36.4.14 UCAxIV Register
        case 0:break;
        case 2://接受数据
            revChar_temp = UCA1RXBUF;
            oneCharProcess(revChar_temp);
            break;                   //vector 2 : RXIFG
        case 4://发送数据
            if(sendstr[str_index] != '\0'){
   
                UCA1TXBUF = sendstr[str_index++];
            }else{
   
                str_index = 0;
            }
            break;                    //vector 4 : TXIFG
        default: break;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朽木白露

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值