cc2530串口1实现双机通讯

您所在的位置:网站首页 ttl最大波特率 cc2530串口1实现双机通讯

cc2530串口1实现双机通讯

2023-06-14 19:33| 来源: 网络整理| 查看: 265

目录

1、UART模式

2、UART发送

3、UART接收

4、UART波特率

5、USRT中断

5.1、USART寄存器,每一个 USART都有5个寄存器:

 6、实战

 6、1串口0初始化

6.2、串口1初始化 

6.3、串口1发送数据函数

6.4、串口0重定向输出

 6.5、串口中断接收函数

6.6、主函数

1、UART模式

2、UART发送

 3、UART接收

 4、UART波特率

本次使用的开发板为cc2530,其外部晶振为32MHz,可通过其中文开发文档查看器波特率的计算公式,计算公式为:

f 是系统的时钟频率,等于16或者32MHz的时钟频率,可通过编程选择。 

32MHz下的重建的波特率配置如下图所示

5、USRT中断

每一个串口都有2个中断,分别为接受和发送中断,但开始传输时发生TX中断,在开始接收时发生RX中断。

5.1、USART寄存器,每一个 USART都有5个寄存器:

U0CSR寄存器

 

如果需要配置为UART模式,只需要将寄存器的最高位置1即可例如 U0CSR|=0X80

如果配置为允许接收,只需要将寄存器的第7为置为1即可 例如  U0CSR|=0X40

 U0UCR寄存器:

配置和上面的配置同理

U0GCR 寄存器

 6、实战  6、1串口0初始化

串口0与PC机进行通讯,打印温度数据。

void initUART0(void) { CLKCONCMD &= ~0x40; //设置系统时钟源为32MHZ晶振 while(CLKCONSTA & 0x40); //等待晶振稳定 CLKCONCMD &= ~0x47; //设置系统主时钟频率为32MHZ PERCFG = 0x00; //位置1 P0.2/P0.3口 P0SEL |= 0x0c; //P0.2,P0.3用作串口(外部设备功能) P2DIR &=~0XC0; U0CSR |= 0x80; //设置为UART方式 U0GCR |= 11; //BAUD_E U0BAUD |= 216; //BAUD_M 波特率设为115200 UTX0IF = 0; //UART1 TX中断标志初始置位0 U0CSR |= 0X40; //允许接收 IEN0 |= 0x84; // 开总中断,UART1接收中断 EA=1; } 6.2、串口1初始化 

串口1实现与板1 和板2之间的通信。

void initUART1(void) { PERCFG = 0x00; //位置1 P0.4/P0.5口 P0SEL |= 0x30; //P0.4,P0.5用作串口(外部设备功能) P2DIR &=~0X80; U1CSR |= 0x80; //设置为UART方式 U1GCR |= 11; //BAUD_E U1BAUD |= 216; //BAUD_M 波特率设为115200 UTX1IF = 1; //UART1 TX中断标志初始置位0 U1CSR |= 0X40; //允许接收 IEN0 |= 0x88; // 开总中断,UART1接收中断 EA=1; } 6.3、串口1发送数据函数 void Uart1TX_Send_String(unsigned char *Data,int len) //串口发送函数--发送字符串 { int j; for(j=0;j


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3