ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于Zigbee的CC2530UART0与UART1的通信

2021-07-26 19:32:17  阅读:273  来源: 互联网

标签:lenU1 UART0 Zigbee void CC2530UART0 UART1 中断 串口


基于Zigbee的CC2530UART0与UART1的通信

一。UART0与UART1之间的区别:
UART0可能是对我们来说是最常用的一个串口通信,一般串口0我们都是用来打印信息在电脑串口上可以查看的信息,那UART1呢,他的用处在哪里?
最近小严入手了一块WiFi的模块,习惯性使用串口0来使用,但是,不知怎么会回事,就是跟Wifi模块通信不行,很纳闷,查了许多的知道,最后才明白,UART1主要的用处就是跟一些外设的通信模块来使用(比如:WiFi和蓝牙等等)
为了大家能方便一些:
俺将两个串口方式的代码附上,给各位大佬方便使用:

//一些变量定义为全局变量
#define MAXCHAR 81
uint lenU0 = 0;
uchar tempRXU0;
uchar  RecdataU0[MAXCHAR];
uint lenU1 = 0;
uchar tempRXU1;
uchar  RecdataU1[MAXCHAR];
//串口0初始化:
void initUART0(void)
{
  
  CLKCONCMD &= ~0x40;                    //设置系统时钟源为32MHZ晶振
  while(CLKCONSTA & 0x40);               //等待晶振稳定
  CLKCONCMD &= ~0x47;                    //设置系统主时钟频率为32MHZ
  
  PERCFG = 0x00;			//位置1 P0.2 P0.3口
  P0SEL = 0x0c;				//P0.2 P0.3用作串口
  P2DIR &= ~0XC0;                       //P0优先作为UART0    
  
  U0CSR |= 0x80;			//串口设置为UART方式
  U0GCR |= 11;				
  U0BAUD |= 216;		        //波特率设为115200
  UTX0IF = 1;                           //UART0 TX中断标志初始置位1 
  
  U0CSR |= 0X40;		        //允许接收
  IEN0 |= 0x84;				//开总中断,接收中断    
}
//对应中断函数:
#pragma vector = URX0_VECTOR
__interrupt void UART0_ISR(void)
{
  
  if(lenU0<81)
  {  
    tempRXU0 = U0DBUF; 
    RecdataU0[lenU0]=tempRXU0;//命令存到命令数组
    
    URX0IF=0;                 //软件清除接收中断
    lenU0++;
  }
}

串口1:

void initUART1(void)
{ 
	PERCFG = 0x00;		//位置1  P0.4/P0.5口
	P0SEL |= 0x30;		//P0.4,P0.5用作串口(外部设备功能)

	U1CSR |= 0x80;		//设置为UART方式
	U1GCR |= 11;		//BAUD_E        
	U1BAUD |= 216;		//BAUD_M 波特率设为115200
	UTX1IF = 0;	        //UART1 TX中断标志初始置位0
        U1CSR |= 0X40;              //允许接收 
        IEN0 |= 0x88;               // 开总中断,UART1接收中断  
}
//对应的中断函数:
#pragma vector = URX1_VECTOR 
__interrupt void UART1_ISR(void) 
{ 
  if(lenU1<81)
  {
    tempRXU1 = U1DBUF;
    RecdataU1[lenU1]=tempRXU1;
    
    URX1IF = 0;    // 清中断标志 
    lenU1++;
  }
}

希望上诉内容可以帮助大家!!!

标签:lenU1,UART0,Zigbee,void,CC2530UART0,UART1,中断,串口
来源: https://blog.csdn.net/yanw1234/article/details/119116356

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有