




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.实验7 CC2530串口控制器编程本实验完成时间:第8周、第9周一、实验目的1、CC2530串口控制器的原理;2、掌握CC2530串口控制器的编程步骤;二、实验任务 从PC机上的串口调试助手(超级终端)输入的字符能够发送给CC2530,CC2530再把所接收到的字符“原路”回传给对方。 直观的效果:当串口调试助手(超级终端)激活时,键盘上输入的字符能够在串口调试助手的窗口那个回显。三、实验原理 1、何谓超级终端和串口调试助手 超级终端:一个和uart串口相关联的窗口应用程序。它能够从uart串口上所接收到的字符显示出来,同时当该窗口激活时能够把键盘所键入的字符从串口发送出去。超级终端能够从串口收发字符成功的前提是串口通信双方所约定的收发格式一致。它和一般所说的串口调试助手类似,但有区别:超级终端不会以16进制的形式显示所接收的字符编码;串口调试助手不会把键盘输入的字符实时从串口发送出去,需要点击手动发送。串口调试助手:桌面上有串口聊天助手,如果不能打开,可以如图1在S503的D盘/试验箱资料光盘/工具软件/串口工具和驱动/串口聊天助手,打开后如图2所示。打开任意一个即可!图1 串口聊天助手位置设置参数图2 串口聊天助手界面图2、实验室GEC-CC2530开发板的uart串口接口(USB转串口,红色圈圈)如图3:图3 单片机开发板的USB转串口该接口和cc2530所连接的电路图如下:由该图不难得知:P0_3作为串口的发送管脚;P0_2作为串口的接收管脚;P0_5、P0_4作为硬件流控用的,一定要注意,我们平时见到的串口的交叉线都只用到了收、发、地三根线,所以在串口设置是都禁止硬件流控!由此可见,GEC-CC2530所占的资源就是P0_3(发送管脚)、P0_2(接收管脚),更进一步结合CC230数据手册的GPIO设备管脚映射表分析:可知:GEC-CC2530串口 P0_3(发送管脚)、P0_2(接收管脚)uart 03、cc2530串口uart编程步骤(1)总线初始化,相关SFR如下PERCFG P2DIR PxSEL UxCSR我们uart0位于P0位置当P0口管脚冲突是uart0优先当P0_2 P0_3作为了uart0的收发管脚2、数据链路格式化(数据位、停止位、校验位、波特率);UxUCR UxGCR UxBAUD波特率的计算:在CC2530的时钟位高速时钟位32M时,我们可以按照下表进行配置:3、读写串口收发寄存器 UxDBUF 、RX_BYTE(UxCSR的第2位) 、TX_BYTE(UxCSR的第1位) RX_BYTE:接收字节状态,0:没有收到字节;1:准备好接收字节TX_BYTE:传送字节状态,0:字节没有被传送;1:字节准备被传送我们读取数据时,RX_BYTE置1,然后读UxDBuf;我们发送数据时,TX_BYTE置1,且将准备传送的字节写入到UxDBUF;四、实验步骤1、领取单片机开发板,编写代码,先编译下载,如图4下载时需要接下载器,下载好之后,断开下载器和方口线,再将方口线直接接在单片机开发板的USB转串口上如图5,如果电源指示灯不亮,则将RST旁边的拨码开关打到OFF位置。拨码开关 图4 连接下载器 图5 和PC机进行串口通信如图5连接好之后,打开设备管理器,通过设备管理器中查看COM 口,查找自己是COM几。一般方口线直接相连后,静待20S就会出现设备。若直接将方口线接在单片机上,打开设备管理器发现出现如下图6的?,则需要右键点击问号更新安装USB转串口的驱动。此驱动需要下载:ftp/教学软件/粤嵌zigbee USB转串口/,解压至当前文件夹下,右键更新驱动路径为选择刚刚解压的文件:CH341SER。更新安装驱动之后,出现如图7所示,比刚才多了一个COM3,则我们现在就是COM3口。在串口助手上选择COM3口。若不清楚自己刚才连上的是COM几,断开方口线,再重新连接方口线。打开串口调试助手,设置好COM口,和波特率即可; 图6 没有识别出USB转串口 图7 安装驱动后 编程实现:使用cc2530的串口0来和PC机通信,通信格式为:8位数据位、1位停止位、没有奇偶校验位、没有流控、波特率为115200;(1)程序实现在串口调试助手上每隔0.5秒显示HELLO WORD!(2)程序实现在串口调试助手上把键盘输入的字符回显出来2、 建立IAR工程,完善以下代码以实现实验任务:程序实现在串口调试助手上大约每隔0.5秒显示HELLO WORD!可参考课本P110,但不与课本上完全相同第一题:#include #define uint unsigned int#define uchar unsigned charvoid delay(uint);char Txdata= HELLO WORD! ;void set_clock_speed()/时钟初始化/下面的代码是把系统的高速时钟设置为32M,请对为下三条句添加注释 CLKCONCMD&=(16);/ while(CLKCONSTA&(16);/ CLKCONCMD&=0X07;/void delay(unsigned int count)/延时函数 unsigned int i,j; for(i=0;icount;i+) for(j=0;j10000;j+) ; void uart0_init()/串口初始化:可参考课本P110,但不与课本上完全相同/补充代码实现初始化:USART0选择uart模式,管脚为P0(位置1),数据格式为8位数据位、1位停止位、没有校验位,波特率为115200,LSB发送模式,1为停止,0为起始 void main() set_clock_speed();/时钟初始化 uart0_init();/串口初始化 while(1) int j; for(j = 0; Txdataj!=0; j+)/下面三句实现串口发送,补充下面代码 U0DBUF = Txdataj; / 填充数据到串口数据寄存器 /通过测试TX_BYTE标志位是否为1等待字节发送完毕: / 将TX_BYTE标志位清零 /延时 3、 编译链接程序后下载到cc2530板子上,验证是否完成了显示任务,修改代码中的HELLO WORD!为HELLO WORD!r,编译、下载,观察运行结果;再修改成HELLO WORD!rn观察运行结果; 方法: U0DBUF = Txdataj; while(UTX0IF = 0); UTX0IF = 0; 温馨提示:上述代码中实现串口发送的3句代码可以换成以下方法,请测试并在课后多多思考: 以下内容为第9周实验内容:4、 建立IAR工程,程序实现在串口调试助手上把键盘输入的字符回显出来,完善以下代码以实现实验任务第二题:#include void set_clock_speed()/下面的代码是把系统的高速时钟设置为32M,请大家通过查看手册尝试自己来写,不要抄袭 void uart0_init()/USART0选择uart模式,管脚为P0,数据格式为8位数据位、1位停止位、没有校验位 /波特率为19200,LSB发送模式,1为停止,0为起始 /将串口0的位置选在P0口:PERCFG的第0位清0 /P0口的外设优先级控制设为串口0优先:P2DIR7:6清0 /P0口的2、3管脚设为外设工作方式 /USART0工作的UART模式,接收使能 /据格式为8位数据位、1位停止位、没有校验位 /波特率baud_e的选择 /波特率设置 void uart0_send_byte(char tmp)/将字节tmp从串口0发送出去char uart0_receive_byte(void)/从串口0接收一个字节void main()/补充完整 char buf; set_clock_speed(); uart0_init(); while(1) buf=/从串口0接收一个字符到buf; /把接收到的字符又给串口0发送回去 5、 编译链接程序后下载到cc2530板子上,验证是否完成了任务;五、拓展实验1.在上面的例子中我们定义了uart0_send_byte函数可以向串口发送一个字符,当然在此基础上我们可以实现如何向串口发送一个字符串的函数。我们是否可以用c语言的标准IO函数printf呢?printf的强大的格式控制还是能够给我带来很大的方便的。printf最终会导致putchar的调用,所以我们只需要把putchar的输出定向到串口就可以了。由于printf的运行消耗内存较多,我们需要工程的缺省存储模型做如下设置:在工程中添加如下代码:#include _near_func int putchar(int c) uart0_send_byte(c); return c;然后你就可以在代码中用printf输出了!2.上述串口通信完成的同学,可以尝试2位同学合作,A同学使用一台电脑+单片机大板+下载线(不连接串口线),B同学使用一台电脑+单片机大板+下载线(不连接串口线),将两块板子上的地线通过杜邦线相连,将A的TXD连接B的RXD,A同学给自己单片机写发送数据0X55,B同学给自己单片机写接收代码,两人波特率一致,当B 同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 舅舅房子赡养继承协议书
- 肇庆手提电脑租赁协议书
- 朱砂原材料采购合同范本
- 碧桂园开发的合同协议书
- 网络服务代理合同协议书
- 苏陕两地协作框架协议书
- 肉牛供应买卖合同协议书
- 联合种植香芋协议合同书
- 阁楼钢结构制作合同范本
- 纸箱送货如何写合同协议
- 陪诊员培训课件
- 胆总管结石治疗
- 2025年中医养生茶饮课件
- 《企业培训与发展课件-人才储备与管理体系》
- 桥梁安全知识讲座
- 2024年公路工程质量检验评定标准
- 2025年浙江衢州市大花园集团招聘31人高频重点提升(共500题)附带答案详解
- 光伏电站培训
- 2025年天水市麦积区事业单位遴选历年管理单位笔试遴选500模拟题附带答案详解
- 胸外科一病一品
- Profinet(S523-FANUC)发那科通讯设置
评论
0/150
提交评论