物联网实验
实验一基础实验
1.1 串口调试组件实验
1.1.1 实验目的
在程序开发过程中,往往需要对编写的代码进行调试,前面介绍了通过LED 进行调试的方法,该实验主要是介绍串口调试的方式。本实验通过一个简单的例子让读者学会串口调试编写的代码。
1.1.2 实验原理
串口调试的语句格式为, ADBG( x, args…), 其中x为调试级别。我们在Makefile中定义一个默认级别,在写代码的时候只有x不小于Makefile中定义的默认级别时,该语句才能被输出到串口,args…为打印的内容,具体的格式和c语言中printf相同。ADBG(….) 语句实际上是通过CC2430的串口Uart0输出打印语句的。
1.1.3 实验步骤
1. 将同电脑用烧录线连接好,打开的开关,同时将的烧录开关拨上去
2. 用串口线将和PC机器连接起来
3. 打开串口助手(串口助手在光盘中的目录为 $(光盘目录)\辅助工具\串口助手),波特率设置为9600,其中串口号要根据自己的情况选择,点击【打开串口】。
4. 打开Cygwin开发环境
5. 在Cygwin界面中执行cd apps/Demos/Basic/ SerialDebug,进入到串口调试实验目录下。
6. 在串口调试代码目录下执行make antc3 install,进行编译和烧录。
7. 烧录成功后,实验现象为串口有内容输出,输出内容如下图。
1.1.4 继续实验
通过级别控制,使得某些调试语句没有被输出到串口
修改方案:
如实验原理说讲ADBG( x, args…),x是调试级别,当x小于makefile文件定义的默认级别时,此ADBG语句将不被执行。
所以可以做如下修改:
…………
#define DBG_LEV 3000
#define RPG_LEV 2000
…………
ADBG(DBG_LEV, "\r\n\r\nDEMO of Serial Debug\r\n", 'x');
ADBG(DBG_LEV, "1. This is a string, and this is char '%c'\r\n", 'x');
ADBG(DBG_LEV, "2. NUM1: HEX=0x%x, DEC=%d\r\n", (int)(num1), (int)(num1));
ADBG(RPG_LEV, "2. NUM2: HEX=0x%lx, DEC=%ld\r\n", (uint32_t)(num2), (uint32_t)(num2)); ADBG(RPG_LEV, "3. FLOAT: %f\r\n", float1);
…………
这样,第4句和第5句就不会输出。输出内容如下图所示:
1.1.5 碰到的问题
第一次将同电脑用烧录线连接起来时,电脑会无法识别此USB设备。这样就不能把程序烧录到和节点当中。需要先在PC机上安装此USB设备的驱动程序。具体操作是在设备管理器当中,双击图标有感叹号的设备,点击更新驱动程序,路径为:F:\实验室软件\物联网\驱动程序。
1.1.6 心得体会
本实验属于验证性实验,比较简单,代码也浅显易懂。主要通过此实验学习了如何通过串口对程序进行调试,这个调试功能是分级别调试的,只有调用处的调试级别不小于makefile中定义的调试级别的时候才会被输出到串口。
1.2 串口组件通信实验
1.2.1 实验目的
能够掌握CC2530中的串口的通讯功能,包括串口的发送功能和接受功能以及串口波特率设置功能。为今后的综合实验打下基础。
1.2.2 实验原理
平台提供了串口通信模块组件PlatformSerialC,该组件提供了三个接口:StdControl、UartStream以及CC2530UartControl,其中,StdControl用于控制串口通信模块的开关,UartStream提供了串口收发功能;CC2530UartControl 接口用于设置串口通信得到波特率。其中UartStream的实现,实际上是在串口层做了一个缓冲,每次将发送缓冲器的数据一个字节一个字节地往串口发送,最终达到串口的连续传输。
1.2.3 实验步骤
1. 将同电脑用烧录线连接好,打开的开关
2. 用串口线将和PC机器连接起来
3. 打开串口助手(串口助手在光盘中的目录为 $(光盘目录)\辅助工具\串口助手),波特率设置为9600,其中串口号要根据自己的情况选择,点击【打开串口】。
4. 打开Cygwin开发环境
5. 在Cygwin界面中执行cd apps/Demos/Basic/ SerialIO,进入到串口通讯实验目录下。
6. 在串口通讯代码目录下执行make antc3 install,进行编译和烧录。
7. 烧录成功后,实验现象为串口有内容输出。
8. 根据串口输出的提示进行操作,串口提示为按下键盘【1】,的蓝灯会闪烁一下,按下键盘【2】,的黄灯会闪烁一下。如果是其它按键,串口会提示“Error key”,如下图。
1.2.4 继续实验
实现一个串口实验,在串口助手中实现回显的功能。
修改方案:
在task void lightLED() 函数当中,当m_echo_buf==’1’ 和m_echo_buf==’2’ 时其各自的ADBG语句后面都多加一句 post showMenuTask();
task void lightLED()
{
if(m_echo_buf=='1')
{
LED_BLUE_TOGGLE; /* 切换蓝LED灯 */
ADBG(DBG_LEV, "You choose to toggle BLUE LED\r\n");
post showMenuTask();
}
else if (m_echo_buf == '2')
{
LED_YELLOW_TOGGLE; /* 切换黄LED灯 */
ADBG(DBG_LEV, "You choose to toggle YELLOW LED\r\n");
printf输出格式用串口助手显示post showMenuTask();
}
else
{
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论