OpenEdv-开源电子网

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

使用USMART调试经纬度间距离计算函数报错,求教。。。。

[复制链接]

4

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2011-8-18
在线时间
4 小时
发表于 2013-9-25 11:33:17 | 显示全部楼层 |阅读模式

基于例程USMART,
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
//#include "lcd.h"
#include "usart.h" 
#include "usmart.h" 
//ALIENTEK战舰STM32开发板实验14
//USMART调试组件实验 
//技术支持:www.openedv.com
//广州市星翼电子科技有限公司
u32 weidu1;
u32 jingdu1;
u32 weidu2;
u32 jingdu2;

//LED状态设置函数
void led_set(u8 sta)
{
 LED1=sta;
}
//函数参数调用测试函数
void test_fun(void(*ledset)(u8),u8 sta)
{
 ledset(sta);
}   
 int main(void)
 { 
 delay_init();       //延时函数初始化  
 NVIC_Configuration();   //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
 uart_init(9600);   //串口初始化为9600
  LED_Init();        //LED端口初始化
 //LCD_Init();
 usmart_dev.init(SystemCoreClock/1000000); //初始化USMART      
 //POINT_COLOR=RED;
 //LCD_ShowString(30,50,200,16,16,"Mini STM32 ^_^"); 
 //LCD_ShowString(30,70,200,16,16,"USMART TEST"); 
 //LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
 //LCD_ShowString(30,110,200,16,16,"2011/6/18");  
   while(1)
 {     
  LED0=!LED0; 
  
//********************************************************************
//** 函数名称: distance_jw
//** 功能描述: 根据经度纬度计算距离
//** 参    数:  经度纬度
//** 返 回 值:  距离
//** 日   期: 2008年12月
//*********************************************************************
u32  distance_jw(u32 weidu1,u32 jingdu1,u32 weidu2, u32 jingdu2)
{
     
      double x,y,result,COS;
      double PI=3.14159265;
      double Earth_R=6371229;//m
      u32 distance=0; 
     
      double wd1=(double)weidu1/600000;
      double jd1=(double)jingdu1/600000;
      double wd2=(double)weidu2/600000;
      double jd2=(double)jingdu2/600000;
      COS= cos(((wd1+wd2)/2)*PI/180);
      x=(jd2-jd1)*PI*Earth_R* COS/180;
      y=(wd2-wd1)*PI*Earth_R/180;
      
      result =sqrt(x*x+y*y);
      distance=(unsigned long int)result;
      return (distance);

}

delay_ms(500); 

 }   
 }



只修改了main.c ,报错
main.c(51): error:  #268: declaration may not appear after executable statement in block
main.c(52): error:  #65: expected a ";"
main.c(73): warning:  #12-D: parsing restarts here after previous syntax error

c基础太差啊。。琢磨了半天没发现问题在哪。求教。。。谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-4-9
在线时间
0 小时
发表于 2013-9-25 13:08:51 | 显示全部楼层
度娘! 然后把出错的那一行程序标出来
回复 支持 反对

使用道具 举报

4

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-4-9
在线时间
0 小时
发表于 2013-9-25 13:10:27 | 显示全部楼层
变量定义要放在函数开头,不能放在可执行语句后面
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-25 22:14:04 | 显示全部楼层
回复【楼主位】峰回路转:
---------------------------------
楼主在main函数里面,直接塞了个函数进去,奇葩啊...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2011-8-18
在线时间
4 小时
 楼主| 发表于 2013-9-28 22:09:14 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
的确。一言中的。。。谢谢
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2011-8-18
在线时间
4 小时
 楼主| 发表于 2013-9-28 22:11:48 | 显示全部楼层
c语言的基础的确很重要。目前改用库版本更是有这样的感觉,从没正经学过一天,以后要多努力了。不在做奇葩。
把函数放到main前面编译通过。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-12 09:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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