cc2540f/cc2541f串口测试
#include "ioCC2540.h"
#pragma vector =URX0_VECTOR
__interrupt void URX0_ISR(void) {
URX0IF=0; U0DBUF='B';
while( !(U0CSR&0x2));
U0CSR=0xc0;
U0DBUF='L';
while( !(U0CSR&0x2));
U0CSR=0xc0;
U0DBUF='E';
while( !(U0CSR&0x2)); U0CSR=0xc0;
}
void delay()
{unsigned long i; for(i=0;i<10000;i++) asm(" nop "); }
void main()
{ CLKCONCMD = 0x80; // Wait until system clock source has changed to HS XOSC (CLKCONSTA.OSC = 0).
while(CLKCONSTA & 0x40);//外部晶振32MHz
P0SEL =0x0c;///发送数据的tx引脚是p03, rx p0.2
P0DIR=0xff;
U0CSR=0xc0;
U0UCR=0x02;
U0GCR=0x08;
U0BAUD=59;//波特率9600
PERCFG=0;
IEN0|=0x84;//中断使能
EA = 1;///总中断
while(1) { U0DBUF=0xaa;
while( !(U0CSR&0x2));
delay(); delay(); delay();
delay(); delay(); delay();
U0DBUF=0x55; while( !(U0CSR&0x2));
delay(); delay(); delay();
delay(); delay(); delay(); }
}
发送采用查询,接收采用中断。
非常感谢。。串口通信成功了。我在测试向电脑发送AB,但是中间会时不时出现几个字节的乱码,请问这是什么原因呢?
ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB蠦ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB蠦ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB蠦
通信距离长不?用好的usb 转串口芯片。
通信距离很短,用的是新的USB转串口线。之前程序里面有这句,P0SEL =0x0c;///发送数据的tx引脚是p03, rx p0.2。我的板子有RTS,CTS线,我试了一下,把这两个引脚也配置成外设后,就不会出现上面的问题。
请教:你的RTS,CTS线是怎样配置的,代码发一下?谢谢,我也是这样问题?