RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

Uart không truyền được quá 5 kí tự lên PC

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • hang1988
    Đệ tử 1 túi
    • May 2008
    • 21

    #1

    Uart không truyền được quá 5 kí tự lên PC

    E có viết lập trình truyền thông cho Dspic truyền thông lên PC qua RS232. Nhưng bên Visual basic chỉ nhận được có 5 kí tự còn các kí tự sau đó khi truyền lên lại không nhận được. Mong mọi người hỗ trợ
    Hàm truyên lên PC
    Code:
    void Send_Uart_1number(int Data)
    	{
    		
    		U1TXREG=Data;
    	//	while(!U1STAbits.TRMT)
    		//	{;}
    		
    	}
    void PC_RS232_TRAN()
    	{
    		 	if(++time>500)
    				{
    			time=0;	
    			Send_Uart_1number(Fout/10+'0');// Tan so dau ra
    			Send_Uart_1number(Fout%10+'0');
    			Send_Uart_1number(F/10+'0');
    			Send_Uart_1number(F%10+'0');
    			Send_Uart_1number(Time_Start/10+'0');
    			Send_Uart_1number(Time_Start%10+'0');		
    			Send_Uart_1number(OVERLOAD_FLAG+'0');
    			Send_Uart_1number(temp_flag+'0');
    					
    			}
    			
    	}
    Code trong visual Basic
    Private Sub MSComm1_OnComm()
    If (MSComm1.CommEvent = comEvReceive) Then
    DataPC = MSComm1.Input
    End If
    Fout = Mid(DataPC, 1, 2)
    F = Mid(DataPC, 3, 2)
    Time_Start = Mid(DataPC, 5, 2)
    Over_Temp = Mid(DataPC, 1)
    Over_Load = Mid(DataPC, 8, 1)
    End Sub

    Các kí tự 6,7,8 thì lại ko nhận được từ chương trình Visual basic
  • namqn
    Trưởng lão PIC bang
    • Feb 2006
    • 3020

    #2
    Trong hàm Send_Uart_1number() của bạn, lệnh chờ cho bộ đệm phát rỗng (tức là phát xong ký tự vừa ghi vào thanh ghi đệm) while(!U1STAbits.TRMT) {;} của bạn đã bị chú thích.

    Bạn chỉ cần bỏ hai dấu chú thích trong hàm đó là được.

    Thân,
    Biển học mênh mông, sức người có hạn.

    Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
    http://www.picvietnam.com/forum/showthread.php?t=1263

    Comment

    • hang1988
      Đệ tử 1 túi
      • May 2008
      • 21

      #3
      Vâng! câu lệnh đó em cho vào nhưng chương trình hầu như không thoát khỏi đó. Quét LED 7 vạch nó bị mờ không sáng được. Nếu e bỏ đi thì LED 7 sáng! E ko hiểu nguyên nhân tại sao?

      Comment

      • hang1988
        Đệ tử 1 túi
        • May 2008
        • 21

        #4
        Thật la hài và buồn cười kinh thật đó. E hôm nay biên dịch và nạp lại thì lại ko như hôm qua! E nghĩ là do lỗi ở cổng Com rồi! E cám ơn thầy Nam

        Comment

        Working...