OpenEdv-开源电子网

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

刚开始做实验。但是例程中有些函数未定义是怎么回事啊。。

[复制链接]

4

主题

7

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2014-4-20
在线时间
0 小时
发表于 2014-4-27 16:51:26 | 显示全部楼层 |阅读模式
库函数例程\使用库函数版本\标准例程\ALIENTEK MINISTM32 实验2 按键输入(库)\LIB\ALIENTEK_MiniSTM32_REVB0_HardWare_V1.1\SysTickDelay.c(49):
error:  #20:
identifier "SYSTICK_ENABLE" is undefined
identifier "SystemFrequency" is undefined
identifier "SYSTICK_CLKSOURCE" is undefined

这是按键输入的实验。 mini版。自己也不会定义。该怎么办那。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-4-27 18:11:33 | 显示全部楼层
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2014-4-20
在线时间
0 小时
 楼主| 发表于 2014-4-27 18:15:41 | 显示全部楼层
是啊。我是按照他的视频学习的。编译出问题了。有三个变量未定义。我也不知道该怎么定义。自己学习好困难啊。
回复 支持 反对

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2014-4-20
在线时间
0 小时
 楼主| 发表于 2014-4-27 18:17:02 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
#include "SysTickDelay.h"


#define SYSTICK_COUNTFLAG           16
    

static u8  fac_us=0;//us延时倍乘数
static u16 fac_ms=0;//ms延时倍乘数

//SYSTICK的时钟固定为HCLK时钟的1/8
//SYSCLK:系统时钟
void SysTick_Initaize(void)
{                                                       
SysTick->CTRL  &= (~SYSTICK_CLKSOURCE); //0xfffffffb; //bit2清空,选择外部时钟  HCLK/8

fac_us=(SystemFrequency/1000000)/8;  //1us需计算的脉冲个数,其中(SystemFrequency/1000000)代表1US的脉冲个数,8是需要8分频  
fac_ms=(u16)fac_us*1000;           //1ms需计算的脉冲个数
}

//延时nms
//注意nms的范围
//SysTick->LOAD为24位寄存器,所以,最大延时为:
//nms<=0xffffff*8*1000/SYSCLK
//SYSCLK单位为Hz,nms单位为ms
//对72M条件下,nms<=1864 
void delay_ms(u16 nms)
{        
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit)
SysTick->VAL   =  (0x00);                     /* Load the SysTick Counter Value */         //清空计数器
SysTick->CTRL =  (1<<SYSTICK_ENABLE); /* Enable SysTick and SysTick Timer */      //开始倒数  
do
{
temp=SysTick->CTRL;
}
while((temp&0x01)&&(!(temp&(1<<SYSTICK_COUNTFLAG))));//等待时间到达   
SysTick->CTRL &=  (~(1<<SYSTICK_ENABLE));    //关闭计数器
SysTick->VAL   =  (0x00);                     /* Load the SysTick Counter Value */         //清空计数器
}   


//延时nus
//nus为要延时的us数.         
void delay_us(u32 nus)
{
u32 temp;       
SysTick->LOAD=nus*fac_us; //时间加载     
SysTick->VAL   =  (0x00);                     /* Load the SysTick Counter Value */         //清空计数器
SysTick->CTRL = (1<<SYSTICK_ENABLE);  /* Enable SysTick and SysTick Timer */  //开始倒数   
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<SYSTICK_COUNTFLAG)));//等待时间到达   
//SysTick->CTRL &=  (~(1<<SYSTICK_ENABLE));    //关闭计数器
SysTick->CTRL = 0x00;
SysTick->VAL   =  (0x00);                     /* Load the SysTick Counter Value */         //清空计数器
}
请问该怎么定义啊。求助。。
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-4-27 18:22:07 | 显示全部楼层
头文件路径添加了没
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-11 08:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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