传感器与RFID实验报告PC-机的串口调试助手显示“Hello-World!”传感器与RFID实验报告PC-机的串口调试助手显示“Hello-World!”
传感器与RFID实验报告
一、实验目的:
1. 理解串口通信原理;
2. 掌握 CC2530 单片机与 PC 机串口通信的方法。
二、实验设备:
1.unSP USB Probe 在线调试器一个;
2. 物联网多网技术综合教学开发设计平台一套。
三、实验要求:
1. 编程要求:编写一段 C 语言程序;
2. 实验现象:PC 机的串口调试助手显示“Hello World~”; 3. 实现功能:单片机向 PC 机发送字符串,PC 机...
传感器与RFID实验报告PC-机的串口调试助手显示“Hello-World!”
传感器与RFID实验报告
一、实验目的:
1. 理解串口通信原理;
2. 掌握 CC2530 单片机与 PC 机串口通信的方法。
二、实验设备:
1.unSP USB Probe 在线调试器一个;
2. 物联网多网技术综合教学开发设计平台一套。
三、实验要求:
1. 编程要求:编写一段 C 语言程序;
2. 实验现象:PC 机的串口调试助手显示“Hello World~”; 3. 实现功能:单片机向 PC 机发送字符串,PC 机接收并显示字符串内容。
四、实验步骤:
1.使用Mini USB延长线将协调器的Mini USB接口连接至PC机的USB接口; 2.使用方口USB延长线将烧写器连接至PC机上;
3.连接烧写器和协调器,确认连接无误;
4.使用“物联网综合应用试验箱”文件夹的对应驱动程序,安装至PC机上(具体安装方法见前几次实验报告);
5.在控制面板——设备管理器中,观看是否成功安装驱动,并查看串口的连接方式(本实验为COM3);
6.打开IAR,编写程序,烧写进单片机中(具体操作方法同前几次实验),实现“hello world~”字符的发送;
7.打开串口调试助手,可以发现,程序已经完成定时发送“hello world”字符串;
8.修改程序,使程序实验可通过串口调试助手发送任何自定义数据; 9.打开串口调试助手,选择连接方式“COM3”,打开终端,在窗口输入数据,点击“发送”,可以发现,完成了自定义数据的发送。
图为使用程序发送Hello World~字节的实现结果。
图为完成程序修改,使用自定义字符发送的实现结果。
附:完成实验步骤8的关键为:修改UART.c文件中的函数__interrupt void
UART0_ISR(void),去掉使其失效的注释符,使该函数完成自己的作用,完成自定义数据的发送。如图所示:
五、实验
:
1.了解了串口通讯的使用,UART USB转串口通信数据线的使用; 2.学会了如何使用程序发送程序中自带的字符;
3.学会了如何使用UART文件中包含的项目,实现自定义的字符发送; 4.最后程序的修改是在老师的指导下完成,说明自己对程序的理解还不够;
5.完成通信的函数大部分为系统自带,自己能独立编程的能力有限,希望能庚随老师继续学习。
六、实验中使用的程序的理解和注释:
Basic.c文件
#include"Basic.h"
/***********************************************************
** 函数名称: delay** 实现功能: 微秒级短暂延时函数 ** 入口参数: n:延时值;** 返回结果: None
void delay(uint n)
{
uinti;
for(i=0;i
//数据类型重命名
typedefunsignedintuint; typedefunsignedcharuchar; typedefunsignedint uint16; typedefunsignedchar uint8; //LED_D8_D9 操作
#define SET_LED_D8 (P2 &= 0XFE) //点亮LED_D8 #define SET_LED_D9 (P1 &= 0XFD) //点亮LED_D9 #define CLR_LED_D8 (P2 |= 0X01) //熄灭LED_D8 #define CLR_LED_D9 (P1 |= 0X02) //熄灭LED_D9 #define LED_D8_TURN (P2 ^= 0X01) //改变LED_D8状态(亮变灭,灭变亮)
#define LED_D9_TURN (P1 ^= 0X02) //改变LED_D9状态(亮变灭,灭变亮)
void delay(uint);//微秒级短暂延时函数
void Delay(uint n);//约10ms延时函数
voidLEDPortInit(void);//LED_D8_D9 端口初始化函数 uint8 GetCh08bitADC(void);//ADC通道0以8采样位获取输入 voidSetIOInput(uint8 group, uint8 bit);//设置端口为三态输入 voidSetIOOutput(uint8 group, uint8 bit);//设置端口为通用输出IO口 uint8 GetIOLevel(uint8 group, uint8 bit);//获取IO口输入电平状态 voidSetIOLevel(uint8 group, uint8 bit, uint8 value);//设置IO端口输出电
平状态
UART.h 文件
#ifndef __UART_H__
#define __UART_H__
#include"Basic.h"
#include
// CC2530 UART 波特率可选值
typedefenum
{
BAUD_2400, //U0GCR |= 6; U0BAUD |= 59;
BAUD_4800, //U0GCR |= 7; U0BAUD |= 59;
BAUD_9600, //U0GCR |= 8; U0BAUD |= 59;
BAUD_14400, //U0GCR |= 8; U0BAUD |= 216;
BAUD_19200, //U0GCR |= 9; U0BAUD |= 59;
BAUD_28800, //U0GCR |= 9; U0BAUD |= 216;
BAUD_38400, //U0GCR |= 10; U0BAUD |= 59;
BAUD_57600, //U0GCR |= 10; U0BAUD |= 216;
BAUD_76800, //U0GCR |= 11; U0BAUD |= 59;
BAUD_115200, //U0GCR |= 11; U0BAUD |= 216;
BAUD_230400, //U0GCR |= 12; U0BAUD |= 216; }BaudSel;
void UART0_Init(BaudSel baud);//UART0 初始化设置
void UART0_Send(char *Data,intlen);//UART0 发送数据
void UART0_Dis_uNum(uint16 uValue );//UART0 以十进制方式显示无符号数
void UART0_Dis_fNum(floatfValue );//UART0 以十进制方式显示浮点型数
UART.c文件
#include"UART.h"
/*********************************************************** ** 函数名称: UART0_Init** 实现功能: 初始化 UART0
** 入口参数: baud:波特率设置;** 返回结果: None
void UART0_Init(BaudSel baud)
{
CLKCONCMD &= ~0X40; //晶振
while(!(SLEEPSTA & 0X40)) ; //等待晶振稳定
CLKCONCMD &= ~0X47; //TICHSPD128分频,CLKSPD不分频
SLEEPCMD |= 0X04; //关闭不用的RC振荡器
PERCFG = 0X00; //位置1 P0口
P0SEL |= 0X0C; //P0用作串口
U0CSR |= 0X80; //UART方式
switch(baud)
{
case BAUD_2400: U0GCR |= 6; U0BAUD |= 59; break; case BAUD_4800: U0GCR |= 7; U0BAUD |= 59; break; case BAUD_9600: U0GCR |= 8; U0BAUD |= 59; break; case BAUD_14400: U0GCR |= 8; U0BAUD |= 216; break; case BAUD_19200: U0GCR |= 9; U0BAUD |= 59; break; case BAUD_28800: U0GCR |= 9; U0BAUD |= 216; break; case BAUD_38400: U0GCR |= 10; U0BAUD |= 59; break; case BAUD_57600: U0GCR |= 10; U0BAUD |= 216; break; case BAUD_76800: U0GCR |= 11; U0BAUD |= 59; break; case BAUD_115200: U0GCR |= 11; U0BAUD |= 216; break; case BAUD_230400: U0GCR |= 12; U0BAUD |= 216; break; default : U0GCR |= 11; U0BAUD |= 216; break;
//BAUD_115200;
}
UTX0IF = 0;
U0CSR |= 0X40; //允许接收
IEN0 |= 0X84; //开总中断,接收中断
}
/***********************************************************
** 函数名称: UART0_Send** 实现功能: UART0 发送数据** 返回结果: None ** 入口参数: Data:待发送数据区首地址len:待发送数据的字节数 void UART0_Send(char *Data,intlen) {
inti;
for(i=0;i
本文档为【传感器与RFID实验报告PC-机的串口调试助手显示“Hello-World!”】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。