美文网首页我爱编程
实现两个cc2541的串口通信

实现两个cc2541的串口通信

作者: MrRed | 来源:发表于2017-10-25 13:06 被阅读0次

为了实现多个cc2541的串口通信,先从两个做开始。

2017-10-23
实现了两个cc2541的单工通信。一个单片机周期性的从串口发送数据,另一个单片机接收数据,如果数据符合要求,则做一次led的闪烁。

参考:http://www.cnblogs.com/chenzhao207/p/4531941.html

image.png

可以知道cc2541要两个uart,这里我们用uart0。

void InitUart(void)
{ 
    PERCFG = 0x00;           //外设控制寄存器 USART 0的IO位置:0为P0口位置1 
    P0SEL = 0x0c;            //P0_2,P0_3用作串口(外设功能)
    P2DIR &= ~0xC0;          //P0优先作为UART0
    
    U0CSR |= 0x80;           //设置为UART方式
    U0GCR |= 8;                    
    U0BAUD |= 59;           //波特率设为9600
    UTX0IF = 0;              //UART0 TX中断标志初始置位0
    U0CSR |= 0x40;           //允许接收 
    IEN0 |= 0x84;            //开总中断允许接收中断  
}

以上为对uart0进行初始化的程序。
PERCFG为外设io引脚映射控制的寄存器。
P0SEL表示的是IO口的功能选择,可以选择为普通IO口,或者作为外设的口。0表示普通IO
P2DIR为PORT2的方向和PORT0外设优先级的控制IO。其中7,6位表示的是PORT0外设的优先级设置(这个要注意,因为名称比较奇怪)。P2DIR & = ~0xC0;将7,6位置零,也就是将uart0设为第一优先级。
U0CSR,U0GCR,U0BAUD等为UART0的设置寄存器。
U0CSR |= 0x80表示将io口设置为串口模式,因为这个两个io口还兼有spi的模式。需要注意的是,U0CSR还和串口的发送使能有关。但是这里不能进行设置,需要在UART0都配置完后才行。

U0GCR |= 8;                    
U0BAUD |= 59;           //波特率设为9600

这两句设置了波特率,设计值参考表格。

image.png

计算公式为:


image.png

串口传送数据的函数,就是直接把数据送到U0DBUF寄存器中,会自动传送出去。

发送和接收的程序差不多,只有main函数部分有一些区别。

在实验的过程中,遇到了一个问题使得实验一直没有成功。那就是波特率似乎调的太高了。原来用的是115200一直传输不了,改成9600以后,在arduino上实验成功后,在单片机上也实验成功了。

相关文章

  • 实现两个cc2541的串口通信

    为了实现多个cc2541的串口通信,先从两个做开始。 2017-10-23实现了两个cc2541的单工通信。一个单...

  • 串口通讯

    Android应用串口通信的实现 Android SDK并没有在Framework层实现封装关于串口通信的类库。但...

  • 9月21日

    今天讲的全新内容 串口通信 什么是串口和并口 主要讲解是串口通信寄存器的配置 并且初步实现了通信功能 下午复习上午...

  • 串口通信

    串口收发 串口中断实现收发 深入串口通信 delay.h delay.c display.h display.c ...

  • 陆:串口环形缓冲(STC15WK32S4)

    1:串口作为嵌入式最常用的通信接口,用于debug、控制串口模块、实现232、485通信、modbus协议移植;2...

  • QT5串口通信(Hex格式传输)

    参考博客: 博客园-菜头大大:QT串口通信 CSDN-宗师之路:QT实现串口通信(附源码下载) CSDN-xz-c...

  • Android 串口通信开发笔记3:CMake 方式实现和 多对

    上一篇:Android 串口通信笔记2 调试工具分析 工具类实现分析、项目实现Android串口开发 延伸和扩展,...

  • GO-serial

    GO串口通信实现 1、包名称github.com/tarm/serial 2、简单实现

  • 单片机串口数据处理框架

    1、背景 串口通信具有广泛的应用,一方面串口配置简单,仅需3根线(tx、rx、gnd)即可实现通信,另一方面串口具...

  • 干货小知识:一文教你Java程序与串口通信的实现及通信!

    串口通信的原理 串口通信指串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使...

网友评论

    本文标题:实现两个cc2541的串口通信

    本文链接:https://www.haomeiwen.com/subject/mowauxtx.html