求助帖,STM32基本时钟中断作用触发

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(28358)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'STM32中断程序',
blogAbstract:'原文地址:
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}STM32外部中断总结_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
STM32外部中断总结
FSMC STM32F4 DP
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢写了一个关于STM32的时钟中断函数,找不出错误在哪?望大神指教!
[问题点数:40分,结帖人u]
写了一个关于STM32的时钟中断函数,找不出错误在哪?望大神指教!
[问题点数:40分,结帖人u]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|& 求助,STM32 TIM2 1ms溢出中断1
管理员:?????人数:6661小组积分:72169简介:欢迎进入STM32小组,学习讨论相关技术、交换资料、交流学习经验和设计心得。QQ群:小组公告福利:免费申请STM32F0308-DISCO开发套件(Discovery kit with STM32F030R8 MCU) 活动马上开始,只需2分钟即可申请。申请地址:??|????|??
需要确认注册邮箱后才能下载,
楼主??[其他]?
求助,STM32 TIM2 1ms溢出中断1
6年会员勋章目前未领取。领取条件:?凡是注册时间六年以上的活跃用户即可领取该勋章。
积分:618分
总积分:1229分
发表于 11:23
各位高手:?? 小弟正在学习STM32 的定时器。感觉功能真的很强大,但是设置也是很麻烦的。我要用TIM2做定时器使用,每1ms产生溢出中断,后然去查询PA.03口的按键是否有按下。编译是正确的的,但是就是不产生中断,下面是设置,亲大家看看,并指点,看问题处在什么地方!谢谢!?RCC时钟也打开了。/*********************************************************RCC_APB1PeriphClockCmd( RCC_APB1Periph_TIM2, ENABLE);????//*********************************************************void NVIC_Configuration(void){? NVIC_InitTypeDef NVIC_InitS?#ifdef? VECT_TAB_RAM? ? /* Set the Vector Table base location at 0x */ ? NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); #else? /* VECT_TAB_FLASH? */? /* Set the Vector Table base location at 0x */ ? NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);?? #endif/* Configure the NVIC Preemption Priority Bits[配置优先级组] */? ? NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);? ? /* Enable the TIM2 gloabal Interrupt [允许TIM2全局中断]*/? NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQC? NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;? NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;? ? NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;? NVIC_Init(&NVIC_InitStructure);}??/*********************************************************void TIM2_Configuration(void){??? TIM_TimeBaseInitTypeDef TIM_TimeBaseS?TIM_DeInit( TIM2); //复位TIM2定时器???? ??? TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;?? // 定时器基准频率32MHz??? TIM_TimeBaseStructure.TIM_Prescaler = 32000;??????????????????? // 计数频率为1KHz??? TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 向上计数??? TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;??? TIM_TimeBaseStructure.TIM_Period? = 0; // 这个值实际上就是TIMX-&ARR,延时开始时重新设定即可??? TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);?/* Clear TIM2 update pending flag[清除TIM2溢出中断标志] */??? TIM_ClearFlag(TIM2, TIM_FLAG_Update); //清除上次可能遗留的标志??? TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); // 计数溢出时触发中断?? /* TIM2 enable counter [允许tim2计数]*/???? TIM_Cmd(TIM2, ENABLE);/********************************************************
夜里人 编辑于 16:16
1楼??[其他]?
Re:求助,STM32 TIM2 1ms溢出中断1
6年会员勋章目前未领取。领取条件:?凡是注册时间六年以上的活跃用户即可领取该勋章。
积分:166分
总积分:331分
发表于 16:16
最好确认下定时器的时钟输入源,它由TIM2~7的倍频器提供,而这个倍频系数由APB1预分频系数决定。
--- 现有 2个主题,共 1页,目前第 1页 ---??
点击,立即回复。
EDN China官方微信
扫一扫关注,获取电子新知,设计灵感
IC厂商小组
在线研讨会
赞助商链接
2016 EDN China -- Use of this website is subject to its terms of use.
京ICP备号-4 |
京公网安备37 |
新版社区已上线,旧版论坛、博客将停用
1、为防数据丢失,旧版论坛、博客不再接受发帖;
2、老用户只需重设密码,即可直接登录新平台;
3、新版博客将于8月底完美归来,敬请期待;
4、全新论坛、问答,体验升级、手机阅读更方便。stm32什么触发串口接收中断_百度知道
stm32什么触发串口接收中断
我有更好的答案
}void usart_release_gpio_init(void){
GPIO_InitTypeDef GPIO_InitStruct:#include &usart.h&
/&#47, ENABLE);/GPIO_InitS清除发送完成标志位USART_Cmd(USART1.USART_HardwareFlowControl = USART_HardwareFlowControl_N /&#47,ENABLE);void usart_config(void){/*1.NVIC_IRQChannelCmd = ENABLE;GPIO_Init(GPIOA;/8USART_InitStruct.USART_Parity = USART_Parity_No;GPIO_InitSGPIO_InitS/使能NVIC_Init(&NVIC_InitStruct);////&#47、打开GPIO,AFIO.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;USART_InitS/&#47,&GPIO_InitStruct);波特率9600USART_InitStruct, ENABLE);
/usart_para_init();/子优先级0NVIC_InitStruct!= RESET)
/&#47,USART1的时钟2、初始化相应串口引脚3,不需要中断方式;判断是否有中断{RxData = USART_ReceiveData(USART1);if(RxData == 0x00 ){GPIO_SetBits(GPIOB、配置串口参数*&#47,&GPIO_InitStruct);
//配置好的参数初始化NVIC}void USART1_IRQHandler (){u8 RxDif(USART_GetFlagStatus(USART1, USART_IT_RXNE) ;/设置组优先级
NVIC_InitStruct.NVIC_IRQChannel = USART1_IRQn;
//GPIO_InitS
/RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO;USART_InitStruct.USART_BaudRate = 9600; /&#47.GPIO_Speed = GPIO_Speed_50MHz.GPIO_Speed = GPIO_Speed_50MHz;/使能USART1
USART_ITConfig(USART1, USART_IT_RXNE;usart_release_gpio_init();设置串口1中断NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; /&#47,&USART_InitStruct);/usart_nvic_init();配置好的参数初始化PA9/*配置PA10为浮空输入*/GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10串口配置好即配置好GPIO和NVIC并初始化相应外设;}else{GPIO_ResetBits(GPIOB, GPIO_Pin_15);}}USART_ClearITPendingBit(USART1、配置串口中断4, GPIO_Pin_15).GPIO_Mode = GPIO_Mode_IN_FLOATING;/配置好的参数初始化USART1USART_ClearFlag(USART1,USART_FLAG_TC);无硬件流控USART_InitSnUSART_InitS/使能USART1接收中断}void usart_nvic_init(void){NVIC_InitTypeDef NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0;
&#47.GPIO_Pin = GPIO_Pin_9,然后每接受一个data就触发一次中断,转到中断入口处处理,然后清除中断标志位。一般情况下只有接受的时候采用中断方式;GPIO_Init(GPIOA.USART_WordLength = USART_WordLength_8b;
/配置好的参数初始化PA10}void usart_para_init(void){USART_InitTypeDef USART_InitS/*配置PA9为复用推挽输出*/NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
&#47.GPIO_Mode = GPIO_Mode_AF_PP.USART_StopBits = USART_StopBits_1,而发送只是放到buff寄存器里;抢占优先级0NVIC_InitS/1USART_Init(USART1;GPIO_InitStruct。以下是以前学习的时候串口通讯点灯的代码,USART_IT_RXNE); /&#47
采纳率:42%
PA1;无奇偶校验
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_NPA3.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitS
#include &system_stm32f10x;字长8位
USART_InitS
#include &stm32f10x_/允许串口1发送中断。
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
//允许串口1接收中断。
USART_Cmd(USART1,ENABLE);
//启动串口
USART_ClearFlag(USART1,USART_FLAG_TC);
//发送完成标志位
void NVIC_Configuration(void)//配置中断优先级
NVIC_InitTypeDef NVIC_InitS
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
stm32f10x_it.c的中断函数接收发送数据(接收和发送的时候改变LED状态):[cpp] view plain copy print?#include &..\include\stm32f10x.h&
#include &..\include\stm32f10x_it.h&
#include &..\include\stm32f10x_gpio.h&
#include &..\include\stm32f10x_usart.h&
void USART1_IRQHandler(void)
if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)//USART_IT_RXNE:接收中断
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
RX_dat=USART_ReceiveData(USART1);
while(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)==RESET){}
//接收数据寄存器非空标志位
GPIO_WriteBit(GPIOA,GPIO_Pin_2,(BitAction)(Bit_SET-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_2)));
USART_SendData(USART1,RX_dat);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET){} //发送数据寄存器空标志位
GPIO_WriteBit(GPIOA,GPIO_Pin_3,(BitAction)(Bit_SET-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_3)));
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
//stm32f10x_exti.h&1位停止字节
USART_InitS复用推挽输出
GPIO_Init(GPIOA.GPIO_Mode = GPIO_Mode_IN_FLOATING, &GPIO_InitStructure);
NVIC_Configuration();
/&#47.GPIO_Pin = GPIO_Pin_10;
USART_ITConfig(USART1;/72m
RCC_Configuration().GPIO_Pin = GPIO_Pin_9.h&
#include &/打开Rx接收和Tx发送功能
USART_Init(USART1;
void RCC_Configuration(void)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
void GPIO_Configuration(void)
GPIO_InitTypeDef GPIO_InitStructure:[cpp] v/波特率9600
USART_InitStructure.c配置;
GPIO_Configuration();
USART_Configuration();/RX初始化
GPIO_InitSTX初始化
GPIO_InitStructure,USART_IT_TXE,ENABLE);
&#47.USART_WordLength = USART_WordLength_8b; /&#47.USART_StopBits = USART_StopBits_1;串口初始化函数
/&#47.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;/
#include &stm32f10x.h&串口设置恢复默认参数
//无流控制
USART_InitS
/&#47.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
void USART_Configuration(void)//
void RCC_Configuration(void);
void GPIO_Configuration(void);
void USART_Configuration(void);
void NVIC_Configuration(void);
int main()
SystemInit();/
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitS
/初始化参数设置
USART_InitStructure.USART_BaudRate = 9600;
&#47:KEY2; *PA2:LED1,&USART_InitStructure);misc.h&串口参数初始化
USART_InitTypeDef USART_InitS
//stm32f10x_usart?/* *说明: *PA0:KEY1:USART1_RX *&#47.h&
#include &/浮空输入
GPIO_Init(GPIOA, &GPIO_InitStructure);
&#47.USART_Parity = USART_Parity_No;
GPIO_InitS
#include &stm32f10x_rcc.h&quot.h&
#include &quot:LED2; *PA9:USART1_TX;PA10;// &#47
本回答被网友采纳
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 pic时钟中断 的文章

 

随机推荐