OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3772|回复: 5

基于STM32f103四轴飞行器用串口助手控制电机开关的问题

[复制链接]

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2015-7-23
在线时间
0 小时
发表于 2015-7-23 21:24:00 | 显示全部楼层 |阅读模式
5金钱
具体情况就是,在串口助手给了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);
 }
}



最佳答案

查看完整内容[请看2#楼]

回复【3楼】飞翼: ---------------------------------  可以用仿真器跟踪代码看看。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-7-23 21:24:01 | 显示全部楼层
回复【3楼】飞翼:
---------------------------------
 可以用仿真器跟踪代码看看。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-7-23 22:23:10 | 显示全部楼层
楼主知道问题在哪里么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2015-7-23
在线时间
0 小时
 楼主| 发表于 2015-7-23 22:32:24 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
不知道,还没找到,感觉中断服务函数能正常跑,函数里面还设有一个数据返回串口助手的功能,我在串口助手能接收到我发出去的数据。
个人估计可能是单片机一直停留在中断函数里面,不在MAIN函数里面跑,所以转速才会不变。
回复

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2015-7-23
在线时间
0 小时
 楼主| 发表于 2015-7-23 23:45:52 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
推荐什么软件? KEIL5自带的可以吗?这是串口通信的,动态信号来的
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-7-26 22:17:36 | 显示全部楼层
回复【5楼】飞翼:
---------------------------------
MDK+JTAG
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 14:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表