PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   dsPIC - Bộ điều khiển tín hiệu số 16-bit (http://www.picvietnam.com/forum/forumdisplay.php?f=29)
-   -   Uart không truyền được quá 5 kí tự lên PC (http://www.picvietnam.com/forum/showthread.php?t=6932)

hang1988 07-09-2010 08:51 AM

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 07-09-2010 06:16 PM

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,

hang1988 07-09-2010 10:53 PM

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?

hang1988 07-09-2010 11:03 PM

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


Múi giờ GMT. Hiện tại là 06:54 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam