【转】麒麟板V2.0--网页应用控制LED
本文实现功能,利用OneNET应用网页控件控制麒麟座LED。以及一些其他的东西。首先感谢之前的网友提供了综合程序,我只是在各位的基础上增加了一些东西~
本文献给那些:想利用网页控制麒麟板的小伙伴,生成应用将数据流关联起来,然后再讲指令格式和我程序中的命名方式即可。
程序我也会附上去,我还将附上我的应用链接!!!
程序还有很多不足,欢迎来撕~
等我有空了,我再来一版FreeRTOS的。立帖为证~
应用链接:http://open.iot.10086.cn/appview/p/f632ad83b52343d162954d5e244b7f7b
-------------------------------------------正事儿-----------------------------------------------------
增加了一个小任务,用于控制LED,这个小任务里面有两个功能:a、打开一个呼吸灯;b、用占空比去控制LED灯
1、 任务代码段:victory:
[*]void PWMLED_Task(void *pdata)
[*]{
[*] int i;
[*] while(1)
[*] {
[*] if(PwmStatus)//this is the flag for PwmLED Switch
[*] {
[*] UsartPrintf(USART1, "PWM-LED ON\r\n\r\n");
[*] for(i=100; i>50; i--)
[*] {
[*] bsp_SetTIMOutPWM(GPIOC, GPIO_Pin_7, TIM8, 2,10000, i*100);
[*] OSTimeDly(10);
[*] }
[*]
[*] for(i=50; i<=100; i++)
[*] {
[*] bsp_SetTIMOutPWM(GPIOC, GPIO_Pin_7, TIM8, 2,10000, i*100);
[*] OSTimeDly(10);
[*] }
[*] }
[*] else
[*] {
[*] UsartPrintf(USART1, "PWM-LED OFF\r\n\r\n");
[*] OSTimeDly(100);
[*] }
[*]
[*] bsp_SetTIMOutPWM(GPIOC, GPIO_Pin_8, TIM8, 3,10000, (10000-LED_duty*100)); //Control PWMLED Duty
[*] OSTimeDly(800);
[*] }
[*]}
复制代码
2、网页控件的设置以及指令编写(看图例)
3、串口接收程序的解析
增加判断信息,判断信息一定要与下达指令一直不然就接收不到哦
[*]void OneNetApp(USART_INFO *usartInfo)
[*]{
[*] unsigned short i=0;
[*] uint32_t temp=0;
[*] UsartPrintf(USART1, "usart2Info.usartCmdBuf--> %s \r\n",usart2Info.usartCmdBuf); //专用调试接收指令打印
[*] UsartPrintf(USART1, "usart2Info.usartExtBuf--> %s \r\n",usart2Info.usartExtBuf);
[*] //printf("%s/r/n",usart2Info.usartCmdBuf);
[*] if(strstr((char *)usart2Info.usartCmdBuf, "Red_Led"))
[*] {
[*] if(usart2Info.usartExtBuf == '1') //ץȡ³öÀ´¾ÍÊÇÔÚλÖÃ1ÄǸöµØ·½²ÅÓÐÊý¾Ý
[*] {
[*]// ledStatus.Led4Sta = LED_ON;
[*]// Led4_Set(LED_ON);
[*] }
[*] else if(usart2Info.usartExtBuf == '0')
[*] {
[*]// ledStatus.Led4Sta = LED_OFF;
[*]// Led4_Set(LED_OFF);
[*] }
[*]
[*] OneNet_SendData(kTypeString);
[*] }
[*] else if(strstr((char *)usart2Info.usartCmdBuf, "Green_Led"))
[*] {
[*] if(usart2Info.usartExtBuf == '1')
[*] {
[*] ledStatus.Led5Sta = LED_ON;
[*] Led5_Set(LED_ON);
[*] }
[*] else if(usart2Info.usartExtBuf == '0')
[*] {
[*] ledStatus.Led5Sta = LED_OFF;
[*] Led5_Set(LED_OFF);
[*] }
[*]
[*] OneNet_SendData(kTypeString);
[*] }
[*] else if(strstr((char *)usart2Info.usartCmdBuf, "Blue_Led"))
[*] {
[*] if(usart2Info.usartExtBuf == '1')
[*] {
[*] ledStatus.Led6Sta = LED_ON;
[*] Led6_Set(LED_ON);
[*] }
[*] else if(usart2Info.usartExtBuf == '0')
[*] {
[*] ledStatus.Led6Sta = LED_OFF;
[*] Led6_Set(LED_OFF);
[*] }
[*]
[*] OneNet_SendData(kTypeString);
[*] }
[*] else if(strstr((char *)usart2Info.usartCmdBuf, "Yellow_Led"))
[*] {
[*] if(usart2Info.usartExtBuf == '1')
[*] {
[*] ledStatus.Led7Sta = LED_ON;
[*] Led7_Set(LED_ON);
[*] }
[*] else if(usart2Info.usartExtBuf == '0')
[*] {
[*] ledStatus.Led7Sta = LED_OFF;
[*] Led7_Set(LED_OFF);
[*] }
[*]
[*] OneNet_SendData(kTypeSimpleJsonWithTime);
[*] }
[*] else if(strstr((char *)usart2Info.usartCmdBuf, "PWMLED"))
[*] {
[*] if(usart2Info.usartExtBuf == '1')
[*] {
[*] PwmStatus = 1;
[*] }
[*] else if(usart2Info.usartExtBuf == '0')
[*] {
[*] PwmStatus = 0;
[*] }
[*]
[*] OneNet_SendData(kTypeString);
[*] }
[*] else if(strstr((char *)usart2Info.usartCmdBuf, "LED_Duty"))
[*] {
[*] for(i=0;i<usart2Info.usartExtLen;i++)//½«×Ö·û´®ÀàÐÍֵת»»³ÉÊýÖµÐÍ
[*] {
[*] temp =temp*10+(uint32_t)(usart2Info.usartExtBuf-'0');
[*] }
[*] LED_duty = temp;
[*] temp = 0;
[*] OneNet_SendData(kTypeString);
[*] UsartPrintf(USART1, "LED_duty--> %d \r\n",LED_duty);
[*]
[*] }
[*]
[*]}
复制代码
4、实验现象及解释
a、按钮可以控制,PWMLED的打开和关闭
b、旋钮可以控制LED灯的亮度。由于麒麟座LED的电路采用的是低电平点亮,所以控件上显示66%时,示波器上显示的是高电平34%(可以示波器也可以显示低电平的占空比,我懒得设置了)。
本主题由 lihanliangbilly 于 2016-11-13 23:34 设置高亮
EDP指令命名格式.jpg (0 Bytes, 下载次数: 1377) 下载附件
2016-9-26 19:58 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif
EDP指令格式http://upfiles.heclouds.com/forum-app/2016/09/26/39e41f5e4c0079034216c74273595733.jpg
控件图例.jpg (0 Bytes, 下载次数: 1371) 下载附件
2016-9-26 19:55 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif
设计的控件http://upfiles.heclouds.com/forum-app/2016/09/26/e7a1123f7d54592b9ea917501237ecdd.jpg
指令图例解释.jpg (0 Bytes, 下载次数: 1375) 下载附件
2016-9-26 20:04 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif
指令图例解释http://upfiles.heclouds.com/forum-app/2016/09/26/da54c6aa5fad756114b501729318fef2.jpg
上传信息更改.jpg (0 Bytes, 下载次数: 1377) 下载附件
2016-9-26 20:08 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif
上传信息更改http://upfiles.heclouds.com/forum-app/2016/09/26/e016bacd4c3d2bfb0de1bd33cc69107b.jpg
tek0000.jpg (0 Bytes, 下载次数: 1375) 下载附件
2016-9-26 20:11 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif
示波器显示http://upfiles.heclouds.com/forum-app/2016/09/26/aafdab91c3c3575eeb1ba3c0b11c8a3b.jpg
占空比百分之66.jpg (0 Bytes, 下载次数: 1375) 下载附件
2016-9-26 20:16 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif
占空比66%http://upfiles.heclouds.com/forum-app/2016/09/26/c4dc6e7f6a783c482befba0ebd1a1538.jpg
页:
[1]