串口收发字符串 PC端通过串口发送数据给硬件端(数据长度不超过50,终止符为#),硬件端收到数据后发送回PC端 *****板子首先是接收模式***** *****然后板子开始发送接收到的字符串***** 实验相关寄存器 PERCFG:选择备用位置 UxCSR:选择为UART方式 UxGCR和UxBAUD为:波特率 UTXxIF:发送中断标志位 UxDBUF:数据缓存区 UxCSR:打开允许接收 EA :总中断 CLKCONCMD:系统时钟 CLKCONSTA:用来获取当前时钟状态 --------------------第一步-------------------- 先定义全局变量 ****一次最多接收的字符 ****存放接收过来的字符串 ****用于决定是接收模式还是发送模式 ****统计一次接收到的字符个数 --------------------第二步-------------------- 串口发送字符串 参数中一个字符串,一个字符串长度 将参数中字符串赋值给---数据缓存区(UxDBUF) 等待当前字节发送完毕,然后标志位会置1 再手动将发送标志位置0(准备发送下一个字节) --------------------第三步-------------------- 配置串口 先选择串口的备用位置(PERCFG) 设置端口位为外设功能(PxSEL) 设置优先级(PxDIR) 设置为串口模式(UxCSR) 设置波特率(UxGCR、UxBAUD) 发送标志位初始化为0(UTXxIF) 开启串口接收使能(UxCSR) 总中断开启(EA) 串口接收中断使能(IEN) --------------------第四步-------------------- 系统时钟初始化 设置系统时钟(CLKCONCMD) 等待系统时钟稳定 设置系统主时钟频率(CLKCONCMD) --------------------第五步-------------------- 接收中断服务函数 先清除接收中断 将缓存区的字符串赋值给存放接收字符串的变量 --------------------第六步-------------------- 主函数 板子会一直处于接收状态,然后判断变量中是否有东西,如果有,就看是否存在结束符及超过字符串的长度;如果没有结束符且字符串长度是否超过设定的,如果没有则将字符串赋值给接收的字符数组;否则进入发送状态(板子向PC发送);进去之前要将上一次存入变量中的字符串清0; 接着进入发送模式,进入第一件事先禁止接收,然后就可以开始发送之前存进去的数据了,(这就发送完毕了),紧接着进入接收模式;字符串的长度清零;;;;最后...打开允许中断标志位 如果有同学初学ZigBee,想要相关资料的可以留下邮箱!