打印

关于TM4C库函数操作IO输出高低电平函数GPIOPinWrite()的使用注意

[复制链接]
6518|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xyz549040622|  楼主 | 2015-5-23 08:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xyz549040622 于 2015-5-23 08:03 编辑

一直以来认为,TI的库函数和别的厂商的一样,应该是第一个参数为所属引脚为哪个区域(A,B,C,D,E,F),第二个参数为所属区域的第几个引脚(GPIO_PIN_0-7),第三个参数为所需要得到的电平值(0或1),可是TI的操作是不一样的,比如操作开发板上的LED亮,LED的电路图如下
如上图所示,当给PF1,PF2,PF3高电平时,对应的颜色亮,给低电平时,对应的颜色是灭的。
该函数的原型如下
void
GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val)
{
    //
    // Check the arguments.
    //
    ASSERT(_GPIOBaseValid(ui32Port));

    //
    // Write the pins.
    //
    HWREG(ui32Port + (GPIO_O_DATA + (ui8Pins << 2))) = ui8Val;
}

那么按照我们以前芯片一般的操作,应该是这个样子的
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 1);//点亮LED
可是,在TM4C中不是这个样子的,这样子是不会点亮LED的,应该是这个样子
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1);
注意:第三个参数和第二个参数相同的时候,才会把该IO输出高电平。
输出低电平的话,直接写0就可以了,应该是下面这个样子
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);


相关帖子

沙发
dirtwillfly| | 2015-5-23 15:41 | 只看该作者
ti的工程师和st的工程师思路不一样的

使用特权

评论回复
板凳
xyz549040622|  楼主 | 2015-5-23 19:18 | 只看该作者
dirtwillfly 发表于 2015-5-23 15:41
ti的工程师和st的工程师思路不一样的

谢谢灰板的裤子

使用特权

评论回复
地板
玛尼玛尼哄| | 2015-5-23 20:29 | 只看该作者
我们以前芯片一般的操作,应该是这个样子的
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 1);//点亮LED
复制代码
可是,在TM4C中不是这个样子的,这样子是不会点亮LED的,应该是这个样子
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1);
复制代码
注意:第三个参数和第二个参数相同的时候,才会把该IO输出高电平。
输出低电平的话,直接写0就可以了,应该是下面这个样子
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);
复制代码

我想问为何是三个参数呢,这个最后一个理解,上面那个改成1不行吗

使用特权

评论回复
5
xyz549040622|  楼主 | 2015-5-24 00:01 | 只看该作者
玛尼玛尼哄 发表于 2015-5-23 20:29
我们以前芯片一般的操作,应该是这个样子的
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 1);//点亮LED
复制 ...

为什么是三个参数,这是有TI的库函数决定的,改成1,LED是灭的,你看看库函数的操作就知道了。

使用特权

评论回复
6
bobde163| | 2015-5-24 21:44 | 只看该作者
能把它的固给改改吗

使用特权

评论回复
7
xyz549040622|  楼主 | 2015-5-24 21:49 | 只看该作者
bobde163 发表于 2015-5-24 21:44
能把它的固给改改吗

可以的

使用特权

评论回复
8
gaoyang9992006| | 2015-5-25 09:28 | 只看该作者
每家都有各自的特点,这些特点有的还申请了专利,禁止模仿。

使用特权

评论回复
9
dirtwillfly| | 2015-5-25 10:56 | 只看该作者
gaoyang9992006 发表于 2015-5-25 09:28
每家都有各自的特点,这些特点有的还申请了专利,禁止模仿。

:lol是啊,所以没家的库都有差别

使用特权

评论回复
10
598330983| | 2015-5-25 19:30 | 只看该作者
第三个参数和第二个参数相同的时候,才会把该IO输出高电平

使用特权

评论回复
11
玛尼玛尼哄| | 2015-5-25 20:02 | 只看该作者
这个函数要研究好原型就好办了。

使用特权

评论回复
12
643757107| | 2015-5-25 21:12 | 只看该作者
库函数也是人写的,肯定有不恰当的地方,所以遇到问题,不要惊喜。

使用特权

评论回复
13
yiyigirl2014| | 2015-5-27 21:12 | 只看该作者
Check the arguments.
这个我都看不懂什么意思。

使用特权

评论回复
14
dirtwillfly| | 2015-5-28 20:45 | 只看该作者
yiyigirl2014 发表于 2015-5-27 21:12
Check the arguments.
这个我都看不懂什么意思。

检查参数

使用特权

评论回复
15
玛尼玛尼哄| | 2015-5-30 10:19 | 只看该作者
不知道库函数里面怎么定义的这个啊。

使用特权

评论回复
16
天灵灵地灵灵| | 2015-5-30 10:41 | 只看该作者
每家都有各自的特点,这些特点有的还申请了专利,禁止模仿。

使用特权

评论回复
17
yiyigirl2014| | 2015-5-30 11:09 | 只看该作者
有时候管脚排列没有规则,不知道是什么意思,这样不好整体操作啊。

使用特权

评论回复
18
玛尼玛尼哄| | 2015-5-31 07:50 | 只看该作者
第一个参数为所属引脚为哪个区域(A,B,C,D,E,F),第二个参数为所属区域的第几个引脚(GPIO_PIN_0-7),第三个参数为所需要得到的电平值(0或1)

使用特权

评论回复
19
_sam| | 2015-6-23 22:47 | 只看该作者
学习了,用时再验证一下

使用特权

评论回复
20
1223657347| | 2015-6-24 10:24 | 只看该作者
学习了。不过没怎么用过库里io操作的函数,自己是实现写好所有io位绑定的头文件,库里也是用的位绑定操作哈哈哈

使用特权

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

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2782

主题

19267

帖子

104

粉丝