打印
[STM32F0]

新学stm32的n个疑惑和不解。希望懂的人帮忙解答。谢谢。

[复制链接]
2411|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lbd|  楼主 | 2015-2-14 10:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是买了个  NUCLEO stm32f072rb和普通stm32f103开发板之后,才开始关注stm32的,之前一直玩arduino这类电子积木,也学过郭天祥的51视频。


最近开始弄stm32,有n个不懂的地方。


首先是 官方库。
1,这个官方库是所有stm32都用同样的函数,还是对应每个stm32类型,有一个自己的库?
如果是后者的话,那每使用一款stm32,如用stm32f072 后换用stm32f103做东西。我是不是还要重新学一遍103的库函数?
这样的话,也太繁琐了啊。


2,上面的疑惑是因为,我手头有论坛这个072板子,但是听的是刘洋的stm32f103的视频课(听说挺好才听的)。
所以我就按照视频里面103板子的库模板建立方法,在咱论坛找到了072库链接下载来做库模板。
我按着他的视频写led亮灯,结果
GPIO_InitTypeDef GPIO_InitStructure;
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;

这里面的【RCC_APB2Periph_GPIOB】【GPIO_Mode_Out_PP】程序提示没有,出现红叉。我找h文件,看到GPIO模式里面真没有这个,只有4个模式
不知道是不是103和072差异问题,还是我的库文件找的被别人删过的。


3,我手头有一个stm32 f103的板子,里面已经有boot程序和正常程序了。我用STM32 ST-LINK Utility.exe写103灯的hex文件到103板子,板子没有led亮,并且我擦除程序,再弄以前的boot和正常程序,boot可以,正常程序下载不了了。请问这是为什么呢?STM32 ST-LINK Utility.exe是不是把程序写到了boot区?


4,刚才按论坛朋友帖子,用CUBE生成了072的led代码,也在while里面写了个开关,灯确实亮了。可是我发现,CUBE生成的程序是HAL的库写的。
这个HAL记得是硬件抽象层的意思?这么说来它的移植性更好??那我到底该学什么库,能让072,和103板子都能使用啊
这个HAL库,不会还要学吧,蒙了,蒙了,蒙了。。。。无助的少年。。。


5,这几天,只有今天早上led亮了,之前还遇到了CUBE无法生存工程文件问题(后来知道是文件名不能有中文)。STM32我一定要学会!虽然我现在什么也不知道。我在学校图书馆里面借了本最大的stm32的书,回来打开发现跟官方函数库说明书一样,这个作者估计不是蠢材就是大学教授学习学成了呆子。只写一个函数,下面写函数的功能,就完事了。这就是一本书。然后标题还写着,本书适合未接触过STM的人。大家能帮忙推荐适合新人的stm32的好书吗?


走在陌生的未知的却很喜欢的学习路上,我相信只要真心想学,一定能学会的!求大家帮忙回答我的问题。谢谢。我学习的第一个目标就是
能独立编写飞行器控制程序。像这里bbs.tryfly.cn/forum-36-1.html劲飞翔CC3D飞行控制器。因为我也喜欢航模。再次谢谢大家。


沙发
fjjjnk1234| | 2015-2-14 11:13 | 只看该作者
M0和M3的库稍微有一点点不同,比如你说的GPIO初始化那部分,但库函数基本都是相通的。HAL库好像刚出不久的,移植性更好,可以学习下。

使用特权

评论回复
板凳
birdSTM32| | 2015-2-14 16:15 | 只看该作者
不同的STM32对应的库是不同的,但相互之间移植会很轻松,并且官方提供了相关文档。GPIO_Mode_Out_PP和RCC_APB2Periph_GPIO都在相关的头文件里面定义,确认你包含了头文件并且在开发环境中设置了头文件路径。至于LED灯不亮,可能是开发板上的接口改变了,你应该去找原理图,确认连接LED的引脚,并且尝试高低电平触发。论坛上有很多相关的教材,大多是针对某一款开发板的,你在购买前应该关注下技术支持是否充分。不过ST的官方文档肯定是通用的,建议你结合相关开发板的教材一起看,我也正在学习,刚刚跨进一只脚,希望对你有所帮助。

使用特权

评论回复
地板
雪驹| | 2015-2-14 20:25 | 只看该作者
库是一样的,但芯片不一样,有些管脚功能不一定一样的

使用特权

评论回复
5
雪驹| | 2015-2-14 20:26 | 只看该作者
所以还要看芯片手册

使用特权

评论回复
6
玄德| | 2015-2-14 21:07 | 只看该作者

初学,不妨直接学寄存器。

使用特权

评论回复
7
vigous1| | 2015-2-14 22:18 | 只看该作者
可以多看看芯片手册

使用特权

评论回复
8
lbd|  楼主 | 2015-2-14 22:57 | 只看该作者
fjjjnk1234 发表于 2015-2-14 11:13
M0和M3的库稍微有一点点不同,比如你说的GPIO初始化那部分,但库函数基本都是相通的。HAL库好像刚出不久的 ...

非常感谢,明白了一点。回答的恰是我的疑问。

使用特权

评论回复
9
lbd|  楼主 | 2015-2-14 22:58 | 只看该作者
birdSTM32 发表于 2015-2-14 16:15
不同的STM32对应的库是不同的,但相互之间移植会很轻松,并且官方提供了相关文档。GPIO_Mode_Out_PP和RCC_A ...

很高兴,有这么热心的朋友帮助。非常感谢!咱一起加油!

使用特权

评论回复
10
lbd|  楼主 | 2015-2-14 23:07 | 只看该作者
vigous1 发表于 2015-2-14 22:18
可以多看看芯片手册

好吧,虽然你说的对,但是对于入门的选手来说,直接看芯片手册,还是有点难为情,你说是吗?
还记得你当初第一次接触时候的感受吗?     不过还是谢谢了。非常感谢热心回答。

使用特权

评论回复
11
小班儿| | 2015-2-15 09:29 | 只看该作者
要看芯片手册!

使用特权

评论回复
12
icecut| | 2015-2-15 09:43 | 只看该作者
本帖最后由 icecut 于 2015-2-15 09:47 编辑

我给你回答一下.那a开头的板卡是个玩具级,那个学的再牛X,玩这个也是一窍不通.
1. f1是一套老库由arm主导,所有arm的芯片都支持这套裤,不仅仅是 st还有其他厂商.
2.st 于是又出了一套更牛X的库,就是cube的hal层.这层库在所有st芯片上都通用.注意是函数名通用,实现是不一样的.为什么这么做你现在理解不了.
3. 对于第四个问题, f1的cube刚开始支持.hal已经有了昨天我下载了.但是还不如其他的做的好.
4. 对于第五个问题,技术就是这样.那些资料就够用了.你看不懂是你的事.
5.你若看我签名里的高手教程,说的更加粗略.只说明方法,你自己实践.那些教你实践的课程都有你遇到的问题.不管口碑好还是口碑差

使用特权

评论回复
13
lbd|  楼主 | 2015-2-15 13:23 | 只看该作者
icecut 发表于 2015-2-15 09:43
我给你回答一下.那a开头的板卡是个玩具级,那个学的再牛X,玩这个也是一窍不通.
1. f1是一套老库由arm主导, ...

好吧,说的好详细。非常感谢。

那个hal我也知道点,之前考过 嵌入式三级考试。移植性好的系统就是方便了开发人员减少底层操作。只专心研发就好。这就是hal出来的原因吧。

其实有时候看这些,偶尔觉得程序员是个懒懒的行业,做成函数库,能怎么偷懒就怎么偷懒。
或者往好了说是节省时间,能有更多精力干有意义的事情。   

非常感谢回答,我去好好看视频了。。。

使用特权

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

本版积分规则

lbd

1

主题

5

帖子

0

粉丝