CC2530串口数据收发
文章目录:实验要求代码实现实验要求代码实现#include "ioCC2530.h"#define D3 P1_0#define D5 P1_3//系统时钟切换函数void Set_Clock_32M(){CLKCONCMD &=~0x40;while(CLKCONSTA &0X40){}CLKCONCMD &=~0x47;}//端口初始化函数void Init_Prot(
·
文章目录:
实验要求

代码实现
#include "ioCC2530.h"
#define D3 P1_0
#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
//5.清除中断标志
//发送
UTX0IF = 0;
//接收
URX0IF = 0;
//6.使能串口数据接收完成中断和总中断
URX0IE = 1;
EA = 1;
}
//串口字节发送函数
void URD_SendByte(unsigned char dat)
{
U0DBUF =dat;
while(UTX0IF==0);
UTX0IF=0;
}
//串口数据接受完成中断服务函数
#pragma vector = URX0_VECTOR //起始语句
//中断服务函数
__interrupt void Service_UR0Recv()
{
D3=1;//收
unsigned char temp;
temp=U0DBUF;
temp++;
D5=1;//发
URD_SendByte(temp);
D3=0;
D5=0;
}
void main(void)
{
Set_Clock_32M();
//端口初始化
Init_Prot();
Init_Uart0();
while(1)
{
}
}
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)