久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4040|回復: 14
收起左側

51單片機怎樣對從串口接收到的數學運算式進行運算

  [復制鏈接]
ID:110648 發表于 2016-3-24 21:56 | 顯示全部樓層 |閱讀模式
51中單片機怎樣對從串口接收到的數學運算式進行運算,并把運算結果再輸出到串口?
回復

使用道具 舉報

ID:110666 發表于 2016-3-25 00:05 | 顯示全部樓層
通過程序控制。
回復

使用道具 舉報

ID:97438 發表于 2016-3-25 11:08 | 顯示全部樓層
什么數學運算式?如果傳過來的是字符串“1+1”這樣的話,你需要自己解釋這個字符串,再做運算

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:110694 發表于 2016-3-25 11:21 | 顯示全部樓層
一般單片機收到的數據是根據你定的協議來的,你的傳輸協議應該規定了哪個字符是什么意思。如果像你說的串口收到數學運算式,那么你收到數據后對數據一個一個解析出來再運算就可以了。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:110694 發表于 2016-3-25 11:22 | 顯示全部樓層
算出來結果以后再通過串口發出去啊

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:110715 發表于 2016-3-25 13:09 | 顯示全部樓層
我也想知道,求解答
回復

使用道具 舉報

ID:110648 發表于 2016-3-25 15:18 | 顯示全部樓層
luoluoluo136 發表于 2016-3-25 11:08
什么數學運算式?如果傳過來的是字符串“1+1”這樣的話,你需要自己解釋這個字符串,再做運算

就是像(2+3)*3這樣計算器的功能,具體怎么解釋

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:110648 發表于 2016-3-25 15:20 | 顯示全部樓層
129 發表于 2016-3-25 11:21
一般單片機收到的數據是根據你定的協議來的,你的傳輸協議應該規定了哪個字符是什么意思。如果像你說的串口 ...

怎樣對字符進行解析啊

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:97438 發表于 2016-3-26 16:11 | 顯示全部樓層
先在字符串中找運算符號,然后運算符號之間的就是數值了,然后就是字符串轉數值,再進行運算

評分

參與人數 1黑幣 +20 收起 理由
admin + 20

查看全部評分

回復

使用道具 舉報

ID:114742 發表于 2016-5-5 19:16 | 顯示全部樓層
luoluoluo136 發表于 2016-3-26 16:11
先在字符串中找運算符號,然后運算符號之間的就是數值了,然后就是字符串轉數值,再進行運算

可是串口接收的時候會出現數據不完整的情況呀比如123456可能會顯示12356少一些數據怎么辦呀

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:97438 發表于 2016-5-6 08:45 | 顯示全部樓層
3263065307 發表于 2016-5-5 19:16
可是串口接收的時候會出現數據不完整的情況呀比如123456可能會顯示12356少一些數據怎么辦呀

這個就是你串口處理的問題了額。。。數據基礎問題沒有解決好。。。建議你先去做一下串口收發的程序,調通了再去搞運算

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:114742 發表于 2016-5-7 20:45 | 顯示全部樓層
luoluoluo136 發表于 2016-5-6 08:45
這個就是你串口處理的問題了額。。。數據基礎問題沒有解決好。。。建議你先去做一下串口收發的程序,調通 ...

我感覺我的數據處理沒問題呀,就是會出現那種現象你看看我的代碼
void uart() interrupt 4
{
           unsigned char dat;
           if(RI)
          {
                   dat = SBUF;            //接收到的數據暫存在dat中
                  datebuf[ i]=dat;
                  SBUF = dat;                //接收到的數據發送給PC機
                  while(TI==0);        //等待發送完成,發送使用的查詢方式
                  i++;
                   TI = 0;                        //清除發送結束標志
                  RI = 0;                        //清除接收中斷標志
          }
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:910922 發表于 2021-4-23 17:01 | 顯示全部樓層
luoluoluo136 發表于 2016-3-25 11:08
什么數學運算式?如果傳過來的是字符串“1+1”這樣的話,你需要自己解釋這個字符串,再做運算

請問解釋完字符串后,如何計算數據得到結果,并輸出
回復

使用道具 舉報

ID:911163 發表于 2021-4-24 07:46 | 顯示全部樓層
51單片機的串口,是個全雙工的串口,發送數據的同時,還可以接收數據。
當串行發送完畢后,將在標志位 TI 置 1,同樣,當收到了數據后,也會在 RI 置 1。
無論 RI 或 TI 出現了 1,只要串口中斷處于開放狀態,單片機都會進入串口中斷處理程序。
在中斷程序中,要區分出來究竟是發送引起的中斷,還是接收引起的中斷,然后分別進行處理。
看到過一些書籍和文章,在串口收、發數據的處理方法上,很多人都有不妥之處。
接收數據時,基本上都是使用“中斷方式”,這是正確合理的。
即:每當收到一個新數據,就在中斷函數中,把 RI 清零,并用一個變量,通知主函數,收到了新數據。
發送數據時,很多的程序都是使用的“查詢方式”,就是執行 while(TI ==0); 這樣的語句來等待發送完畢。
這時,處理不好的話,就可能帶來問題。
看了一些網友編寫的程序,發現有如下幾條容易出錯:
1.有人在發送數據之前,先關閉了串口中斷!等待發送完畢后,再打開串口中斷。
這樣,在發送數據的等待期間內,如果收到了數據,將不能進入中斷函數,也就不會保存的這個新收到的數據。
這種處理方法,就會遺漏收到的數據。
2.有人在發送數據之前,并沒有關閉串口中斷,當 TI = 1 時,是可以進入中斷程序的。
但是,卻在中斷函數中,將 TI 清零!
這樣,在主函數中的while(TI ==0);,將永遠等不到發送結束的標志。
3.還有人在中斷程序中,并沒有區分中斷的來源,反而讓發送引起的中斷,執行了接收中斷的程序。
對此,做而論道發表自己常用的方法:
接收數據時,使用“中斷方式”,清除 RI 后,用一個變量通知主函數,收到新數據。
發送數據時,也用“中斷方式”,清除 TI 后,用另一個變量通知主函數,數據發送完畢。
這樣一來,收、發兩者基本一致,編寫程序也很規范、易懂。
更重要的是,主函數中,不用在那兒死等發送完畢,可以有更多的時間查看其它的標志。
回復

使用道具 舉報

ID:909161 發表于 2021-4-24 11:14 | 顯示全部樓層
以查詢為例,簡單來說,就是利用軟件(代碼)去判斷、查詢TI和RI標志位的狀態,然后依據其狀態去執行各種操作。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久免费毛片 | 国产日韩欧美一区二区 | 亚洲va在线va天堂va狼色在线 | 91久久精品一区二区三区 | 中文字幕第一页在线 | 久久久国产一区二区三区 | 国色天香综合网 | 欧洲精品在线观看 | 欧美一极视频 | 日本精品一区二区三区视频 | 一区二区三区欧美在线 | 一级视频黄色 | 日韩中文字幕在线播放 | 亚洲成人av在线播放 | 国产成人精品一区二区 | 一级片片 | 国产精品久久久久久久久久久免费看 | 91在线网| 九九久久精品视频 | 国产精品亚洲成在人线 | 中文字幕精品视频 | 51ⅴ精品国产91久久久久久 | 国产精品视频免费看 | 91网站在线看 | 欧美激情视频一区二区三区免费 | 美女天堂在线 | 久久99这里只有精品 | 黄色三级免费 | 国产成人午夜精品影院游乐网 | 日韩a视频| 欧美日韩精品一区二区三区四区 | 国产一区二区三区久久久久久久久 | 免费国产一区二区视频 | 在线免费观看黄a | 91精品国产91综合久久蜜臀 | 日韩欧美综合在线视频 | 四虎在线播放 | 亚洲成人中文字幕 | 中文字幕在线第二页 | 美女视频三区 | 午夜三级在线观看 |