CC2530串口收发

串口收发字符串

 

 

PC端通过串口发送数据给硬件端(数据长度不超过50,终止符为#),硬件端收到数据后发送回PC端

 

*****板子首先是接收模式*****

*****然后板子开始发送接收到的字符串*****

 

实验相关寄存器

PERCFG:选择备用位置

UxCSR:选择为UART方式

UxGCR和UxBAUD为:波特率

UTXxIF:发送中断标志位

UxDBUF:数据缓存区

UxCSR:打开允许接收

EA :总中断

CLKCONCMD:系统时钟

CLKCONSTA:用来获取当前时钟状态

 

--------------------第一步--------------------

 

先定义全局变量

 

****一次最多接收的字符

****存放接收过来的字符串

****用于决定是接收模式还是发送模式

****统计一次接收到的字符个数

 

 

--------------------第二步--------------------

 

串口发送字符串

 

参数中一个字符串,一个字符串长度

 

将参数中字符串赋值给---数据缓存区(UxDBUF)

等待当前字节发送完毕,然后标志位会置1

再手动将发送标志位置0(准备发送下一个字节)

 

 

--------------------第三步--------------------

 

配置串口

 

先选择串口的备用位置(PERCFG)

设置端口位为外设功能(PxSEL)

设置优先级(PxDIR)

设置为串口模式(UxCSR)

设置波特率(UxGCR、UxBAUD)

发送标志位初始化为0(UTXxIF)

开启串口接收使能(UxCSR)

总中断开启(EA)

串口接收中断使能(IEN)

 

 

--------------------第四步--------------------

 

系统时钟初始化

 

设置系统时钟(CLKCONCMD)

等待系统时钟稳定

设置系统主时钟频率(CLKCONCMD)

 

--------------------第五步--------------------

 

接收中断服务函数

 

先清除接收中断

将缓存区的字符串赋值给存放接收字符串的变量

 

--------------------第六步--------------------

 

主函数

 

板子会一直处于接收状态,然后判断变量中是否有东西,如果有,就看是否存在结束符及超过字符串的长度;如果没有结束符且字符串长度是否超过设定的,如果没有则将字符串赋值给接收的字符数组;否则进入发送状态(板子向PC发送);进去之前要将上一次存入变量中的字符串清0;

接着进入发送模式,进入第一件事先禁止接收,然后就可以开始发送之前存进去的数据了,(这就发送完毕了),紧接着进入接收模式;字符串的长度清零;;;;最后...打开允许中断标志位

 

如果有同学初学ZigBee,想要相关资料的可以留下邮箱!

 

 

 

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值