打印
[应用相关]

STM32不用固件库,要用到哪些头文件?

[复制链接]
6782|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangfeng33|  楼主 | 2013-4-30 16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想要的开发方式类似于51单片机,包含一个 reg52.h 就行了。
网上看到很多人也是脱离固件库进行stm32开发的,但是我不知道具体是怎么弄的,要用到哪些头文件?我只包含了一个 stm32f10x.h 但是会报错。

沙发
IJK| | 2013-4-30 16:45 | 只看该作者
各种用到的外设头文件也要包含,比如 stm32f10x_gpio.h

使用特权

评论回复
板凳
grasswolfs| | 2013-5-2 14:13 | 只看该作者
stm32比52单片机复杂些,建议还是用固件库吧,可以先用例程开发

使用特权

评论回复
地板
jxmzzr| | 2013-5-2 16:26 | 只看该作者
对于硬件只需要这个头文件提供相应的寄存器 至于报错和你的代码有关

使用特权

评论回复
5
cjhk| | 2013-5-2 18:47 | 只看该作者
不是很了解  这一块  用的不多  没帮上忙   对不住

使用特权

评论回复
6
airwill| | 2013-5-5 07:39 | 只看该作者
可能还有编译设置问题

我建议, 可以不用库函数. 但为了可读性, 尽量使用库的定义.

使用特权

评论回复
7
outstanding| | 2013-5-5 09:09 | 只看该作者
库函数,比较方便,寄存器可以提高自己的对STM32的认识

使用特权

评论回复
8
cjhk| | 2013-5-5 17:22 | 只看该作者
尽量采用库文件中的函数   相对来说   容易了解一点

使用特权

评论回复
9
拿起书本| | 2013-5-5 21:45 | 只看该作者
看STM32的用户手册,自己定义一个类似reg52.h 的头文件,不就是一堆寄存器的地址么,或者再高级点,向stm32库中那样将各个模块的寄存器组整成结构体变量的样子.如果不会,请参考STM32库里的头文件,并去看C语言。

然后参照数据手册和STM32的库,可以定义自己的库函数。

使用特权

评论回复
10
LDTEST| | 2013-5-6 10:56 | 只看该作者
只用一个启动文件就行了,然后需要什么定义什么,不过不建议了,因为 寄存器实在太多了

使用特权

评论回复
11
duljsky| | 2013-5-7 21:13 | 只看该作者
楼主可以把启动代码的systeminit给去掉,在自己的文件中配置系统时钟,这样的话只需要启动文件和stm32f10x.h;否则要加system_stm32f0xx.h和system_stm32f0xx.c文件的,用来配置时钟用的!LZ可以尝试一下,俺一向只用寄存器操作,嘎嘎~如果还不行可能需要一个官方的宏文件,搜一搜吧!不对的地方请大牛们指点~

使用特权

评论回复
12
huangfeng33|  楼主 | 2013-5-8 15:39 | 只看该作者
我看网上有人是只包含了stm32f10x.h,里面包含了所有寄存器的定义,(http://hi.baidu.com/kernel_007/item/f2174fd07ef34f1721e250bb) 但是我包含这个文件就会报错:
C:\KeilSTM32\ARM\Inc\ST\STM32F10x\stm32f10x.h(80): error:  #35: #error directive: "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"

使用特权

评论回复
13
jxmzzr| | 2013-6-12 15:07 | 只看该作者
如果从做项目的角度看,拿来主义才是最好的方案,自己做上述这些纯粹是画蛇添足,因为STM32的库比较稳定,效率也还可以;但如果是一个初学者的探索,个人觉得这样的精神是值得鼓励的,因为在做这些工作的过程中,你会学到很多东西。

另外,好像ucos官方提供的stm32版本的内核中似乎用的不是官方库,是自定义的,可以参考一下

使用特权

评论回复
14
huangfeng33|  楼主 | 2013-6-12 15:09 | 只看该作者
先谢谢楼上各位朋友了。我是新手,我只是觉得库函数那么多,那么繁琐。因为以前学单片机都是对寄存器进行操作,然后自己调通之后把范例程序保存下来,还是感觉直接操作寄存器简单明了,库函数又多又长。
网上和书上有很多介绍在keil中使用库函数、需要哪些文件,但是很少介绍不用库函数的,搭建这个环境我搞了很长时间了还是没搞好。
你说的这个头文件必须自己定义吗,没有现成的吗?网上貌似有人只包含了 stm32f10x.

使用特权

评论回复
15
error_dan| | 2013-6-13 09:23 | 只看该作者
唉,自己把错误信息拿出来google一下不就知道了...跟用不用库有个毛线关系啊...

使用特权

评论回复
16
杨爱林林| | 2013-6-13 09:37 | 只看该作者
头文件 包含相关寄存器声明就好啦

使用特权

评论回复
17
sun1238898| | 2013-6-13 10:00 | 只看该作者
stm32f10x.h即可。如果你要用时钟自动初始化,你把库函数的时钟初始化函数加入即可,其他的都没事了。

使用特权

评论回复
18
田宏亮| | 2013-6-13 19:33 | 只看该作者
IAR环境,使用了三个文件:
1、寄存器定义文件。
2、中断向量表文件。
3、数据类型定义文件。
这三个文件是根据标准库修改得到了。

使用特权

评论回复
19
xouou_53320| | 2013-6-13 21:20 | 只看该作者
进包含启动文件 stm32f10x.s 就可以了 ,

不过大项目这样做会很麻烦

使用特权

评论回复
20
cjhk| | 2013-6-13 21:57 | 只看该作者
找到相应的引导文件   应该就好了   个人的理解   顶一个

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

506

主题

2446

帖子

8

粉丝