CC2530学习-5-串口学习

1,CC2530串口简介:

CC2530是一款由德州仪器(TI)生产的系统级芯片(SoC),主要用于无线通信应用。它基于8051微控制器架构,集成了2.4GHz的IEEE 802.15.4射频收发器,常用于Zigbee网络。CC2530具有两个独立的串行通信接口(USART),可配置为UART、SPI和I2C模式。UART模式用于标准的异步串行通信,常见于与外部设备如传感器、显示屏或其他微控制器的通信。SPI模式适用于高速同步串行通信,通常用于短距离设备间的数据传输。I2C模式则适用于与低速外围设备的通信,如EEPROM和ADC等。CC2530的USART支持多种波特率设置,从低速到高速,能够灵活适应不同的通信需求。此外,USART模块还支持中断和DMA(直接内存访问)功能,实现高效的数据传输和处理,减少CPU负担。这些串口功能使得CC2530在无线通信和嵌入式应用中具备了强大的数据传输能力和灵活性。

2,CC2530串口配置:

   CC2530中的串口涉及到的端口为P0_2和P0_3,串口初始化主要分为时钟源初始化、串口初始化配置、串口波特率配置三个操作。

时钟源配置

时钟源配置需要CLKCONCMD和CLKCONSTA,CLKCONCMD用于初始化系统的外部时钟,其配置参数如下表,设置时钟源32MHz,250KHz,时钟速度32MHz。

时钟源配置的代码为:

CLKCONCMD &= ~0x40;                    //设置系统时钟源为32MHZ晶振

while(CLKCONSTA & 0x40);                  //等待晶振稳定

CLKCONCMD &= ~0x47;                     //设置系统主时钟频率为32MHZ

CLKCONCMD首先将第6位清零,0x40的二进制代码为:01000000;取反则为10111111;与CLKCONCMD与运算,这样就可以保证第6位清零,其余位置不变。

CLKCONSTA是一个只读寄存器,用于获取当前的时钟状态,让CLKCONSTA与0x40做与运算,如果系统时钟没有稳定,也就是说不是32MHz,那么此时CLKCONSTA的第6位为1,与0x40做与运算得到的结果为1,while继续循环,如果说第6位变成了0,此时系统时钟32MHz,达到了稳定状态,那么此时第6位为0,与0x40做与运算后,得到的最终结果为0,退出循环。此时系统的主时钟完成32MHz的配置。

最后配置系统时钟为CLKCONCMD &= ~0x47;也就是设置时钟源32MHz,250KHz,时钟速度32MHz。

串口初始化配置

该配置主要是设置哪个外设端口作为串口使用,因为前文中的电路图是针对P0.2和P0.3,故需要将P0端口设置为串口,需要用到的寄存器有PERCFG,P0SEL,P2DIR;

PERCFG为外设控制寄存器,本实验种将选择串口0的备用位置0,作为实验端口,将改为置0;P0SEL是将哪几个端口作为外设使用,由于前面我们设置了P0端口的P0.2 P0.3 P0.4 P0.5作为串口,故将P0SEL设置为:00111100;P2DIR是设置端口0的外设优先级,本文将P2DIR的两个高位设置为0,即将串口0设置为第一优先级。代码如下:

    PERCFG = 0x00;                     //位置1 P0口

    P0SEL = 0x3c;                         //P0_2,P0_3,P0_4,P0_5用作串口

    P2DIR &= ~0XC0;          //P0优先作为UART0

针对CC2530的每一个USART寄存器,都对应5个寄存器

代码如下:

    U0CSR |= 0x80;                       //UART方式

    U0GCR |= 11;                                

    U0BAUD |= 216;                     //波特率设为115200

    UTX0IF = 0;               //UART0 TX中断标志初始置位0

U0CSR是串口0的控制和状态寄存器,其配置如下表,将该寄存器的第7位配置为1以设置UART串口模式。

U0GCR和U0BAUD是设置串口波特率的寄存器,根据CC2530的芯片手册,其对应的波特率设置如下表。本文选用115200波特率进行通信。

UTX0IF是串口中断,本文不涉及串口中断,故将该寄存器设置为0

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值