【1 】USART0选择UART模式,波特率9600,I/O引脚映射到备用位置1。
【2】命令字“0xA1”,点亮D4灯,操作完成后,返回“D4 is open!”。
【3】命令字“OxA2”,关闭D4灯,操作完成后,返回“D4 is closed!”。
【4】命令字“OxB1”,点亮D6灯,操作完成后,返回"D6 is open!”。
【5】命令字“OxB2”,关闭D6灯,操作完成后,返回“D6 is closed!”。

#include"ioCC2530.h"
#define D4 P1_1
#define D6 P1_4
unsigned char cmd=0;//cmd用来储存上位机发来的命令。可以通过判断它是否为0来决定是否接收到上位机的数据。
void Set_Clock_32MHZ()//系统时钟切换函数
{CLKCONCMD&=~0X40;//要操作的位为0100 0000。选择系统时钟源为32MHZ晶振while(CLKCONSTA&0X40);/*CLKCONSTA原本的值为0100 0000 & 0100 0000 的值为0X40,while内条件是成立的,做空指令等待。*//*等CLKCONSTA的值变为0000 0000(即从16MHZ切换成32MHZ了),相与的结果就是0X00了,while条件不成立,达到等待晶振稳定的目的。*/CLKCONCMD&=~0X47;//要操作的位为0100 0111,将其取反清零。最后进一步设置时钟速度,成功设置系统主时钟频率为32MHZ
}
void Init_Port()//端口初始化函数
{P1SEL &=~0X1B;P1DIR |=0X1B;P1 &=~0X1B;
}
void Init_Uart0()//串口初始化函数
{PERCFG &=~0X01;//设置串口的引脚功能,将P0_2和P0_3设置成外设功能P1SEL |=0X0C;  //将P0_2和P0_3端口设置成外设功能U0BAUD=59; //设置串口的波特率:32mhz情况下9600U0GCR=8;U0UCR |=0X80;//设置UART控制寄存器 U0UCRU0CSR |=0XC0;//设置控制与状态寄存器  U0CSRUTX0IF=0;   //清除中断标志URX0IF=0;URX0IE=1;    //使能串口数据接收完成中断EA=1;            //开启总中断
}
void UR0_SendByte(unsigned char dat)//串口字节发送函数
{U0DBUF=dat;while(UTX0IF==0);//串口是一位一位发送出去的,需要点时间,通过监控它的标志位来确定是否发送完成。//当串口数据发送完成之后UTX0IF会被置1。这里用while空语句等待,若发送完成则条件不成立,开始执行下面的语句。UTX0IF=0;    //将其清零,使得下次还能用。
}
void UR0_SendString(unsigned char *str)//串口字符串发送函数。
{while(str!='\0')//字符串有一个\0作为发送完的标志{UR0_SendByte(*str++);//发送完毕之后指针指向下一个内容}
}
# pragma vector=URX0_VECTOR//串口接收完成中断服务函数。
__interrupt void Service_UR0Recv()
{cmd=U0DBUF;//B0DBUF储存接收到的数据。将接收到的数据付给临时变量cmd}
void Control_LED()//命令控制灯光开关函数。在收到上位机的指令后调用此函数来进行对LED的控制。
{switch(cmd){case 0XA1:D4=1;UR0_SendString("D4 is opened!\r\n");break;case 0XA2:D4=0;UR0_SendString("D4 is closed!\r\n");break;case 0XB1:D6=1;UR0_SendString("D6 is opened!\r\n");break;case 0XB2:D4=0;UR0_SendString("D6 is closed!\r\n");break;}cmd=0; //使用完cmd之后清零,方便下次使用。
}
void main()
{Set_Clock_32MHZ();Init_Port();Init_Uart0();while(1){if(cmd!=0)//如果cmd不为0,则说明从上位机收到了新的命令,此时就用这个命令来处理LED。{Control_LED();     }}
}

十六、串口命令控制LED灯开关相关推荐

  1. 利用 Andorid 手机连接 Arduino 并控制 LED灯开关

    利用 Andorid 手机连接 Arduino 并控制 LED灯开关 ***首先,将 Arduino 断电***,然后按着蓝牙模块上的黑色按钮,再让 Arduino 通电,如果蓝牙模块指示灯按2秒的频 ...

  2. 使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关

    上篇"[物联网(IoT)开发]Arduino 入门 Hello World(LED闪烁)"只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断 ...

  3. 【物联网(IoT)开发】使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关

    上篇"[物联网(IoT)开发]Arduino 入门 Hello World(LED闪烁)"只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断 ...

  4. ZigBee-CC2530单片机 - 实现计算机串口通讯控制LED发光二极管

    ZigBee-CC2530单片机 - 实现计算机串口通讯控制LED发光二极管 程序源码 /******************************************************* ...

  5. 串口接收-控制LED闪烁(VerilogVivado)

    前言 此文介绍uart串口串口接收-控制LED的verilog实现和testbench的编写,仿真环境为vivado 2018.3. 提示:以下是本篇文章正文内容,下面案例可供参考 一.实现原理 [设 ...

  6. 【正点原子Linux连载】第十四章 Qt控制LED 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  7. openmv串口数据 串口助手_Qt小项目之串口助手控制LED

    前言 最近刚学了一点Qt开发上位机,尝试着做个小软件练练手.查找了很多资料,做了一个简单的串口助手,可以实现串口基本发送和接收功能,支持中文显示,还可以控制STM32开发板上的两个LED. 1.软件界 ...

  8. android灯光蜂鸣器控制节点指令代码,基于stm32发送串口指令控制LED,蜂鸣器等(串口助手+原理图+显示结果)...

    本帖最后由 我累个去啊啊啊 于 2019-6-12 16:22 编辑 ///2019 6 12 更新 加入 :串口助手截图 简易问题说明 ///2019 6 11 更新  加入 :  使用的串口调试助 ...

  9. Arduino用遥控器控制LED灯开关和亮度

    最近在学习物联网,毕竟现在人工智能包括无人驾驶,自动避障等行业的火热,所以在这里分享学习笔记 工具: 硬件:Arduino,遥控器,红外线,传感器,网上有卖不是很贵十几块钱 软件:Mixly 步骤 一 ...

最新文章

  1. Chapter 3、Java语法基础(二)----Java基本数据类型、变量与常量 (20th,Feb)
  2. sysctl -p 重新加载文件/etc/sysctl.conf -a 所有参数 -w 临时指定
  3. 卫生部手术分级分类目录_双眼皮手术安全吗?一位多年经验的医生告诉你答案...
  4. python制作购物网站_Python实现的购物车功能示例
  5. 实录 | 平安人寿资深算法工程师姚晓远:对话生成模型的探析与创新
  6. 智慧城市的互联网大脑架构图:大社交网络与智慧城市结合是关键
  7. qt android glsl,基于Qt的OpenGL学习(1)—— Hello Triangle
  8. conda命令增删查环境
  9. 使用VisualStudio或VisualStudio Code作为代码比较工具
  10. [Android]Hello, Android!
  11. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(三)——单级放大器
  12. osgb转json_cesuim加载倾斜摄影OSGB三维数据
  13. [PTA练习] 愿天下有情人都是失散多年的兄妹(25分)
  14. 新注册第一帖----------------------乱码新手自学.net 之Linq 入门篇
  15. 传奇的缔造者——C语言之父访谈
  16. LR杂记--Loadrunner分析系统资源
  17. 首届“梧桐杯”大数据应用创新大赛复赛晋级名单发布
  18. MATLAB编程-弹簧振动动画
  19. 为docker设置国内镜像
  20. mysql中设计suk表_电商项目-商品表(spu)、规格表(sku)设计

热门文章

  1. VScode中使用plantuml画流程图
  2. 雷军昨夜正式公布MI Pay:采用NFC解决方案
  3. surface3的2G版用matlab,新品小降:Microsoft 微软 Surface 3 平板(2G、64G)
  4. 计算机的幼儿教育,计算机科学在幼儿教育中的探讨
  5. 智能计算—模糊计算总结
  6. 户外运动崛起!疫情后这些产品将成为跨境热门品类!
  7. IOS OpenGL ES GPUImage 差值混合 GPUImageDifferenceBlendFilter
  8. linux内存分配与回收
  9. 【深度】IBC、HIT、PERL高效率太阳能电池的发展现状与趋势
  10. (未完待续)浅谈微服务以及 常用中间件( zookeeper redis rabbitmq)