完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
具体情况就是,在串口助手给了1个00或者01电机反应不理想,电机不是单纯的开或者关,而是停留在刚给00或者01这个转速的瞬间,即是给了00或者01,电机转速不变了。以下是我的中断服务函数的代码和MAIN函数的代码。
//中断服务函数: void USART1_IRQHandler(void) // { u16 a; while(1) { while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET){} //if(USART_GetiTStatus(USART2, USART_IT_RXNE) != RESET) a= USART_ReceiveData(USART1); switch(a) / { case 0:a2=0;break; case 1:a2=1;break; }; USART_SendData(USART1,a2); while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET){} //USART_RX_STA=0; } } //MAIN函数: int a2=0; int a3=100; int main(void) { //u16 led0pwmval=0; //u8 dir=1; //u8 t=0; int b=1; //KEY_Init(); //????????°??ü?????????????? NVIC_Configuration(); delay_init(); //???±?????????? uart_init(9600); //?®??????????9600 delay_init(); //???±?????????? LED_Init(); //????????LED?????????????? TIM3_PWM_Init(200,720);//??·?????PWM????=72000/(899+1)=80Khz delay_ms(1500); delay_ms(1500); delay_ms(1500); TIM_SetCompare1(TIM3,100); TIM_SetCompare2(TIM3,100); TIM_SetCompare3(TIM3,100); TIM_SetCompare4(TIM3,100); while(1) { if(a2==0) delay_ms(50); if(b)a3++; else a3--; if(a3>199) b=0; if(a3==100) b=1; TIM_SetCompare1(TIM3,a3); TIM_SetCompare2(TIM3,a3); TIM_SetCompare3(TIM3,a3); TIM_SetCompare4(TIM3,a3); if(a2==1) TIM_SetCompare1(TIM3,0); TIM_SetCompare2(TIM3,0); TIM_SetCompare3(TIM3,0); TIM_SetCompare4(TIM3,0); } } |
|
相关推荐
1个回答
|
|
帮顶。。。。
|
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4440 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
311浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
296浏览 2评论
311浏览 2评论
310浏览 2评论
352浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:09 , Processed in 0.858778 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号