❶ Keil調試串口助手,單片機無法接收上位機發送的數據;但可以發送 PC發送數據時,單片機RX波形幅值太小
試試這樣:
void UART() interrupt 4
{
//ES=0;//關中斷//不需要關中斷
if (RI)
{RI=0;//接收引起中斷
rxbuf[n]=SBUF;
//while(!RI);//OK or NG???//刪除這句
n++;
}
if(n==7) {rx_fla=1;n=0;}//注意重置n
//ES=1;
}
❷ 我應該如何用示波器來查看單片機串口發送來的數據呢示波器應如何調節呢
如果可以做到連續發送相同的數據,可以調節時基(X軸)寬度到一個合適的位置。觀察時記住單片機TXD輸出端電平從高到低的一個跳變表示信息傳輸開始,然後根據波特率計算一下時長,對應在示波器屏幕上根據時基的寬度去觀察信號。可以使用不斷發送數據0X55(0101 0101),然後中間加點延時時間,以9600波特率為例,則一個位元組大約需要1ms,可以加200us的延時,這樣可以區分每個位元組的信息),這樣,第一個跳變後的0.1ms長度就是起始位,第二個0.1ms長度應該是0,第三個0.1ms長度應該是1......。
以上就是使用示波器觀察的基本方法,實際應用當中,由於數據的不規則性,可能需要使用有記憶功能的示波器,然後採用下降沿觸發的方法得到需要的波形。
❸ 單片機串口輸出數據時,TX有波形變化,串口助手卻沒有輸出
1.
看波特率是否匹配;
2.
看顯示的是十六進制還是字元;
3.
看是否有校驗位;
4.
數據位是8還是9;
5.
看連線是否松動,脫焊;
希望可以幫到你
❹ 怎麼將串口發來的數據繪成波形和3D圖像
Visual_Basic與_RS-232_串列通信控制
里有 常式
❺ 單片機,串口調試,射頻發射器
樓主的232協議是TTL邏輯的還是RS-232電平的,最好拿示波器觀察一下
232電平或者說串口電平,有的甚至說計算機電平,所有的這些說法,指得都是計算機9針串口 (RS232)得電平,採用負邏輯,
-15v ~ -3v 代表1
+3v ~ +15v 代表0
而TTL邏輯的電平是
+5V代表1,
0V 代表0
以前調試GPS的時候就遇到類似的問題
另外,波特率的不匹配也有可能造成上面的現象
❻ 單片機串口通信原理
非同步通信
固定波特率下傳送0,1信號
就是在規定的時間間隔內傳送0.1數據
❼ 怎麼用單片機產生PWM波形
單片機產生PWM波形波形的方法:
主要是採用軟體控制,控制2個時間。
具體就是由單片機的引腳輸出PWM波形;單片機引腳
如P1.7
控制其輸出高電平的時間T1
和輸出低電平的時間T2。
PWM波形的周期T=T1+T2
PWM波形的占空比=(100T1/T)%
PWM波形實現的演算法:
1
根據PWM波形的頻率f,計算出PWM波形的周期T=1/f;
2
根據PWM波形的占空比
計算出高電平時間
T1=占空比×T
3
計算出低電平時間
T2=T-T1
4
按上述時間去控制
單片機引腳高低電平的時間就可以了。
呵呵
趕快自己寫程序吧
別忘了給俺加分呀
❽ 51單片機 用 串口控制 輸出 PWM 波形 這程序為什麼不行求高手指教。。
看來你是想用串口中斷 定時器查詢方式 串口中斷程序裡面為什麼會有//這個符號呢?應該去掉吧,//這個是注釋用的。還有既然發生中斷了RI就肯定是等於1了,沒有必要判斷是否等於1。另外主程序第一句前面也要去掉//。編程要嚴謹啊。
❾ 在調試rs232串口通信時,單片機往PC機上發數據,串口調試助手可以接收,但是PC往單片機發數據,接收不到。
先解釋一下現象:
(1)MAX232的12腳即R1OUT連接到了單片機的RX腳,因此使用探頭碰MAX232的12引腳時導入了干擾信號,所以接收到了亂的數據。同時,也證明了單片機的接收電路和程序都沒有問題。
(2)板子上的地接到示波器上的地,PC才能收到數據,說明單片機與PC沒有共地。同時,也證明了單片機的發送電路、程序和PC的接收電路都沒有問題。
原理:
(1)PC的串口即RS232有9個引腳,與單片機通信時用到三個引腳,依次是2腳RX、3腳TX、5腳信號GND。
(2)而單片機串口與此相反,2腳TX、3腳RX、5腳信號GND。
(3)只要把這三根線依次連接,2-2、3-3、5-5即可完成通信。
(4)同時,根據實際通信設備介面不同,串口線也分多種,如直連線、交叉線、公母頭區別等。
故障排除流程:
(1)用萬用表等測量MAX232的14腳T1OUT與開發板串列介面的2腳TX、MAX232的13腳R1IN與開發板串列介面的3腳RX、開發板串列介面的5腳與電源地是不是分別連接。如果連接沒問題,則進行下一步。
(2)用萬用表等測量串口線,PC端的2腳與單片機端的2腳、PC端的3腳與單片機端的3腳、PC端的5腳與單片機端的5腳是不是分別對應,如果對應連接沒問題,則進行下一步。
(3)將PC上串列介面的2、3引腳短接。
(4)打開串口工具如「超級串口」等,下載地址http://www.powerserial.com/download/,打開串口,在輸入框中隨便輸入幾個字元,看是不是能在接收窗口中收到。
(5)如果收不到,則說明PC的串口問題(排除串口工具沒有開錯串口或短接沒問題的情況下),換台電腦試下。能收到,則說明電腦端收發都沒問題,進行下一步。
(6)將串口線插到電腦上,開發板端的插頭不插而直接將2、3腳短接。再次用串口工具發送,看是否能接收到,如果能接收到,則證明串口線沒問題,進行下一步。
(7)將串口線插到開發板得串列介面上,再使用串口工具收發。
(8)如果以上都不行,則自己做3根線,也可以使用杜邦線,將PC的TX與開發板的RX、PC的RX與開發板的TX、PC的信號地與開發板的地分別相連。再用串口工具收發測試。
通過以上步驟,則可以逐步排查到問題的具體原因。不過,根據問題及之後的描述,最大的可能性是串口線用的不對,導致PC串口與開發板串口的3根線沒有分別對應上。