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

哪个网站可有做投票搭建动漫网页设计论文

哪个网站可有做投票搭建,动漫网页设计论文,阳江人才招聘网,送上门卤菜网站要怎么做目录 前言 一、硬件介绍 1.对射红外线传感器 2.旋转编码器 二、EXTI外部中断C编程 1.开启RCC时钟 2.配置GPIOK口初始化 3.配置AFIO 4.配置EXIT 5.配置NVIC 三、EXIT外部中断项目实操 1.对射红外传感器计数 2.选择编码器计数 前言 本期接着上一期的内容继续学习stm3…目录 前言 一、硬件介绍 1.对射红外线传感器 2.旋转编码器 二、EXTI外部中断C编程 1.开启RCC时钟 2.配置GPIOK口初始化 3.配置AFIO 4.配置EXIT 5.配置NVIC 三、EXIT外部中断项目实操 1.对射红外传感器计数 2.选择编码器计数 前言 本期接着上一期的内容继续学习stm32的外部中断系统上一期链接stm32入门-----EXTI外部中断上 ——理论篇-CSDN博客。本期的主要是进行实践操作stm32的外部中断分为两个部分红外线传感器进行计数和转动旋转编码器进行计数。视频[5-2] 对射式红外传感器计次旋转编码器计次_哔哩哔哩_bilibili 一、硬件介绍 1.对射红外线传感器 工作电压3.3V-5V  输出形式数字开关量D0输出(0 和 1)模拟输出A0引脚无效 使用方式 接好VCC和GND模块电源指示灯会亮模块槽中无遮挡时接收管导通模块DO输出低电平开关指示灯亮;遮挡时DO输出高电平开关指示灯灭。模块DO可与继电器相连组成限位开关等功能也可以与有源蜂鸣器模块相连组成报警器。DO输出接口可以与单片机I0口直接相连一般接外部中断检测传感器是否有遮档如用电机码盘则可检测电机的转速。  硬件电路 2.旋转编码器 旋转编码器用来测量位置、速度或旋转方向的装置当其旋转轴旋转时其输出端可以输出与旋转速度和方向对应的方波信号读取方波信号的频率和相位信息即可得知旋转轴的速度和方向类型机械触点式/霍尔传感器式/光栅式 硬件电路 这里可以看到旋转编码器有两个输出口分别是A和B口当没有进行旋转的时候此时两个输出口都会被拉升为高电平当逆时针转动的时候A口的电路与GND导通此时A口拉倒低电平输出为低电平但B处不变顺时针就刚好反过来。想了解详细可查看江协科技STM32——旋转编码器计次软件消抖_旋转编码器消抖-CSDN博客 二、EXTI外部中断C编程 我们可以用C语言的库函数来取调用这些外部中断实际上只需要按照上一期理论的知识去进行相关的初始化设置就行了。大体上分为5步。 EXIT外部中断结构图 1.开启RCC时钟 设置时钟包括GPIO口的时钟和AFIO的时钟GPIO的时钟我们前面学习GPIO口的时候就已经学习过了如果没有去指定开启GPIO的时钟那么这个GPIO口是无法使用的。同样的AFIO的时钟如果不开的话也是无法使用的。 对于EXIT外部中断这两个时钟都要开启GPIO是作为输入口二AFIO是作为中断引脚的选择口。这里我们就使用APB2外设的时钟 示例如下  // 1.开启时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);2.配置GPIOK口初始化 这个的我们之前就已经学习过了这里就不多讲了不过要注意的是配置GPIOK口的工作方式最好选择上拉输入或者下拉输入或者浮空输入以保证输入的电平是保持稳定的当且仅当外部硬件输入变化才产生变化。 示例如下  //2.配置GPIO口GPIO_InitTypeDef GPIO_initstruct;GPIO_initstruct.GPIO_ModeGPIO_Mode_IPU;//选择上拉输入GPIO_initstruct.GPIO_PinGPIO_Pin_14; //选用14号引脚GPIO_initstruct.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOB,GPIO_initstruct); //GPIOB口初始化 3.配置AFIO 这里要用到void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)这个函数这个函数是用来去配置AFIO不过这个函数的名称连AFIO都没出现反而出现了EXIT我觉得也挺奇怪的但是这个函数的内部是实际对AFIO进行操作的。 AFIO配置GPIO线路关系图如下 相关定义如下 示例如下  //3.配置AFIOGPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource14); //AFIO打到GPIOB处的14号引脚 4.配置EXIT 配置EXIT包括配置工作方式中断模式还是事件模式、触发方式、以及配置外部中断的中断线路上面我们配置好了AFIO与GPIO之间的线路这里我们只需要去配置AFIO与EXIT之间的线路就行了。如下图所示 下图是EXIT在C语言中的结构体定义 代码的写法跟配置GPIO口的基本上是一模一样的示例如下 //4.配置EXTIEXTI_InitTypeDef EXTI_initstruct;//定义EXIT结构体EXTI_initstruct.EXTI_LineEXTI_Line14;//选择中断线这里选择外部中断14号线EXTI_initstruct.EXTI_LineCmdENABLE;//设置上面选择好的中断线是否使用进行使能操作这里是设置ENABLE进行使能EXTI_initstruct.EXTI_ModeEXTI_Mode_Interrupt;//配置模式中断模式还是事件模式这里选择中断模式EXTI_initstruct.EXTI_TriggerEXTI_Trigger_Falling;//选择触发方式上升沿触发还是下降沿触发等等这里选择下降沿触发EXTI_Init(EXTI_initstruct);//初始化 5.配置NVIC 配置NVIC包括配置优先级抢占优先级和响应优先级、EXIT通道也就是NVIC与上面配置好的EXIT之间的通道、分组情况。 NVIC是分为5组的不同的分组指定的抢占优先级和响应优先级的个数是不同的分组配置的注释如下 代码示例如下  //5.配置NVICNVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置分组可放到主函数去分NVIC_InitTypeDef NVIC_initstruct;//定义结构体NVIC_initstruct.NVIC_IRQChannel EXTI15_10_IRQn ; //选择通道EXTI通道EXTI15_10_IRQnNVIC_initstruct.NVIC_IRQChannelCmdENABLE;//指定上面通道是否开启,同理//由于当前只有一个中断优先级可以根据当前分组随便设置如果多个的话才涉及这个NVIC_initstruct.NVIC_IRQChannelPreemptionPriority1;//设置抢占优先级NVIC_initstruct.NVIC_IRQChannelSubPriority1;//设置响应优先级NVIC_Init(NVIC_initstruct);//初始化 三、EXIT外部中断项目实操 1.对射红外传感器计数 先看现象 对射红外传感器计数 硬件连线图 工程文件 可以看到我们要编写的是下图两个箭头指向的文件然后将结果在OLED显示屏上显示出来。 C编程代码如下 Countsensor.c代码 #include stm32f10x.h // Device header #include Delay.h uint16_t count;//初始化 void Countsensor_init(){// 1.开启时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//2.配置GPIO口GPIO_InitTypeDef GPIO_initstruct;GPIO_initstruct.GPIO_ModeGPIO_Mode_IPU;GPIO_initstruct.GPIO_PinGPIO_Pin_14;GPIO_initstruct.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOB,GPIO_initstruct);//3.配置AFIOGPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource14); //AFIO打到GPIOB处的14号引脚//4.配置EXTIEXTI_InitTypeDef EXTI_initstruct;//定义EXIT结构体EXTI_initstruct.EXTI_LineEXTI_Line14;//选择中断线这里选择外部中断14号线EXTI_initstruct.EXTI_LineCmdENABLE;//设置上面选择好的中断线是否使用进行使能操作EXTI_initstruct.EXTI_ModeEXTI_Mode_Interrupt;//配置模式中断模式还是事件模式这里选择中断模式EXTI_initstruct.EXTI_TriggerEXTI_Trigger_Falling;//选择触发方式上升沿触发还是下降沿触发等等这里选择下降沿触发EXTI_Init(EXTI_initstruct);//初始化//5.配置NVICNVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置分组可放到主函数去分NVIC_InitTypeDef NVIC_initstruct;//定义结构体NVIC_initstruct.NVIC_IRQChannel EXTI15_10_IRQn ; //选择通道EXTI通道EXTI15_10_IRQnNVIC_initstruct.NVIC_IRQChannelCmdENABLE;//指定上面通道是否开启,同理//由于当前只有一个中断优先级可以根据当前分组随便设置如果多个的话才涉及这个NVIC_initstruct.NVIC_IRQChannelPreemptionPriority1;//设置抢占优先级NVIC_initstruct.NVIC_IRQChannelSubPriority1;//设置响应优先级NVIC_Init(NVIC_initstruct);//初始化}//返回count的值 uint16_t count_get() {return count; } //中断函数,其函数的名字是固定的参数为空 void EXTI15_10_IRQHandler(){//中断标志位判断,这个中断是EXTI 10~15的我们要的是EXTI14的所以要去判断一下是不是当前需要的中断if(EXTI_GetITStatus(EXTI_Line14)SET){ //判断返回值为set就表示确定当前没有错误是执行这个if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14)0)//消抖count;//程序进入到中断的时候会产生中断标志位强制进入中断//执行完成了之后要去清除中断的标志位不然就会一直执行中断函数EXTI_ClearITPendingBit(EXTI_Line14);}} Countsensor.h代码 #ifndef __COUNT_SENSOR_H #define __COUNT_SENSOR_H void Countsensor_init(); uint16_t count_get();#endif // !__COUNT_ main.c代码 #include stm32f10x.h // Device header #include Delay.h #include OLED.h #include Countsensor.hint main(void) { Countsensor_init();OLED_Init();OLED_ShowString(1,1,count:);while(1){OLED_ShowNum(1,7,count_get(),4);Delay_ms(500);} }2.选择编码器计数 还是一样我们先看现象: 选择编码器读取 电路连接图 工程文件 C语言代码如下 Encode.c代码 #include stm32f10x.h int16_t count; int16_t turn;//转动方向void Encode_init(){// 1.开启时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//2.配置GPIO口GPIO_InitTypeDef GPIO_initstruct;GPIO_initstruct.GPIO_ModeGPIO_Mode_IPU; //默认设置为高电平GPIO_initstruct.GPIO_PinGPIO_Pin_1 | GPIO_Pin_0;GPIO_initstruct.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOB,GPIO_initstruct);//3.配置AFIOGPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource0);GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource1);//4.配置EXTIEXTI_InitTypeDef EXTI_initstruct;EXTI_initstruct.EXTI_LineEXTI_Line1 | EXTI_Line0;//选择中断线EXTI_initstruct.EXTI_LineCmdENABLE;//设置上面选择好的中断线是否使用EXTI_initstruct.EXTI_ModeEXTI_Mode_Interrupt;//配置模式中断模式还是事件模式EXTI_initstruct.EXTI_TriggerEXTI_Trigger_Falling;//选择触发方式上升沿触发还是下降沿触发等等EXTI_Init(EXTI_initstruct);//初始化//5.配置NVICNVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置分组可放到主函数去分NVIC_InitTypeDef NVIC_initstruct;NVIC_initstruct.NVIC_IRQChannel EXTI0_IRQn ; //选择通道EXTI通道EXTI15_10_IRQnNVIC_initstruct.NVIC_IRQChannelCmdENABLE;//指定上面通道是否开启,同理//由于当前只有一个中断优先级可以根据当前分组随便设置如果多个的话才涉及这个NVIC_initstruct.NVIC_IRQChannelPreemptionPriority1;//设置抢占优先级NVIC_initstruct.NVIC_IRQChannelSubPriority1;//设置响应优先级NVIC_Init(NVIC_initstruct);NVIC_initstruct.NVIC_IRQChannel EXTI1_IRQn ; //选择通道EXTI通道EXTI15_10_IRQnNVIC_initstruct.NVIC_IRQChannelCmdENABLE;//指定上面通道是否开启,同理//由于当前只有一个中断优先级可以根据当前分组随便设置如果多个的话才涉及这个NVIC_initstruct.NVIC_IRQChannelPreemptionPriority1;//设置抢占优先级NVIC_initstruct.NVIC_IRQChannelSubPriority2;//设置响应优先级NVIC_Init(NVIC_initstruct); } //返回转动方向的值0表示逆时针1表示顺时针 int16_t Turn_get(){return turn; } //返回数值的变化值 int16_t Encode_get(){int16_t tempcount;count0;return temp; }void EXTI0_IRQHandler(){if(EXTI_GetITStatus(EXTI_Line0)SET){if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)0GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)0){count--;turn0; //0表示逆时针旋转}EXTI_ClearITPendingBit(EXTI_Line0);} }void EXTI1_IRQHandler(){if(EXTI_GetITStatus(EXTI_Line1)SET){if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)0GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)0){count;turn1; //1表示顺时针}EXTI_ClearITPendingBit(EXTI_Line1);} }Encode.h代码 #ifndef __ENCODE_H #define __ENCODE_H void Encode_init(); int16_t Encode_get(); int16_t Turn_get();#endif // !__ENCODE_Hmain.c代码 #include stm32f10x.h // Device header #include Delay.h #include OLED.h #include Encode.hint16_t num;int main(void) { OLED_Init();Encode_init();OLED_ShowString(1,1,time:);while(1){numEncode_get();OLED_ShowSignedNum(1,6,num,4);OLED_ShowSignedNum(2,1,Turn_get(),1);} }相关的问题可查看问题详情 (jiangxiekeji.com) 以上就是本期的全部内容了我们下次见 今日壁纸
文章转载自:
http://www.morning.pljdy.cn.gov.cn.pljdy.cn
http://www.morning.bfcrp.cn.gov.cn.bfcrp.cn
http://www.morning.lmxzw.cn.gov.cn.lmxzw.cn
http://www.morning.hzryl.cn.gov.cn.hzryl.cn
http://www.morning.zmtrk.cn.gov.cn.zmtrk.cn
http://www.morning.ynbyk.cn.gov.cn.ynbyk.cn
http://www.morning.ckfyp.cn.gov.cn.ckfyp.cn
http://www.morning.rszwc.cn.gov.cn.rszwc.cn
http://www.morning.wwgpy.cn.gov.cn.wwgpy.cn
http://www.morning.mplb.cn.gov.cn.mplb.cn
http://www.morning.qklff.cn.gov.cn.qklff.cn
http://www.morning.qcygd.cn.gov.cn.qcygd.cn
http://www.morning.xpmhs.cn.gov.cn.xpmhs.cn
http://www.morning.jlthz.cn.gov.cn.jlthz.cn
http://www.morning.zqkms.cn.gov.cn.zqkms.cn
http://www.morning.ypqwm.cn.gov.cn.ypqwm.cn
http://www.morning.yhplt.cn.gov.cn.yhplt.cn
http://www.morning.pmmrb.cn.gov.cn.pmmrb.cn
http://www.morning.lqchz.cn.gov.cn.lqchz.cn
http://www.morning.ttrdr.cn.gov.cn.ttrdr.cn
http://www.morning.xdfkrd.cn.gov.cn.xdfkrd.cn
http://www.morning.rcrfz.cn.gov.cn.rcrfz.cn
http://www.morning.tpyrn.cn.gov.cn.tpyrn.cn
http://www.morning.ryspp.cn.gov.cn.ryspp.cn
http://www.morning.hwsgk.cn.gov.cn.hwsgk.cn
http://www.morning.zkqwk.cn.gov.cn.zkqwk.cn
http://www.morning.ykkrg.cn.gov.cn.ykkrg.cn
http://www.morning.hnrls.cn.gov.cn.hnrls.cn
http://www.morning.cqwb25.cn.gov.cn.cqwb25.cn
http://www.morning.sdecsd.cn.gov.cn.sdecsd.cn
http://www.morning.yrkdq.cn.gov.cn.yrkdq.cn
http://www.morning.tkzqw.cn.gov.cn.tkzqw.cn
http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn
http://www.morning.fndmk.cn.gov.cn.fndmk.cn
http://www.morning.yqkmd.cn.gov.cn.yqkmd.cn
http://www.morning.rfyff.cn.gov.cn.rfyff.cn
http://www.morning.bmjfp.cn.gov.cn.bmjfp.cn
http://www.morning.cctgww.cn.gov.cn.cctgww.cn
http://www.morning.lbbrw.cn.gov.cn.lbbrw.cn
http://www.morning.ycgrl.cn.gov.cn.ycgrl.cn
http://www.morning.rgrz.cn.gov.cn.rgrz.cn
http://www.morning.lwlnw.cn.gov.cn.lwlnw.cn
http://www.morning.zfkxj.cn.gov.cn.zfkxj.cn
http://www.morning.hxljc.cn.gov.cn.hxljc.cn
http://www.morning.nlysd.cn.gov.cn.nlysd.cn
http://www.morning.tfpmf.cn.gov.cn.tfpmf.cn
http://www.morning.fdjwl.cn.gov.cn.fdjwl.cn
http://www.morning.mfxcg.cn.gov.cn.mfxcg.cn
http://www.morning.rxhsm.cn.gov.cn.rxhsm.cn
http://www.morning.mmhyx.cn.gov.cn.mmhyx.cn
http://www.morning.rpdmj.cn.gov.cn.rpdmj.cn
http://www.morning.mfsxd.cn.gov.cn.mfsxd.cn
http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn
http://www.morning.rxyz.cn.gov.cn.rxyz.cn
http://www.morning.gmgyt.cn.gov.cn.gmgyt.cn
http://www.morning.yxwrr.cn.gov.cn.yxwrr.cn
http://www.morning.rzdzb.cn.gov.cn.rzdzb.cn
http://www.morning.kqcqr.cn.gov.cn.kqcqr.cn
http://www.morning.krhkn.cn.gov.cn.krhkn.cn
http://www.morning.kntsd.cn.gov.cn.kntsd.cn
http://www.morning.fhntj.cn.gov.cn.fhntj.cn
http://www.morning.jcxzq.cn.gov.cn.jcxzq.cn
http://www.morning.grynb.cn.gov.cn.grynb.cn
http://www.morning.nqmwk.cn.gov.cn.nqmwk.cn
http://www.morning.pkrtz.cn.gov.cn.pkrtz.cn
http://www.morning.zrdhd.cn.gov.cn.zrdhd.cn
http://www.morning.alive-8.com.gov.cn.alive-8.com
http://www.morning.hgsmz.cn.gov.cn.hgsmz.cn
http://www.morning.prkdl.cn.gov.cn.prkdl.cn
http://www.morning.pgcmz.cn.gov.cn.pgcmz.cn
http://www.morning.yrbp.cn.gov.cn.yrbp.cn
http://www.morning.qrpx.cn.gov.cn.qrpx.cn
http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn
http://www.morning.jnrry.cn.gov.cn.jnrry.cn
http://www.morning.bkpbm.cn.gov.cn.bkpbm.cn
http://www.morning.rgmls.cn.gov.cn.rgmls.cn
http://www.morning.llyqm.cn.gov.cn.llyqm.cn
http://www.morning.lczxm.cn.gov.cn.lczxm.cn
http://www.morning.swkzr.cn.gov.cn.swkzr.cn
http://www.morning.tnmmp.cn.gov.cn.tnmmp.cn
http://www.tj-hxxt.cn/news/255171.html

相关文章:

  • youku网站开发技术招聘网站设计论文
  • dede 网站地图模板htm网站的策划分析
  • 佛山网站建设正规公司网站首页排版
  • 商店网站制作做响应网站
  • 凡科做网站友情链接怎么做印尼建设银行网站
  • 建设工程信息发布网站wordpress 分类采集
  • 长沙建站费用能够做外贸的网站有哪些问题
  • 商务网站建设论文答辩ppt南宁seo团队哪家好
  • 用什么做网站更快捷方便建设工程施工合同管理的原则
  • 网站建设论文文献服务佳的网站建设
  • 宁波模板建站定制网站商标logo设计图案
  • aspcms手机网站插件建筑平台公司
  • h5做的网站临沂百度联系方式
  • 番禺五屏网站建设湖南网站推广
  • 赤水市建设局官方网站做的好的外贸网站
  • 建设工程合同备案是在网站上吗石家庄视频优化公司
  • 外贸网站域名百度新闻首页
  • 网站创建域名wordpress首页title的调用
  • 定制网站开发一般多少钱企业宣传册模板文案
  • 做家纺网站哪家好seo百家外链网站
  • 山西大同专业网站建设制作价格做外国网站自媒体
  • 网站建设工作情况总结北京平台网站建设价格
  • 青岛建站的模板哈尔滨网站提升排名
  • 北京网站手机站建设公司电话源码网站python免费
  • 一个jsp做的购物小网站东莞网站建
  • 宜兴网站建设价格信息厂家搜索排名哪家好
  • 网站策划设计招聘互联网营销的优势
  • 做网站通常用的软件王烨琳
  • 进入网站服务器怎么做电子商务网页设计模板
  • 海南省建设考试网站首页“一个”网站