基于CC2530的串口通信(可用与STM32通信)

 材料准备:

CC2530芯片与底板一个(方便调试与下载)

 

这是我淘宝买的一个小小的zigbee开发板 

CC2530 配置串口的一般步骤:

1、配置 IO,使用外部设备功能。此处配置 P0_2 和 P0_3 用作串口 UART0

2、 配置相应串口的控制和状态寄存器

3、设置波特率;

#include <ioCC2530.h>
#include <string.h>

#define  uint  unsigned int
#define  uchar unsigned char

//函数声明
void Delay(uint);
void initUARTSEND(void);
void UartTX_Send_String(char *Data,int len);

char Txdata[50]="1\n";
char kaideng[2]="2\n";
/****************************************************************
    延时函数											
****************************************************************/
void Delay(uint n)
{
	uint i;
	for(i=0;i<n;i++);
	for(i=0;i<n;i++);
	for(i=0;i<n;i++);
	for(i=0;i<n;i++);
	for(i=0;i<n;i++);
}
/****************************************************************
   串口初始化函数				
****************************************************************/
void initUARTSEND(void)
{

    CLKCONCMD &= ~0x40;                          //设置系统时钟源为32MHZ晶振
    while(CLKCONSTA & 0x40);                     //等待晶振稳定
    CLKCONCMD &= ~0x47;                          //设置系统主时钟频率为32MHZ
   
  
    PERCFG = 0x00;				//位置1 P0口
    P0SEL = 0x3c;				//P0_2,P0_3,P0_4,P0_5用作串口
    P2DIR &= ~0XC0;                             //P0优先作为UART0

    U0CSR |= 0x80;				//UART方式
    U0GCR |= 11;				       
    U0BAUD |= 216;				//波特率设为19200
    UTX0IF = 0;                                 //UART0 TX中断标志初始置位0
}
/****************************************************************
串口发送字符串函数			
****************************************************************/
void UartTX_Send_String(char *Data,int len)
{
  int j;
  for(j=0;j<len;j++)
  {
    U0DBUF = *Data++;
    while(UTX0IF == 0);
    UTX0IF = 0;
  }
}
/****************************************************************
主函数						
****************************************************************/
void main(void)
{	
    uchar i;
    initUARTSEND();
    UartTX_Send_String(Txdata,25);	
    UartTX_Send_String(kaideng,25);	
    for(i=0;i<30;i++)Txdata[i]=' ';
    strcpy(Txdata,"1\n");       //将UART0 TX test赋给Txdata;
     for(i=0;i<30;i++)kaideng[i]=' ';
     strcpy(kaideng,"2\n");       //将UART0 TX test赋给Txdata;

	while(1)
	{
           UartTX_Send_String(Txdata,strlen(Txdata)); //串口发送数据
           Delay(50000); 
            Delay(50000);//延时
           UartTX_Send_String(kaideng,strlen(kaideng)); //串口发送数据
           Delay(50000);
           Delay(50000);
	}
}

如果要发送新的消息。可以自己设置个值。

首先定义一下值

 

 循环30次。确保有把这个字符所有的都输出来。

然后写入kaideng,位数25位

for循环。给他都数出来。然后写入这行代码

他就会执行串口发送字符的函数了。

猜你喜欢

转载自blog.csdn.net/a1060916181/article/details/127850400