zigbee 怎样同时开启两个串口开启任务

Zigbee学习第二天-2——两个基础实验之USART串口实验
入学以来,老师就一直强调串口的使用非常的重要,对我们的要求就是搞懂RS232通信,在学了STM32,modbus之后我觉得老师的话很对,串口是机和单片机通讯的桥梁,而实现串口printf函数更是对后面工程的调试工作带来了极大的方便。
我的串口实验主要依次完成四个功能,以此来学习Zigbee串口的使用。
串口实验主要用到的寄存器有:
CLKCONCMD:时钟频率控制寄存器
CLKCONSTA:时间频率状态寄存器
U0CSR:USART0控制与状态寄存器
U0GCR:USART0通用控制寄存器
U0BAUD:波特率控制
U0DBUF:收发缓冲寄存器
1、CC2430向PC机发送固定字符串,学会用CC2430串口发送数据,方法只能是查询法。
完成两个函数:串口初始化函数 串口发送字符串函数,代码如下
initUARTtest(void)
&CLKCON &=
~0x40;&&&&&&&&&&&&&
while(!(SLEEP &
0x40));&&&&&
//等待晶振稳定
&&& CLKCON
~0x47;&&&&&&&&&&&&
//TICHSPD128分频,CLKSPD不分频
&&& SLEEP |=
//关闭不用的RC振荡器
0x00;&&&&//
P0口选作串口
&&& P0SEL =
0x3c;&&&&//&
串口引脚映射,P0.2 P0.3 P0.4
P0.5用作串口,为啥是4个引脚,因为串口模式可以选择四线连接(RXD\TXD\RTS\CTS)也可以是两线制(RXD\TXD),这里的值也可以是0X0C,两线连接:P0.2
P0.3分别是串口的RX、TX。
~0XC0;&&&//P0优先作为串口0
0x80;&&&&//UART方式
&&& U0GCR |=
&&& U0BAUD |=
216;&&&&//波特率设为57600
&&& UTX0IF =
UartTX_Send_String(char *Data,int len)
& for(j=0;j
&&& U0DBUF =
&&& while(UTX0IF
&&& UTX0IF =
波特率的设置值取决于U0GCR.BAUD_E与U0BAUD.BAUD_M的值
计算公式:Baudrate=(256+U0BAUD.BAUD_M)*2U0GCR.BAUD_E*F/228&
&&&&&&&&&&&&
其中F是系统时钟频率,等于16MHZ或32MHZ
系统时钟常用波特率设置U0GCR.BAUD_E与U0BAUD.BAUD_M的取值参照下表
2、PC机向CC2430发送控制命令控制LED,学会用CC2430串口接收数据,方法有两种:查询法与中断法。&
阿元大侠zigbee串口讲解的很不错,参考链接&
3、串口回显即在PC 上从串口向CC2430 发任意长度为30 字节的字串,若长度不足30 字节,则以“#“为字串末字节,CC2430 在收到字节后会将这一字串从串口反向发向PC,用串口助手回显出来。
4、实现CC2430的printf函数
实现printf函数主要是重定义putchar函数,头文件包含"stdio.h" 。
putchar函数实现代码如下:
int putchar(int c)
&& if(c== '\n')
while(!UTX0IF);&
UTX0IF = 0;&
U0DBUF = '\r';&
while(!UTX0IF);&
&&& UTX0IF =
&&& U0DBUF =
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Zigbee终端设备在深度睡眠的情况下能否利用串口唤醒?在z-stack中该怎么设置? - ZigBee技术 - 德州仪器在线技术支持社区
Zigbee终端设备在深度睡眠的情况下能否利用串口唤醒?在z-stack中该怎么设置?
发表于3年前
<input type="hidden" id="hGroupID" value="43"
如题,利用&a href=&.cn/tool/cn/z-stack& target=&extwin&>z-stack&/a>将&a href=&.cn/product/cn/CC2530& target=&extwin&>CC2530&/a>终端节点深度睡眠,可不可以实现&a href=&.cn/product/cn/CC2530& target=&extwin&>CC2530&/a>收到串口数据时唤醒?谢谢!&/p>&div style=&clear:&>&/div>" />
Zigbee终端设备在深度睡眠的情况下能否利用串口唤醒?在z-stack中该怎么设置?
此问题尚无答案
All Replies
如题,利用将终端节点深度睡眠,可不可以实现收到串口数据时唤醒?谢谢!
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
状元58185分
PM3 模式下 可以由外部中断或复位唤醒
进入休眠模式时主系统时钟是关闭的,串口是无法正常工作的
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
那串口不是有中断吗?串口来数据以后(这部分数据可能不能正确接收,没关系),调用中断函数唤醒,然后开始接收数据。这个思路可以吗?
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
状元74085分
PM3模式下所有模块都不供电了,包括串口
You have posted to a forum that requires a moderator to approve posts before they are publicly available.温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
电子行业从业人员
个人网站:
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(382)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'Zigbee协议栈--添加串口的接收与发送任务',
blogAbstract:'说明:
1.开发板是CC2431 开发板
2.SerialApp试验
3.CC2431串口接收到数据后将接收到的数据通过串口返回
4.DMA 方式,非串口中断方式
在SerialApp.c文件中,定义 新任务的ID 变量
byte Baly_TaskID;
同时,添加两个函数:
void uart0_test(uint8 task_id){&uart0_TaskID = task_ }
uint16 uart0_fanhui(uint8 task_id,uint16 events){&P1_0 = ~ P1_0;
&HalUARTWrite( SERIAL_APP_PORT, dat_rec, g_len );//串口发送字符串',
blogTag:'接收,zigbee,串口,发送',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:6,
publishTime:1,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:true,
hostIntro:'电子行业从业人员\r\n\r\n个人网站: ',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 zigbee串口接收数据 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信