e chào các anh.
Các anh giúp e phần uart pic 16f877A dùng C#. Sao e gửi dữ liệu từ PC xuống PIC thì nhận được nhưng từ PIC gửi lên PC thì ko được, mong các a chỉ giúp e
//// Code CCS của e
#include <16f877a.h>
#include <def_877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=9)
char kitu;
#int_RDA
void RDA_isr(void)
{
kitu=getc();
if(kitu=='a')
output_D(0x00) ;
if(kitu=='b')
{
output_D(0xFF);
}
void main()
{
output_D(0);
SET_TRIS_D(0x00); // Port D = Xuat.
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
while(1)
{
putc('e');
}
}
// Code C# phần nhận dữ liệu từ PIC lên PC
private void Nhan(object sender, SerialDataReceivedEventArgs e)
{
string s;
s = myCom.ReadExisting();
Display(s);
}
private delegate void DlDisplay(string s);
private void Display(string s)
{
if (txtkq.InvokeRequired)
{
DlDisplay sd = new DlDisplay(Display);
txtkq.Invoke(sd, new object[] { s });
}
else
{
txtkq.Text = s;
}
}
Các anh giúp e phần uart pic 16f877A dùng C#. Sao e gửi dữ liệu từ PC xuống PIC thì nhận được nhưng từ PIC gửi lên PC thì ko được, mong các a chỉ giúp e
//// Code CCS của e
#include <16f877a.h>
#include <def_877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=9)
char kitu;
#int_RDA
void RDA_isr(void)
{
kitu=getc();
if(kitu=='a')
output_D(0x00) ;
if(kitu=='b')
{
output_D(0xFF);
}
void main()
{
output_D(0);
SET_TRIS_D(0x00); // Port D = Xuat.
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
while(1)
{
putc('e');
}
}
// Code C# phần nhận dữ liệu từ PIC lên PC
private void Nhan(object sender, SerialDataReceivedEventArgs e)
{
string s;
s = myCom.ReadExisting();
Display(s);
}
private delegate void DlDisplay(string s);
private void Display(string s)
{
if (txtkq.InvokeRequired)
{
DlDisplay sd = new DlDisplay(Display);
txtkq.Invoke(sd, new object[] { s });
}
else
{
txtkq.Text = s;
}
}
Comment