打印
[菜农群课笔记]

菜农群课《实战新唐M0--泾渭分明1》04.01

[复制链接]
3006|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
U灬U|  楼主 | 2011-4-1 21:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


菜农群课《实战新唐M0
泾渭分明


-----主要内容:BSP包的内容及库的理解 主讲:神农cube


马上开始今天的课程

20:28:56
实战新唐M0

第一讲

20:29:05
  第一讲

20:29:05
泾渭分明

20:29:39
上次我在预备试讲中已经简单的

20:29:47
介绍了新唐提供的资源

20:30:01
包括BSP以及三份的手册

20:30:41
三份手册分别是:参考手册,电气特性手册,以及BSP驱动参考

20:31:04
注意,一般我们参看参考手册去了解对应结构与寄存器

20:31:23
利用BSP驱动库来进行简单有效的操作

20:31:32
且不提BSP效率有多高

20:31:49
但是我认为这是新手最好的入门途径

20:32:03
首先先打开BSP中文手册

20:32:18
我们来看下传说中的库

20:32:39
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-28207.png

20:32:47
这就是我在使用的驱动参考

20:32:58
我已经发现和新版本的库对不上号了的

20:33:11
因为这里不是英语高手们的园地

20:33:26
设身处地的思考过后


20:33:35
我还是决定用中文手册来讲

20:34:01
但是也希望各位能准备好英文手册备用

file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-3229.png

20:34:14
因为有些东西需要去里面寻找

20:34:56
先来讲一下什么是BSP

20:35:18
其实51寄存器也就一点点

20:35:29
对应当今的ARM级芯片

20:35:34
真的是九牛一毛

20:35:44
新的芯片结构复杂



20:35:57
并且在寄存器设置上更是不同

20:36:14
所以很难被人们一一去使用和了解

20:36:27
这样很不利于推广和开发

20:36:31


20:36:36
有了新的开发模式

20:36:53
AVR起有了自动生成代码器后

20:36:57
逐渐的

20:37:09
演变出了官方

20:37:13
为使用者

20:37:23
开发一套完整的固件函数库


20:37:30
给人们方便

20:37:40
的去使用和了解芯片

20:37:58
其实我们需要知道的一点是

20:38:09
固件库肯定为了兼容

20:38:14
而写的很繁琐

20:38:26
因为他要适用不同的芯片

20:38:09
固件库肯定为了兼容

20:38:14
而写的很繁琐

20:38:26
因为他要适用不同的芯片

20:38:34
可以说是一整个系列

20:38:47
除了繁琐之外

20:38:51
还有一点

20:39:01
为何称为固件

20:39:12
固即根本

20:39:25
其实固件库操作的是驱动层

20:39:39
而开发者仅需开发应用层

20:39:53
也就是寄生在固件库上去开发

20:40:01
那么我们知道了一点

20:40:05
这点是什么?

20:40:13
就是固件库本身如果一旦使用

20:40:16
这些程序

20:40:22
是不必去改动它的

20:40:29
即固定

20:40:45
仅需加入有关的头文件与c文件

20:40:49
调用即可

20:40:59
GPIO为例

20:41:17
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-26387.png

20:41:24
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-21282.png


20:43:03
GPIO

20:43:09
通用输入输出

20:43:32
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-1681.png

20:43:38
以这个函数为例

20:43:50
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-1956.png

20:43:58
原型

20:44:05
即是函数的声明

20:44:21
我们可以看到函数中有两个需要输入的参数

20:44:35
port以及一个32bit的数据

20:44:43
继续看下去

20:45:03
他的描述是set一位

20:45:17
注意bit byte的关系

20:45:29
指定输出一位

20:45:35
值为高
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-27579.png



20:46:18
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-7475.png

20:46:27
好了知道了函数功能



20:47:16
知道了函数的功能

20:47:29
我们需要知道输入的参量是干什么的

20:47:38
那么我们接着看下面

20:47:44
参数:

20:47:58
参数   
port [in]
  指定GPIO  端口. 可以是 GPA, GPB , GPC , GPD , GPE
i32Bit [in]
指定GPIO端口的比特. 可以是 0~15.

20:48:05
port是干嘛的呢

20:48:10
指定GPIO端口

20:48:30
可以选择的参数是GPA, GPB , GPC , GPD , GPE

20:48:48
依照不同的芯片与自己的外设可以自行选择

20:49:05
一组port我们知道是16IO

20:49:08
那么

20:49:14
第二个参数

20:49:18
说的是什么呢

20:49:21
看下面

20:49:27
i32Bit [in]
指定GPIO端口的比特. 可以是 0~15.

20:49:31
0-15

20:49:43
即第一个口,第二个口。。。。。

20:49:47
以此类推

20:50:13
最后我们需要看一下如果我们要使用这一函数

20:50:24
我们需要引入什么头文件

20:50:40
可以看到是Driver/DrvGPIO.h

20:50:57
Driver/是他的路径


20:51:01
不必理会

20:51:07
之后会说到的

20:51:19
至于返回值
E_SUCCESS       成功.
E_DRVGPIO_ARGUMENT  参数错误.

20:51:43
这个看情况而定,若你要检测是否完成预定

20:51:48
可以加以判断

20:52:16
若不需要则可没有返回到的参数

20:52:30
这是中文的驱动参考

20:52:41
接下来请打开英文的驱动参考

20:52:47
同样是这个函数

20:52:52
多了些东西

20:53:45
可以看到

20:53:42



20:54:11
多了很重要的5.3.  Type Definition

20:54:41
这是对于应用到的参数的定义说明

20:54:47
中文手册中式没有的

20:55:16
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-29830.png

20:55:26
同样是SET函数

20:55:35
注意英文手册多了什么?

20:55:40
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-23692.png

20:55:49
如果你很懒

20:55:59
可以直接复制这些例子

20:56:10
黏贴到你的程序中再改

20:56:27

/* Configure GPA-0 as GPIO output mode*/
DrvGPIO_Open (E_GPA, 0, E_IO_OUTPUT);  
/* Set GPA-0 to 1(high) */
DrvGPIO_SetBit (E_GPA, 0);  


20:56:34
就像我上面那样

20:56:44
这就是BSP

20:56:57
他让我们不需要看懂寄存器

20:57:06
仅仅需要他的手册和例子

20:57:17
就可以去使用新唐大部分的功能

20:57:42
这种开发方式与以前死板的去各个击破每个环节有着天壤之别

20:57:55
到现在有没有问题


20:58:00
---------------------------------------------------------提问部分------------------------------------------------
简单总结一下主要这几个问题:以下的对话中可以找到答案。

1. 中英版本中文、英文函数操作,端口名字不一样?
2. 想问下,一个GPIO位要多长时间才能置1
3. GPIO OPEN函数有Bug
4. GPIO中  常用的 几个函数?
5. 第四个问题:想问下,一个GPIO位要多长时间才能置1

-nu20110220(109812091)  20:58:26
晕死,中文的手册怎么没有例子呢
nu20110220(109812091)  20:58:40
还是看英文的,好在英文也可以
笨孩子(570298585)  20:58:46
中文的手册有新版的吧
能发(38158183)  20:58:46
中文、英文函数操作,端口名字不一样
知秋(1359482228)  20:58:57
哪里不一样
能发(38158183)  20:59:00
中文的是不是不对啊
能发(38158183)  20:59:10
GPA    E_GPA

关于GPIO的那么多库函数 常用到的也就四五个吧?
xiaoqiu111(554672917)  20:59:21
中文的也有例子   
jutyy(360600219)  20:59:30
想问下,一个GPIO位要多长时间才能置1
能发(38158183)  20:59:32
而且现在这个函数需要三个参数了吧

20:59:43
哈哈
笨孩子(570298585)  20:59:42
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-1769.png

I2S_CON_T
jutyy(360600219)  20:59:54
0变为1

20:59:55
我的版本可能老了
君子竹(350747003)  21:00:02
__T是啥意思?
nu20110220(109812091)  21:00:04
51实际上也可以这样啊!
雁塔菜农<hotwc3@qq.com>  21:00:16
上课最好少提问,下课再提

21:00:28
不用我缓缓。。。


21:00:33
我手指抽筋了的。。。
focus012(99046948)  21:00:36
GPIO OPEN函数有Bug



21:01:01
一个个来啊

俺要花了
雁塔菜农<hotwc3@qq.com>  21:01:15
眼花了

21:01:19
说中文手册中有例子的

21:01:23
请截图

21:01:27
并告知版本
柳江蔗农(418430863)  21:01:30
库开发很快上手,我一般是看看.H头文件的相关函数,一般由函数名看出函数功能,然后查找参数类型定义(结构体,共同体,枚举)


21:02:12
说有的给我站出来截图!
笨孩子(570298585)  21:02:33
晕 谁说有了??
nu20110220(109812091)  21:02:29
那位找到新的了?英文和中文的?告诉地址
笨孩子(570298585)  21:02:50
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-6966.png

21:02:55
若是愚人节玩笑请声明,否则直接咔嚓
笨孩子(570298585)  21:02:59
找到了啊

21:03:09
没人么?

21:03:21
这个问题看来只能跳过
xiaoqiu111(554672917)  21:03:39
用手机上的 ,驱动函数有事例   


DrvGPIO_Open   DrvGPIO_Close   DrvGPIO_SetBit    DrvGPIO_ClrBit  DrvGPIO_SetPortBits

GPIO中  常用的 除了这几个 还有?

21:03:46
好吧

21:03:54
到时候笔记上截图

file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-13333.png

21:03:58
等下

21:04:26
稍后会送上菜农香吻一个

file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-30806.png


21:04:45
第二个问题

DrvGPIO_Open   DrvGPIO_Close   DrvGPIO_SetBit    DrvGPIO_ClrBit  DrvGPIO_SetPortBits

GPIO中  常用的 除了这几个 还有哪几个常用?

21:05:02
E_GPA


21:05:15
可能是我版本不一样的关系吧


开中断。

21:05:19
有些出入


确实,现在不能直接用GPA

21:05:57


21:05:59
第三个问题

21:06:19
常用到的也就四五个吧

21:06:21
是啊
  DrvGPIO_EnableEINT0  9G说的是这个吧

21:06:25
就四五个

21:06:34
具体看你常用哪四五个
君子竹(350747003)  21:06:37
讲讲NUC1xx.h

21:06:46
可能和别人的四五个不一样

21:06:53
file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-3690.png

21:07:28
第四个问题:想问下,一个GPIO位要多长时间才能置1


这个要看电气特性手册

21:08:00
第五个问题GPIO OPEN函数有Bug

21:08:21
这玩意我不知道,请在课下联系file:///C:/Users/KIN_E4~1/AppData/Local/Temp/ksohtml/wps_clip_image-13653.png

110401群课记录 神农cube主讲01.rar

257.66 KB

相关下载

相关帖子

沙发
U灬U|  楼主 | 2011-4-1 21:59 | 只看该作者
晕 图全挂了 字体的颜色也没有了

使用特权

评论回复
板凳
plc_avr| | 2011-4-3 10:35 | 只看该作者
没空听课,得好好看看。

使用特权

评论回复
地板
mcs8098| | 2011-12-20 13:42 | 只看该作者
:lol

使用特权

评论回复
5
feng10713| | 2011-12-24 11:45 | 只看该作者
非常好,感谢

使用特权

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

本版积分规则

个人签名:守得住,慢慢来```

1

主题

95

帖子

1

粉丝