新手上路
- 积分
- 33
- 金钱
- 33
- 注册时间
- 2017-4-25
- 在线时间
- 17 小时
|
10金钱
[mw_shl_code=applescript,true]#include "timer.h"
#include "adc.h"
#include "usart.h"
#include "lcd.h"
#include "sram.h"
void TIM3_Int_Init(u16 arr, u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStrue;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
TIM_TimeBaseInitStrue.TIM_Period=arr;
TIM_TimeBaseInitStrue.TIM_Prescaler=psc;
TIM_TimeBaseInitStrue.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInitStrue.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStrue);
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn; //定时器3中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01; //抢占优先级1
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; //子优先级3
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_Cmd(TIM3,ENABLE);
}
void TIM3_IRQHandler(void)
{
u16 adcx;
int i=0;
if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET)
{
adcx=Get_Adc_Average(ADC_Channel_5,20);
SRAMWriteBuffer(&adcx,i,1);
i++;
LCD_ShowxNum(134,130,adcx,4,16,0);
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}
}
[/mw_shl_code]
我想要用定时器采样我的心跳,然后把它先存入外部sram中,之后再到main把它拿出来做运算,但是他怎么整个程式停住了,可是我把SRAMWriteBuffer拿掉之后,他程式又恢复正常了,拜托各位高手教教我怎么解决,我已经卡好久了
|
|