找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3474|回復: 2
打印 上一主題 下一主題
收起左側(cè)

串口中斷的學習

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:74985 發(fā)表于 2015-3-21 03:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
昨天寫串口中斷的程序,一直沒調(diào)好,才發(fā)現(xiàn)是串口中斷里的函數(shù)干的事情太多的原因。
我原來的程序:
void uart()interrupt 4
{
        if(RI)
                {
                        global_uart_table[global_i]=SBUF;
                         assign_gsm_net();
                        assign_gprs_table();
                        compare_gsm_net_sign();  //判斷是否獲取網(wǎng)絡時間
                        compare_gprs_net_sign();//判斷是否獲取GPRS服務器時間
                        assign_usb_table();                       
                        assign_fn_table();
                        compare_usb_sign(); //判斷是否收到幀結束符
                        compare_fn_sign();   //判斷電腦添加用戶是否結束
                        global_i++;
                        if(global_i>MAX_UART_TABLE_NUMBER-1)
                                {
                                        global_i=0;       
                                }
                        RI=0;
                }
}
發(fā)現(xiàn)這個程序一直不安自己想的走,后來發(fā)現(xiàn)是我在中斷里做的事情太多了,因為我設定的波特率為115200.如果我在中斷了干活的時間太長的話,那下一次中斷來時我還沒有退出中斷,那么它的信息我將丟失掉。這就是原因的所在。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:74985 發(fā)表于 2015-3-21 03:04 | 只看該作者
今天寫程序碰見一個奇怪的問題,我用到單片機的串口,在配置的時候使能了串口中斷,但是我沒有寫相應的中斷函數(shù),編譯程序沒錯誤,但是下載到板子上的時候程序死在了開頭,后來我寫上中斷函數(shù),在中斷函數(shù)里隨便寫了一些代碼,程序能正常執(zhí)行,我把串口使能關斷,不寫串口中斷,程序也能正常執(zhí)行。
回復

使用道具 舉報

板凳
ID:75468 發(fā)表于 2015-3-27 15:58 | 只看該作者
謝謝樓主的分享,這都是經(jīng)驗。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表