基于KW01的小屏LED汉字滚动实验说明.docx

基于KW01的小屏LED汉字滚动实验说明.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于KW01的小屏LED汉字滚动实验说明

基于KW01的小屏LED汉字滚动实验说明1.1 功能概述本样例工程用于实现对KW01的小屏LED显示功能测试,主要功能如下:1)由PC方测试软件通过文本框输入需要显示汉字,通过串口发送汉字数据包至PC Node节点;2)PC Node节点从串口收到PC数据包后由RF转发至Test Node节点并保存至Flash;3)PC方软件发送完汉字包后,通过PC Node节点发送结束帧标记给Test Node节点;4)Test Node节点判断所有汉字是否全部正确接收保存,如果全部接收正确,发送成功标志帧给PC Node节点,否则发送丢帧标志及其丢帧缓冲区给PC Node节点,PC软件通过丢帧缓冲区的判断重发丢帧给Test Node节点,直至Test Node节点全部正确接收为止;5)接收成功后,小屏能够滚动显示接收的汉字;5)PC方测试软件可以发送显示亮度、移动速率、移动方式给Test Node节点控制LED汉字的显示方式。1.2 PC Node节点设计PC Node节点主要功能包括运行指示灯闪烁、串行中断接收、串行中断解帧、RF数据发送、RF中断接收,具体文件功能如下:(0)主头文件app_inc:调用头文件定义,全局变量声明,宏常量定义,登记任务模板编号,声明任务栈及大小,声明任务函数,声明中断处理函数;(1)主任务函数task_ main():完成全局变量初始化、设备初始化,其他任务创建,中断ISR安装,功能模块使能等功能;(2)指示灯闪烁任务task_ light():每1秒闪烁一次指示灯;(3)UART0中断接收处理函数isr_uart0_re():接收串口数据,并调用CreateFrame()函数组帧,组帧完成后置串行接收事件位Event_Uart0_Re,启动解帧任务task_uart0_re;(4)UART0数据解帧task_uart0_re():判断串行接收事件位Event_Uart0_Re,解析串行接收数据帧,根据数据帧内容决定会送握手信号,直接串口会送接收信息,设置RF发送轻量级事件位Event_RF_Send,启动RF发送任务task_rf_send()。(5)RF发送任务task_rf_send():判断RF发送事件位Event_RF_Send,调用RF_SendData()函数转发接收测试数据包;(6)RF中断处理gpio_CD_ISR():进入接收RF中断,置相应RF接收事件位Event_RF_Recv,启动RF接受任务task_rf_Recv()。(7)RF接收任务task_rf_Recv():判断RF接收事件位Event_RF_ Recv,调用RF_ReceiveFrame()接收Test Node节点RF会送测试数据包,解析成功后将测试数据包发送至PC;(8)任务模板task_templates:定义所有任务函数。1.3 PC Node任务执行流程对于带操作系统MQXLite的程序,第一步,我们先在task_templates.c中查看其任务模板列表,确定总任务个数(本工程共有5个任务)、任务优先级和确定自启动任务是哪个(即首先运行的任务,在该任务中会创建任务模板列表中的其他任务,本样例工程中,自启动任务为TASK_MAIN);第二步,进入自启动任务“task_main”,在本任务中,我们可以看到其初始化了UART、light、adc、RF等外设模块,并创建了light、rf_Send、rf_Recv等任务(任务一旦创建完成将进入就绪态),安装了UART、PORTD中断服务例程(具体中断服务函数的实现在08_Source文件夹下的isr.c中),最后,task_main进入阻塞态,调度器开始在就绪队列中的另外4个任务。第三步,根据任务优先级,我们发现所有任务中,task_uart0_re、rf_Send与rf_Recv三个任务优先级最高,在此,我们依次查看task_uart0_re、rf_Send与rf_Recv任务(ligth与ADC任务在此不予分析)。在task_uart0_re任务中,无限等待Uart0接收事件位被置位,等待到测试数据包后并判断为准备转发数据包任务时,置RF发送事件位。在rf_Send任务中,无限等待RF发送事件位被置位,等待到测试数据包后发送了一个数据包。在rf_Recv任务中,无限等待RF接收事件位被置位,此RF事件位在isr.c中断服务例程中的RF接收中断例程中被置位。当RF接收数据产生接收中断后,rf_Recv任务被执行,最后通过UART发送给PC机,并清除RF事件位,重新进入阻塞态,直到RF事件位再次被置位。到此,“PC Node”的功能已经清楚,其主要功能为:等待串行接收中断接收数据组帧,解析后分三种情况处理,当接收到回传的无线数据包后,通过UART发给PC机。1.3

您可能关注的文档

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档