新手入门
- 积分
- 12
- 金钱
- 12
- 注册时间
- 2016-4-25
- 在线时间
- 1 小时
|
1金钱
请教大神,我使用tim3扫描串口。出现了间隔一段时间就出现只接收串口一个字节就结束的情况,更改定时器时间无作用。
//ʹÄܶ¨Ê±Æ÷4,ʹÄÜÖжÏ.
void Timer4_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //TIM4ʱÖÓʹÄÜ
//TIM4³õʼ»¯ÉèÖÃ
TIM_TimeBaseStructure.TIM_Period = arr; //ÉèÖÃÔÚÏÂÒ»¸ö¸üÐÂʼþ×°Èë»î¶¯µÄ×Ô¶¯ÖØ×°ÔؼĴæÆ÷ÖÜÆÚµÄÖµ ¼ÆÊýµ½5000Ϊ500ms
TIM_TimeBaseStructure.TIM_Prescaler =psc; //ÉèÖÃÓÃÀ´×÷ΪTIMxʱÖÓÆµÂʳýÊýµÄÔ¤·ÖƵֵ 10KhzµÄ¼ÆÊýƵÂÊ
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //ÉèÖÃʱÖÓ·Ö¸î:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIMÏòÉϼÆÊýģʽ
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); //¸ù¾ÝTIM_TimeBaseInitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯TIMxµÄʱ¼ä»ùÊýµ¥Î»
TIM_ITConfig( TIM4, TIM_IT_Update|TIM_IT_Trigger, ENABLE );//TIM4 ÔÊÐí¸üУ¬´¥·¢ÖжÏ
//TIM4ÖжϷÖ×éÅäÖÃ
NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn; //TIM3ÖжÏ
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; //ÏÈÕ¼ÓÅÏȼ¶03¼¶
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //´ÓÓÅÏȼ¶3¼¶
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQͨµÀ±»Ê¹ÄÜ
NVIC_Init(&NVIC_InitStructure); //¸ù¾ÝNVIC_InitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèNVIC¼Ä´æÆ÷
TIM_Cmd(TIM4, ENABLE); //ʹÄÜTIM4
}
//¶¨Ê±Æ÷4·þÎñÖжϳÌÐò
void TIM4_IRQHandler(void)
{
if(TIM4->SR&0X0001)
{
read_usart1();
TIM4->CNT=0;
TIM4->ARR=1000;
}
TIM4->SR&=~(1<<0);
}
|
|