您好,欢迎访问三七文档
Serial串口串口录1串行通信接口的工作模式2串行接口的应用及编程3控制LED串口的发送接收与发送Serial1串行接口串行接口UART1对应的外部设备IO引脚关系为:小注:本次实验编程均用UART0UART0对应的外部设备IO引脚关系为:P0_2------RXP0_3------TXP0_5------RXP0_4------TX1、配置IO,使用外部设备功能。此处配置P0_2和P0_3用作串口UART02、配置相应串口的控制和状态寄存器。此处配置UART0的工作寄存器3、配置串口工作的波特率此处配置为波特率为115200串口初始化三部曲CC2530配置串口的一般步骤:步骤:二2三3本次实验串口相关的寄存器或者标志位有:U0CSRU0GCRU0BAUDU0DBUFUTX0IFU0CSR:控制和状态寄存器U0GCR:UART0通用控制寄存器U0BAUD:波特率控制寄存器U0DBUF:UART0收发数据缓冲区四4UTX0IF:发送中断标志寄存器都不讲,同学们自己复习,(*^__^*)嘻(P145页)一1U0UCR--USART0UART控制其实就是设置波特率(P146)主要设置只要设置奇偶校验,就必须9位数据如果不用奇偶校验,第九位即为D9rogramll第二部分程序一、发送数据•voidInitUART(void)•{•//U0UCR=0X2A;//偶校验,9位数据传送,一位停止位•PERCFG=0x00;//位置1P0口•P0SEL=0x0c;//P0_2,P0_3用作串口(外部设备功能)•P2DIR&=~0XC0;//P0优先作为UART0•U0CSR|=0x80;//设置为UART方式•U0GCR|=11;•U0BAUD|=216;//波特率设为115200•UTX0IF=0;//UART0TX中断标志初始置位0•}•voidUartSend_String(char*Data,intlen)•{•intj;•for(j=0;jlen;j++)•{•U0DBUF=*Data++;•while(UTX0IF==0);•UTX0IF=0;•}•}运用指针发送数据主函数•voidmain(void)•{•CLKCONCMD&=~0x40;//设置系统时钟源为32MHZ晶振•while(CLKCONSTA&0x40);//等待晶振稳定为32M•CLKCONCMD&=~0x47;//设置系统主时钟频率为32MHZ•IO_Init();//LED初始化•InitUART();•while(1)•{•UartSend_String(Txdata,sizeof(“HELLOWEBEE“));//串口发送数据•Delay_ms(500);//延时•LED1=!LED1;//标志发送状态•}•}二、接收和发送数据发送:前面已讲,自己温习接收:串口初始化:接收的配置要与发送一致,唯独:U0CSR|=0X40;//允许接收IEN0|=0x84;//开总中断,接收中断与发送配置不一接收函数://接数据#pragmavector=URX0_VECTOR__interruptvoidUART0_ISR(void){URX0IF=0;//清中断标志temp=U0DBUF;//存数据RXTXflag=1;//控制LED灯用}ontrolLEDlll第三部分:控制LED尽情发挥你的想象和才能迸发出智慧的力量这一块属于你们!!!谢谢名字名字名字指导老师:名字
本文标题:串口cc2530
链接地址:https://www.777doc.com/doc-4909684 .html