CC2530之串口发送(1)

第一步设置系统时钟频率为32Mhz:

  CLKCONCMD&=~0x40;//设置系统时钟源为32Mhz
  while(CLKCONSTA&0x40);//等待晶振稳定
  CLKCONCMD&=~0x47;//设置系统主时钟频率为32Mhz,这里是把时钟速度CLKSPD设置为32Mhz

具体配置参数如下:

 

设置好时钟频率之后我们就来到配置串口了:

1.首先配置外设控制

PERCFG=0x00;//配置外设控制寄存器,使用位置1

配置表格如下:

2.配置功能选择

P0SEL=0x0C;//P0_2,P0_3用做串口

 

 3.配置串口状态与模式

U0CSR|=0x80;//1000 0000,UART异步模式

4.配置波特率及清空标志位根据下面表格去配置对应的波特率

U0BAUD|=59;
  U0GCR|=8;//9600;
  
  UTX0IF=0;//发送标志位清零

 5.然后编写发送函数

void UartTX_Send_String(char *data,int len)//发送字符,和长度
{
  int j;
  for(j=0;j<len;j++)
  {
   U0DBUF=*data++;//发送数据
   while(UTX0IF==0);//发送完毕则为1
   UTX0IF=0;
  }
  
}

6.主函数

char Txdata[];
void main()
{
  Uart_Init();
  strcpy(Txdata,"hello");//C语言字符串复制
  while(1)
  {
    UartTX_Send_String(Txdata,sizeof("hello"));//sizeof 判断字符串长度
    Delay500ms();
  }
}

这样就完成啦,打开串口助手就可以查看了;

接下来附上完整代码

#include "iocc2530.h"
#include "String.h"
void Uart_Init()
{
  CLKCONCMD&=~0x40;//设置系统时钟源为32Mhz
  while(CLKCONSTA&0x40);//等待晶振稳定
  CLKCONCMD&=~0x47;//设置系统主时钟频率为32Mhz
  
  PERCFG=0x00;//配置外设控制寄存器,使用位置1
  P0SEL=0x3C;
  
  U0CSR|=0x80;
  U0BAUD|=59;
  U0GCR|=8;//9600;
  
  UTX0IF=0;//发送标志位清零
}
void UartTX_Send_String(char *data,int len)//发送字符,和长度
{
  int j;
  for(j=0;j<len;j++)
  {
   U0DBUF=*data++;//发送数据
   while(UTX0IF==0);//发送完毕则为1
   UTX0IF=0;
  }
  
}
void Delay500ms()		//@12.000MHz
{
	unsigned char i, j, k;
	i = 23;
	j = 205;
	k = 120;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

char Txdata[];
void main()
{
  Uart_Init();
  strcpy(Txdata,"hello");//C语言字符串复制
  while(1)
  {
    UartTX_Send_String(Txdata,sizeof("hello"));//sizeof 判断字符串长度
    Delay500ms();
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值