OpenEdv-开源电子网

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

关于库函数模版和寄存器模版使用的问题

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2015-10-18
在线时间
0 小时
发表于 2015-11-17 10:34:32 | 显示全部楼层 |阅读模式
5金钱
问题是这样的:  最早期能跟着视频建立了个库函数的工程模版  还有 寄存器的工程模版

但是我今天在看正点原子视频的时候   库函数部分是没有问题的
然后正点原子视频在寄存器操作的时候用的是当初新建的库函数的工程模版

那么我问题: 为什么是寄存器操作的不是用寄存器的模版呢? 那寄存器模版到底什么时候用呢?还是说一个工程里面库函数和寄存器可以同时操作??所以就没分哪个模版??

我用寄存器工程模版  然后跟着正点原子写程序就会有问题报错,然后得跟着STM32开发手册-寄存器版本的写才可以。
好像在主函数多加了个  Stm32_Clock_Init(9); 和原来delay_init();改成delay_init(72);就可以了。
如果少了72就会提示:error:too few arguments to function call,single argument'SYSCLK'was not specified
而少了Stm32_Clock_Init(9) 程序能正常当时下载到开发板就不是正确的500ms了~
对于这两个手册里提了一下其实也不是很理解~~

求帮忙解释下  坐等  谢谢~~ 

最佳答案

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

寄存器和库函数都可以同时操作,没有分什么模板,你觉得哪些地方操作库方便就用库函数,哪些地方操作寄存器方便就操作寄存器,至于delay_init()是因为原子哥写的程序中寄存器版本和库函数版本的函数体不一样,而之所以要定义Stm32_Clock_Init(9);是因为寄存器版本代码里面启动文件(startup_stm32f10x_hd.s)里面把SystemInit注释掉了,所以要定义一个Stm32_Clock_Init(9)对系统时钟进行初始化
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2015-11-17 10:34:33 | 显示全部楼层
寄存器和库函数都可以同时操作,没有分什么模板,你觉得哪些地方操作库方便就用库函数,哪些地方操作寄存器方便就操作寄存器,至于delay_init()是因为原子哥写的程序中寄存器版本和库函数版本的函数体不一样,而之所以要定义Stm32_Clock_Init(9);是因为寄存器版本代码里面启动文件(startup_stm32f10x_hd.s)里面把SystemInit注释掉了,所以要定义一个Stm32_Clock_Init(9)对系统时钟进行初始化
我的博客:http://blog.csdn.net/itdo_just
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2015-11-17 10:34:33 | 显示全部楼层
因为寄存器版本的代码里面没有SystemInit这个函数所以要注释掉自己写一个,SystemInit(这个函数是在库里面定义的),所以就出现了寄存器版本里面的Stm32_Clock_Init(9)这个函数,建议你看一下启动文件的详解,底下附件自己学习下吧

解析 STM32 的启动过程.pdf

361.04 KB, 下载次数: 176

我的博客:http://blog.csdn.net/itdo_just
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2015-10-18
在线时间
0 小时
 楼主| 发表于 2015-11-17 16:33:15 | 显示全部楼层
回复【2楼】229382777@qq.com:
---------------------------------
我要是去把那个注释去掉以后是不是就不用加这个了??
为什么要注释掉0 0
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-3-11
在线时间
2 小时
发表于 2020-8-26 14:34:52 | 显示全部楼层
本帖最后由 utzjfxdfh 于 2020-8-27 17:33 编辑

同问题:原因找到了,硬件有问题了,是因为8MHZ晶振没起振:1、晶振坏了 2,晶振电容坏了 3、晶振接触不良 。解决办法:重新焊接新的,或者加焊一下就好了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 16:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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