本帖最后由 wdodo0929 于 2017-3-28 15:40 编辑
用了原子哥的USMART组件,感觉调速有些延迟 (不到0.5秒)。想到不用组件直接通过串口调速,来试试。主程序大概是这样的:int main(void)
{
u8 res;
u8 ch=0x00;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
My_USART1_Init();
TIM1_PWM_Init(7199,159);
while(1)
if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
res= USART_ReceiveData(USART1);
USART_SendData(USART1,res);
}
LED0_PWM_VAL=((u16)ch<<8)|(res); //LED0_PWM_VAL赋值给CCR1了
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
void USART1_IRQHandler(void)
{
u16 res;
TIM1_PWM_Init(7199,159);
if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
res=USART_ReceiveData(USART1);
TIM1->CCR1 = res;
USART_SendData(USART1,res);
}
}
int main(void)
{
USART1_IRQHandler();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
My_USART1_Init();
while(1)
{
}
}
我觉得这次的逻辑没错呀,可还是不能循环起来,串口数据输入后,LED又灭了,然后无论怎么串口输都没用。
一周热门 更多>