OpenEdv-开源电子网

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

SysTick定时器报错

[复制链接]

12

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2015-3-22
在线时间
0 小时
发表于 2015-3-28 12:27:20 | 显示全部楼层 |阅读模式
5金钱


如图,这是我的错误,我觉得是没有包含头文件,然后百度了一下解决方法,说是头文件可能在core_m3和misc里面,然后我又查阅了一下自己的头文件


再看了一下


misc也有
再然后我就去core_m3里面找systick


我的代码是下面这样的


然后我就不知道怎么回事儿了,希望大神帮个忙,帮我纠正错误,多谢

最佳答案

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

#include "stm32f10x.h" void delay_us(u32 nus) { u32 temp; SysTick->LOAD = 9*nus; //延时指定时间 SysTick->VAL = 0X00; //清空计数器 SysTick->CTRL = 0X01; //使能,减到零无动作,外部时钟源 do { temp=SysTick->CTRL; //读取当前倒计数值 }while((temp&0x01)&&(!(temp&(1<<16)))); //等待时间到达 SysTick->CTRL = 0x00; //关闭计数器 SysTick->VAL = 0X0 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-3-21
在线时间
0 小时
发表于 2015-3-28 12:27:21 | 显示全部楼层
#include "stm32f10x.h"

void delay_us(u32 nus)
{
u32 temp;
SysTick->LOAD = 9*nus; //延时指定时间
SysTick->VAL = 0X00; //清空计数器
SysTick->CTRL = 0X01; //使能,减到零无动作,外部时钟源
do
{
temp=SysTick->CTRL; //读取当前倒计数值
}while((temp&0x01)&&(!(temp&(1<<16)))); //等待时间到达
SysTick->CTRL = 0x00; //关闭计数器
SysTick->VAL = 0X00; //清空计数器
}

void delay_ms(u32 nms)
{
u32 temp;
SysTick->LOAD = 9000*nms; //延时指定时间
SysTick->VAL = 0X00; //清空计数器
SysTick->CTRL = 0X01; //使能,减到零无动作,外部时钟源
do
{
temp=SysTick->CTRL; //读取当前倒计数值
}while((temp&0x01)&&(!(temp&(1<<16)))); //等待时间到达
SysTick->CTRL = 0x00; //关闭计数器
SysTick->VAL = 0X00; //清空计数器
}

int main(void)
{
GPIO_InitTypeDef   GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA
 |RCC_APB2Periph_GPIOB,ENABLE);//使能 PA,PB 端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0->A.8 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz 
GPIO_Init(GPIOA,&GPIO_InitStructure); //根据设定参数初始化 GPIOA.8
GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8  输出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //LED1->B.9 端口配置, 推挽输出
GPIO_Init(GPIOB,&GPIO_InitStructure); //推挽输出,IO 口速度为 50MHz
GPIO_SetBits(GPIOB,GPIO_Pin_9); //PB.9 输出高
while(1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
GPIO_SetBits(GPIOB,GPIO_Pin_9);
delay_us(500000);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
GPIO_ResetBits(GPIOB,GPIO_Pin_9);
delay_ms(500);
}
}

人永远别以为自己了不起,当你以为自己了不起的时候,你真的就没什么了不起了。
回复

使用道具 举报

12

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2015-3-22
在线时间
0 小时
 楼主| 发表于 2015-3-28 12:32:08 | 显示全部楼层
哦,我在misc.h中找到了void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource),但是只有这一个函数,其他没有
回复

使用道具 举报

12

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2015-3-22
在线时间
0 小时
 楼主| 发表于 2015-3-28 14:06:02 | 显示全部楼层
回复【3楼】低级工程师:
---------------------------------
恩恩,你的确实能够运行,但是没有库函数吗
回复

使用道具 举报

12

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2015-3-22
在线时间
0 小时
 楼主| 发表于 2015-3-28 14:32:05 | 显示全部楼层
回复【3楼】低级工程师:
------------------------------
好吧,能用就行了,多谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 11:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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