cc2530串口1实现双机通讯 |
您所在的位置:网站首页 › ttl最大波特率 › cc2530串口1实现双机通讯 |
目录 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模式本次使用的开发板为cc2530,其外部晶振为32MHz,可通过其中文开发文档查看器波特率的计算公式,计算公式为: f 是系统的时钟频率,等于16或者32MHz的时钟频率,可通过编程选择。 32MHz下的重建的波特率配置如下图所示 每一个串口都有2个中断,分别为接受和发送中断,但开始传输时发生TX中断,在开始接收时发生RX中断。 5.1、USART寄存器,每一个 USART都有5个寄存器:U0CSR寄存器 如果需要配置为UART模式,只需要将寄存器的最高位置1即可例如 U0CSR|=0X80 如果配置为允许接收,只需要将寄存器的第7为置为1即可 例如 U0CSR|=0X40 U0UCR寄存器: 配置和上面的配置同理 U0GCR 寄存器 串口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 |