初级会员

- 积分
- 82
- 金钱
- 82
- 注册时间
- 2016-6-20
- 在线时间
- 30 小时
|
5金钱
关于定时器启动DHT11,将数据显示在TFT屏上的问题。下面是我的程序
void main ()
{
Stm32_Clock_Init(9);//?μí3ê±?óéè??
delay_init(72); //?óê±3?ê??ˉ
uart_init(72,9600); //′??ú13?ê??ˉ
Timer2_Init (4999,7199);
LCD_Init ();
POINT_COLOR=RED;
while (1)
{
POINT_COLOR=RED;
LCD_ShowString(30,110,"2016/10/10");
}
}这是main函数的,
void TIM2_IRQHandler ()
{
u8 t;
u16 temperature,wetness;
if (TIM2->SR&0X0001)
{
t++;
if (t==4)
{
Rdata (); //DHT11读取数据
temperature=(u16) tempera+0x30;
wetness=(u16) wet+0x30;
POINT_COLOR=BLACK;
LCD_Show2Num (30,50,temperature,2,16,0);
LCD_Show2Num (30,70,wetness,2,16,0);
LED0!=LED0;
}
}
TIM2->SR |=!(1<<0);
}
void Timer2_Init(u16 arr,u16 psc)
{
RCC->APB1ENR |=1<<0;
TIM2->ARR =arr;
TIM2->PSC =psc;
TIM2->DIER |=1<<0;
TIM2->DIER |=1<<6;
TIM2->CR1 |=1<<0;
MY_NVIC_Init(2,2,TIM2_IRQChannel,2);
}这是定时器中断设置和中断函数。
问题是:程序下到mini板上什么都没显示,要是把main函数中定时器初始化部分也就是Timer2_Init (4999,7199)注释掉就可以显示while (1)中显示的东西。为什么,求助原子哥?@正点原子
|
|