[技术问答] 小白求大神赐教固件库的使用

[复制链接]
1433|15
 楼主| whq941017 发表于 2016-11-2 19:43 | 显示全部楼层 |阅读模式
本人刚刚学习新唐mini54的32位单片机,以前都是玩51的,第一次看寄存器就像看天书一样,关于固件库里的例子有非常不理解的地方,望大神赐教。使能时钟源为外部晶振,不是直接写寄存器就得了吗?为啥固件库例程要这样饶来绕去?实在是不解,后面两张图是这个寄存器的说明。(PS:本人C语言也烂成狗!!!!)

主函数里使能时钟源为外部晶振

主函数里使能时钟源为外部晶振
2.png
3.png
4.png
 楼主| whq941017 发表于 2016-11-2 19:44 | 显示全部楼层
求C语言高手帮帮我理解这固件库的使用方法
zhuotuzi 发表于 2016-11-3 21:32 | 显示全部楼层
你在keil编译后就可以定位那些函数原型了,这样你就明白那个宏代表的什么,
zhuotuzi 发表于 2016-11-3 21:34 | 显示全部楼层
那些大写字母的串串都是代表一个位置或一个变量,通过宏的方式看着更容易懂具体意思。然后通过逻辑位操作,实现对最左边寄存器对应位的清零或置位(写1)操作。
Harvard 发表于 2016-11-4 12:07 | 显示全部楼层
C的一种惯用的 位操作手段 .掩码.  你可以理解一个带缝隙的面具或者模具 ,你要修改32bit中的某些位时, 为了不伤及无辜 ,需要把其他人掩盖上,   然后一**打过去. ... 这样 仅仅是改变了你需要改变的那些位....

希望你能明白. 自己把pos 和msk 对照起来,然后实际移位看看 你就知道了.  
玛尼玛尼哄 发表于 2016-11-4 21:04 | 显示全部楼层
太小白了,知道位操作吧,知道宏定义吧,C语言的基础。
玛尼玛尼哄 发表于 2016-11-4 21:05 | 显示全部楼层
Harvard 发表于 2016-11-4 12:07
C的一种惯用的 位操作手段 .掩码.  你可以理解一个带缝隙的面具或者模具 ,你要修改32bit中的某些位时, 为了 ...

你讲的太明白了,他再不懂,就需要去看那俩英语单词什么意思了。

评论

哈哈 感谢赞同.谢谢  发表于 2016-11-7 08:15
huangcunxiake 发表于 2016-11-4 22:17 | 显示全部楼层
找个教程看看的。那个BSP的结构了,都研究研究
huangcunxiake 发表于 2016-11-4 22:26 | 显示全部楼层
QQ截图20161104222226.png
楼主看头文件会发现,每个POS对应一个MSK
POS是位置,一般命名时候包含该寄存器名和对应的位名称。就是告诉你这个BIT对应到这个寄存器的哪个位置。
而下面MSK就是通过这个位置数通过对1的移位操作定位到这个地方,通过这个MSK可以单独的操作这个寄存器,而不动其他的寄存器。。前提是要运用合适的位逻辑操作。
 楼主| whq941017 发表于 2016-11-5 09:26 | 显示全部楼层
玛尼玛尼哄 发表于 2016-11-4 21:04
太小白了,知道位操作吧,知道宏定义吧,C语言的基础。

知道,只是对这里的位操作不是很理解,之前一直是用API,几乎不会理会寄存器的
Harvard 发表于 2016-11-7 08:17 | 显示全部楼层
楼主多操作 多练 多看  ,就能理解 .一种操作习惯而已. 确实是一种比较惯用的手法 .可能在avr  在51等8bitmcu中 我们用的方式不一样
玛尼玛尼哄 发表于 2016-11-13 23:18 | 显示全部楼层
whq941017 发表于 2016-11-5 09:26
知道,只是对这里的位操作不是很理解,之前一直是用API,几乎不会理会寄存器的 ...

看来楼主学单片机时候没从51学,直接玩高大上的了
mintspring 发表于 2016-11-14 23:25 | 显示全部楼层
先学学基本功啊,C语言我只学:C primer plus
稳稳の幸福 发表于 2016-11-15 21:49 | 显示全部楼层
稳稳の幸福 发表于 2016-11-15 21:50 | 显示全部楼层
虽然不是那个新唐的网站提供的,但是这都是ARM的,一样的,可以看看,以后都是这个开发了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

13

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部