当前位置: 首页 > news >正文

建网站的客户微网站不能分享朋友圈

建网站的客户,微网站不能分享朋友圈,深圳网站建设补助,网站多久才能在百度上收到//功能:串口助手每次发送数据格式:0000& // 第二个字节控制LED1亮灭 // 第三个字节控制LED2亮灭 // 第四个字节控制LED3亮灭 // 第无个字节控制LED4亮灭 //要求:代码能够一直运行,能够接收多字节数据 上节讲了串口的基本…

//功能:串口助手每次发送数据格式:@0000&

// 第二个字节控制LED1亮灭

// 第三个字节控制LED2亮灭

// 第四个字节控制LED3亮灭

// 第无个字节控制LED4亮灭

//要求:代码能够一直运行,能够接收多字节数据

上节讲了串口的基本发送接收数据,本节应用一下。

以上功能可写成这样:发送和接收数据的解析函数:

void DataAnaly(void)
{if(usart1flag == 1){if(Usart1buff[0]== '@' && Usart1buff[Usart1len-1]== '&'){if(Usart1buff[1]=='1')LED1(1);elseLED1(0);	if(Usart1buff[2]=='1')LED2(1);elseLED2(0);if(Usart1buff[3]=='1')LED3(1);elseLED3(0);if(Usart1buff[4]=='1')LED4(1);elseLED4(0);memset(Usart1buff,0,10);Usart1len=0;usart1flag=0;}else{memset(Usart1buff,0,10);Usart1len=0;usart1flag=0;}}}

因为功能要求代码能够一直运行,所以一般会想到把上面这个功能函数写在while(1)循环里,但是如果写在while(1)循环中,只有发数据,while循环才会跑起来,不发的话,程序会一直卡死在接收数据这里,while循环里的其他数据就不能运行了,所以要使用中断。因为在接受数据这导致其他数据不能运行,所以要使用接收中断。

1,在上节的usart.c中的void Usart_Init(void){ }函数里加一行代码,开启接收函数中断源

  //开启串口1接收中断USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); 

2,在usart.c写中断服务函数

uint8_t Usart1buff[10] = {0};
uint16_t Usart1len 		 = 0;
uint8_t  usart1flag 	 = 0;//中断服务函数按键1  不用在.h中声明 不用在main函数中调用了 
void USART1_IRQHandler(void)
{//检查指定usart中断(接收中断)发生与否if(USART_GetITStatus(USART1,USART_IT_RXNE) == SET){//将接收到的数据保存在Usart1buff[10]数组中Usart1buff[Usart1len] =  USART_ReceiveData(USART1);if(Usart1buff[Usart1len] == '&'){//判断数据是否接受完毕usart1flag=1;}//只要接收到数据就会发生中断//因为中断一直在发生,所以数据要往后偏移Usart1len++;//清除 USARTx 的中断待处理位USART_ClearITPendingBit(USART1,USART_IT_RXNE);}}

3,在usart.c写解析函数,然后在usart.h中声明函数(省略)

void DataAnaly(void)
{//如果数据接收正确,执行对应程序if(usart1flag == 1){if(Usart1buff[0]== '@' && Usart1buff[Usart1len-1]== '&'){if(Usart1buff[1]=='1')LED1(1);elseLED1(0);	if(Usart1buff[2]=='1')LED2(1);elseLED2(0);if(Usart1buff[3]=='1')LED3(1);elseLED3(0);if(Usart1buff[4]=='1')LED4(1);elseLED4(0);//将Usart1buff所指向的内存区域的前10个字节设置为0,清除memset(Usart1buff,0,10);Usart1len=0;usart1flag=0;}//如果数据接收不正确,清除接收输入的数据的数组,数组长度和标志位清零else{memset(Usart1buff,0,10);Usart1len=0;usart1flag=0;}}}

4,在主函数的while循环里调用函数,写以下代码,然后执行代码看现象,可看到本功能执行的同时,while循环里的写的其他功能代码也可以实现(例如写的按键控制灯也能正常执行),没有发生阻塞现象。

http://www.yayakq.cn/news/363496/

相关文章:

  • 企业做什么需要有网站wordpress模板如何安装教程视频教程
  • 苏州住房和城乡建设局网站首页百度快照首页
  • 做网站阳泉购物网站创业时是如何做宣传的
  • 企业网站的建设对于网络品牌的塑造作用做石材网站步骤
  • 在线教育网站制作wordpress侧边二级导航菜单
  • 捷克网站后缀曲阜网架公司
  • 新媒体广告代理加盟seo是网站搜索引擎上的优化
  • 河北省建设厅办事大厅网站做服装设计有什么网站可以参考
  • 一女被多男做的视频网站如何外贸网站推广
  • 网站建设岗位的任职资格如何远程登录网站服务器
  • 山东富国建设投资有限公司网站wordpress 数据库管理
  • 商务网站的推广方法有哪些如何在建设银行网站预约纪念币
  • 百度做网站电话多少wordpress默认排序
  • 让蜘蛛不抓取网站的文件夹做网站具体流程
  • 网站不符合个人备案性质上传设计作品的网站
  • 肇庆专业网站建设服务惠州专业网站制作公司
  • 就业创业网站建设做淘宝推广开网站合适
  • 天津网站建设招聘广州网站建设骏域环保地板
  • 网站源码是html怎么转成php网站国内做的比较简洁的网站
  • dw淘宝网页制作视频教程咸阳做网站优化
  • 商融交通建设工程有限公司网站互联网保险发展趋势
  • 网站年费怎么做分录建设网站时的常见故障分类
  • 营口网站设计用户体验设计软件
  • 六安网站制作哪里有万网创始人
  • php网站建设论文抖音小程序推广
  • 个旧市城乡建设局网站设计一个简单的网络规划方案
  • 贺州市八步区建设局网站wordpress 安全 插件
  • 甘孜州住房和城乡规划建设局网站徐州整站优化
  • 网站建设的成功之处有哪些flash网站制作软件
  • 东莞网站建设电镀挂具注册域名需要注意什么