大家好,我是小小的電子之路,這是我的第10篇原創(chuàng)文章,很高興與大家一起分享~
原文出自微信公眾號(hào)【小小的電子之路】
前段時(shí)間寫了幾行代碼,其中有一部分是關(guān)于串口接收的,仿真調(diào)試是沒有問題的,但是下載之后就出問題了,不過問題并沒有出現(xiàn)在代碼上,而是在上位機(jī)發(fā)送的數(shù)據(jù)上,這兩天突然找到了問題所在,然后就發(fā)現(xiàn)這個(gè)問題并不能稱作是一個(gè)問題。下面就來簡單描述一下這個(gè)現(xiàn)象。
1、現(xiàn)象描述
使用串口調(diào)試助手通過USB轉(zhuǎn)TTL向FPGA發(fā)送數(shù)據(jù)0X55時(shí),在停止位發(fā)送完成之后,USB轉(zhuǎn)TTL的輸出并不是持續(xù)的高電平(即空閑狀態(tài)),而是仍存在一定時(shí)間的電平變化,之后才是持續(xù)的高電平,如下圖所示。
2、問題所在
觀察一下停止位之后的數(shù)據(jù),其二進(jìn)制表示為0101100001、0010100001,去除兩端的起始位和停止位,發(fā)現(xiàn)其十六進(jìn)制表示為0X0D、0X0A,這正是換行符所表示的數(shù)據(jù),然后看了一下串口調(diào)試助手的設(shè)置,果然,發(fā)送新行沒有取消勾選!
下圖是取消勾選發(fā)送新行時(shí)的數(shù)據(jù),可以看出,停止位之后為持續(xù)的高電平,數(shù)據(jù)正常。
以上就是本次分享的全部內(nèi)容,謝謝大家!