我在中断中也是显示的东西,发现这个现象后我就试了试。一个显示,另一个是DAC的赋值,其他就没有了。原子哥,你给看看吧,我整了好几天了。都疯了。光头文件就弄了好几天,由于上这个问题了
void TIM3_Init(void)
{
RCC->APB1ENR|=1<<1;//初始化定时器3
TIM3->ARR=1600;
TIM3->  SC=7119;
TIM3->DIER|=1<<0;//zhongduanshineng
TIM3->DIER|=1<<6;//zhongduanyunxu
TIM3->CR1|=1<<0;
MY_NVIC_Init(1,0,TIM3_IRQChannel,2);
}
void TIM2_Init(void)
{
RCC->APB1ENR|=1<<0;//初始化定时器3
TIM2->ARR=5000;
TIM2->  SC=7119;
TIM2->DIER|=1<<0;//zhongduanshineng
TIM2->DIER|=1<<6;//zhongduanyunxu
// TIM5->CR1|=1<<7;
TIM2->CR1|=1<<0;
MY_NVIC_Init(1,1,TIM2_IRQChannel,2);
}
void TIM3_IRQHandler(void)
{
if(TIM3->SR&0x0001)
{
i=i+10;
if(i>=4096){i=0;} DAC->SWTRIGR|=1<<0;//使能软件触发
DAC->DHR12R1=i; //LED1=~LED1 ;
// printf("%d\n",DAC->DHR12R1) ;
LCD_Show2Num(20,30,i,4,16,0);
LCD_Show2Num(20,50,DAC->DHR12R1,4,16,0);
TIM3->SR&=~(1<<0);
}
}
void dac_Init(void)
{
guanjiao_Init();
RCC->APB1ENR|=1<<29;//开时钟
DAC->CR&=0x0000;
DAC->CR|=1<<0; //使能DAC1
DAC->CR|=0<<1; //DAC1输出缓存不使能 BOFF1=1
DAC->CR|=1<<2; //不使用触发功能 TEN1=0
DAC->CR|=4<<3;//设置为软件触发,
// DAC->CR&=0<<6;//设置为输出三角波
DAC->CR|=3<<6; //不使用波形发生
DAC->CR|=1<<8; //屏蔽、幅值设置
DAC->CR&=0<<12; //DAC1 DMA不使能
DAC->SWTRIGR|=1<<0;//使能软件触发
DAC->CR|=1<<0; //使能DAC1
DAC->DHR12R1=0;
}
void guanjiao_Init(void)
{
RCC->APB2ENR|=1<<2;
GPIOA->CRL&=0xFF00FFFF;
GPIOA->CRL|=0x00000000;
GPIOA->ODR|=3<<4;
LED0=1;
}
void TIM2_IRQHandler(void)
{
if(TIM2->SR&0x0001)
{
adcxianshi(ADC_CH0);
TIM2->SR&=~(1<<0);
}
} |