CC2530串口
来源:互联网 发布:软件开发工程师月薪 编辑:程序博客网 时间:2024/04/28 13:39
2530有两个USART口,每个USART口都有两个位置可选择,以USART0为例,位置1用的是P0端口(P0_2(RX)、P0_3(TX)),位置2用的是P1端口(P1_5(TX)和P1_4(RX))。每个USART口都可以选择为USART和SPI功能,由U0CSR.MODE控制,当U0CSR.MODE=1时,即为USART模式。每个串口都由四根线组成,TXD、RXD、CTS(硬件刘控制相关)、RTS(硬件流控制相关),其中的RXD和TXD是最主要的(通常都是两线模式),CTS和RTS选用(四线模式)。USART0有两个中断,发送完成中断(数据传输开始时触发)和接收中断,IEN0寄存器的URX0IE位置1,则使能接收中断,而发送中断的使能位在IEN2中(UTX0IE)。如果是接收中断,在IEN0中设置了中断使能之前,还必须设置U0CSR(USART0控制寄存器)的U0CSR.RE位(接收器使能),注意在USART完成设置完成前,不能使能接收。我用的是USART0,P1_4和P1_5引脚,只使用接收中断,完成的功能是接收到PC传来的字符之后再回传给PC,并且显示出来。最简单的一个USART初始化流程就是,先选择功能引脚(P1SEL |= (1<<4)&&(1<<5)),其次选择USART口的位置(PERCFG |= (1<<0)),然后是波特率的设置(可参考数据手册,我用的是9600,U0BAUD=59;U0GCR=8),接着就可以使能USART端口功能和接收中断了(U0CSR |= 0xC0;IEN0 |= (1<<2)),最后记得开全局总中断(EA=1;)。
void Uart0Init(void)
{
//设置P0.2与P0.3时用
// P0SEL |= 0x0C; //初始化UART0端口,设置P0.2与P0.3为外部设备IO口
// PERCFG&= ~0x01; //选择UART0为可选位置一,即RXD接P0.2,TXD接P0.3
P1SEL |= (1<<4)|(1<<5); //初始化UART0端口,设置P1.4与P1.5为外部设备IO口
PERCFG|= (1<<0); //选择UART0为可选位置2,即RXD接P1.4,TXD接P1.5
U0GCR = 8;
U0BAUD = 59; //设置UART0波特率为2400bps
U0CSR = 0xC0; //设置为UART模式,并使能接受器
IEN0 |=0x04; //使能接受中断
EA=1;
}
/*UART0接收中断
-------------------------------------------------------*/
void Uart0Receive_Interrupt(void) interrupt URX0_VECTOR
{
EA=0;
TCON &= ~0x08;//清接收标志
temp=U0DBUF;
U0DBUF=temp;
EA=1;
}
- CC2530串口
- CC2530串口
- CC2530 串口驱动
- CC2530 串口实验
- CC2530串口接收总结
- CC2530串口中断
- CC2530串口通讯2
- CC2530 串口驱动
- CC2530串口实验
- CC2530之串口
- CC2530 串口打印log
- cc2530串口驱动程序
- ZigBee CC2530串口通信调试
- [CC2530]串口接收发送数据
- CC2530之UART串口通信
- cc2530串口(网络)通信流程
- CC2530的ZigBee应用层加入串口
- CC2530--串口实验的回显
- hadoop集群使用规范
- Linux中link,unlink,close,fclose详解
- oracle授予权限
- 用户体验分类
- Android的Touch事件处理机制介绍
- CC2530串口
- 2013.7.22
- RIP、OSPF、BGP认识
- 编辑距离优化--二维数组转一维数组
- More Effective C++:自增和自减
- Sprite Kit编程指南(1)-深入Sprite Kit
- LU分解求线型方程
- 启用Spring quartz定时器,导致tomcat服务器自动停止
- Linux学习笔记二