转载STM32学前教程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
转载STM32学前教程2 ? sw笨笨的STM32笔记之九:打断它来为我办事,EXIT(外部I/O中断)应用 a)目的:跟串口输入类似,不使用中断进行的IO输入效率也很低,而且可以通过EXTI插入按钮事件,本节联系EXTI中断。 b)初始化函数定义: void EXTI_Configuration(void);//定义IO中断初始化函数 c)初始化函数调用: EXTI_Configuration();//IO中断初始化函数调用简单应用: d)初始化函数: void EXTI_Configuration(void) { EXTI_InitTypeDef EXTI_InitStructure;//EXTI初始化结构定义 EXTI_ClearITPendingBit(EXTI_LINE_KEY_BUTTON);//清除中断标志 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource3);//管脚选择 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource4); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource5); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource6); EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;//事件选择 EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//触发模式 EXTI_InitStructure.EXTI_Line=EXTI_Line3|EXTI_Line4;//线路选择 EXTI_InitStructure.EXTI_LineCmd=ENABLE;//启动中断 EXTI_Init(EXTI_InitStructure);//初始化 } e)RCC初始化函数中开启I/O时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO初始化函数中定义输入I/O管脚。 //IO输入,GPIOA的4脚输入 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//上拉输入 GPIO_Init(GPIOA,GPIO_InitStructure);//初始化 f)在NVIC的初始化函数里面增加以下代码打开相关中断: NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQChannel;//通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//占先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;//响应级 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//启动 NVIC_Init(NVIC_InitStructure);//初始化 g)在stm 32f10x_it.c文件中找到void USART1_IRQHandler函数,在其中添入执行代码。一般最少三个步骤:先使用if语句判断是发生那个中断,然后清除中断标志位,最后给字符串赋值,或做其他事情。 if(EXTI_GetITStatus(EXTI_Line3)!=RESET)//判断中断发生来源 {EXTI_ClearITPendingBit(EXTI_Line3);//清除中断标志 USART_SendData(USART1,0x41);//发送字符a GPIO_WriteBit(GPIOB,GPIO_Pin_2,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_2)));//LED发生明暗交替 } h)中断注意事项: 中断发生后必须清除中断位,否则会出现死循环不断发生这个中断。然后需要对中断类型进行判断再执行代码。 使用EXTI的I/O中断,在完成RCC与GPIO硬件设置之后需要做三件事:初始化EXTI、NVIC开中断、编写中断执行代码。 sw笨笨的STM32笔记之十:工作工作,PWM输出 a)目的:基础PWM输出,以及中断配合应用。输出选用PB1,配置为TIM3_CH4,是目标板的LED6控制脚。 b)对于简单的PWM输出应用,暂时无需考虑TIM1的高级功能之区别。 c)初始化函数定义: void TI

文档评论(0)

shujukd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档