初级会员

- 积分
- 173
- 金钱
- 173
- 注册时间
- 2013-6-30
- 在线时间
- 0 小时
|
发表于 2013-8-24 20:29:47
|
显示全部楼层
回复【楼主位】Admin:
---------------------------------
#include <stm32f10x_lib.h>
#include <math.h>
#include <stdio.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"
#include "motor.h"
#include "BuJin_F.h"
#include "BuJin_Z.h"
#include "zhixian.h"
#include "yuanhu.h"
int main(void)
{
float xx;
float yy;
float x_last;
float y_last;
double q1;
double q2;
int i=0;
float rr=4;
float x0=11;
float y0=7;
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口初始化
LED_Init(); //初始化与LED连接的硬件接口
Motor_Init();
delay_ms(1000);
x_last=x0+rr;
y_last=y0;
LED0=0;
zhixian(0,0,x_last,y_last);//移动到画圆起点 这个函数式用来画直线的,经过测试没有问题
q1=i*PI;
xx=cos(60)*rr+x0;
q2=i*PI; //PI即为圆周率
yy=sin(q2/180)*rr+y0;
zhixian(x_last,y_last,0,0);
x_last=xx;
y_last=yy;
LED1=0;
}
上面程序中加黑的两句话,如果加上这两句话,程序只能运行到LED0=0,就是LED0灯可以点亮; 如果这两句话都屏蔽掉,程序可以执行到LED1,就是LED0和LED1这两个灯都能点亮;zhixian(0,0,x_last,y_last);这个函数是画直线用的,把加黑的两句话屏蔽掉,步进电机正常工作,也能画直线,如果加上的话,步进电机没有反应,画不了直线。。JTAG仿真的时候,如果加上这两句加黑的,单步运行的时候,只能执行到LED0=0,后面的程序就到不了了,也画不了直线。。。。
用串口看了下,XX和YY的值,都是正确的。。。。不知道这两句话有什么问题。。。 |
|