我想把AD结果送上位机显示,,,但是串口发送和接收中断都打开就出问题,,哪个地方不好??

2020-02-08 12:17发布

interrupt void SCIRXINTA_ISR_m(void)     // SCI-B
{     
   
        static unsigned int RxBuf;
        PieCtrlRegs.PIEACK.bit.ACK9 = 1;
        RxBuf=SciaRegs.SCIRXBUF.all;
        CHUAN=CHUAN+10;
        switch(RxBuf)
        {
        case 0:  //增加输入电压百分比
                P=P+0.1;
                break;
        case 1:         //运行
                P=P-0.1;
                break;



        }
        EINT;
}

interrupt void SCITXINTA_ISR_m(void)     // SCI-B
{
PieCtrlRegs.PIEACK.bit.ACK9 = 1;

SciaRegs.SCITXBUF=0x12fe;

EINT;
}

程序如上,,只打开接收或者只打开发送中断就没问题,,,两个一起开,,发送可以 ,,MCU的接收就不起作用了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
19BUS
1楼-- · 2020-02-09 07:23
刚才实验了 ,,非要把TX中断搞掉,,RX才气作用,,而且我的 MCU    TX的 要触发非要 SciaRegs.SCITXBUF=0x000f这样初始化;这句话,,,如果不屏蔽,,,RX也不气作用
bbsniua
2楼-- · 2020-02-09 08:54
PIC?
我的印象中PIC的中断入口只有一个,要处理多中断就要查询下,
比如用if语句判断后对应处理某个中断,排在最前面的就是最先处理的,
还有那个波特率就那么点也叫高?
我弄过接近1M的(可以搜我的帖子),
主要问题在于你处理中断的方法不对.

一周热门 更多>