CC2530串口数据发送

文章目录:

实验要求

代码实现


实验要求

代码实现

#include "ioCC2530.h"

#define D5 P1_3

//系统时钟切换函数
void Set_Clock_32M()
{
  CLKCONCMD &=~0x40;
  while(CLKCONSTA &0X40)
  {
  
  }
  CLKCONCMD &=~0x47;
}

//端口初始化函数
void Init_Prot()
{
//配置4个LED灯的引擎
  //选择端口的功能
  P1SEL &=~0x1B;//设置通用io端口
  //配置端口的方向
  P1DIR |=0x1B;
  //关闭LED灯
  P1 &=~0x1B;
}

//串口初始化函数
void Init_Uart0()
{
  //1.设置串口的引脚功能,将P0_2和P0_3设置为外设功能
  PERCFG &=~0X01;
  P0SEL |=0x0C; //0000 1100
  //2.设置串口的波特率:32M——9600
  U0BAUD = 59;
  U0GCR = 8;
  //3.设置一个UART控制寄存器 U0UCR
  U0UCR |=0x80;
  //4.设置控制与状态寄存器 U0CSR
  U0CSR |=0xc0; //1100 0000
}

//串口字节发送函数
void URD_SendByte(unsigned char dat)
{
  U0DBUF =dat;//将要发送的数据填入发送缓存寄存器
  while(UTX0IF==0);//等待数据发送完成
  UTX0IF=0; //发送完成后将数据清零 
}

//串口字符串发送函数
void URD_SendString(unsigned char *str)
{ 
  while(*str !='\0')
  {
    URD_SendByte(*str++);
  }
}

//看门狗的初始化函数:设置为定时器模式,时间周期1s
//初始化一个看门狗控制寄存器
void Init_WDT()
{
  //配置WDTCTL
  WDCTL = 0x0C;//0000 1100
  //IEN2
  IEN2 |= 0x20;
  //打开使能总中断
  EA=1;
}

//看门狗定时器1s的中断服务函数
#pragma vector = WDT_VECTOR //起始语句
//中断服务函数
__interrupt void Service_WDT()
{ 
  //清除中断标指
  WDTIF = 0;
  D5=1;
  //发送字符串
  URD_SendString("hello word\r\n");
  D5=0;
}  
   


void main(void)
{
  Set_Clock_32M();
  //端口初始化
  Init_Prot();
  Init_Uart0();
  Init_WDT();
  while(1)
  {
   
  }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘鑫磊up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值