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

2019-07-17 16:11发布

本帖最后由 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高电平时,对应的颜 {MOD}亮,给低电平时,对应的颜 {MOD}是灭的。该函数的原型如下
  1. void
  2. GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val)
  3. {
  4.     //
  5.     // Check the arguments.
  6.     //
  7.     ASSERT(_GPIOBaseValid(ui32Port));

  8.     //
  9.     // Write the pins.
  10.     //
  11.     HWREG(ui32Port + (GPIO_O_DATA + (ui8Pins << 2))) = ui8Val;
  12. }
复制代码
那么按照我们以前芯片一般的操作,应该是这个样子的
  1. GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 1);//点亮LED
复制代码可是,在TM4C中不是这个样子的,这样子是不会点亮LED的,应该是这个样子
  1. GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1);
复制代码注意:第三个参数和第二个参数相同的时候,才会把该IO输出高电平。输出低电平的话,直接写0就可以了,应该是下面这个样子
  1. GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);
复制代码

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
dirtwillfly
1楼-- · 2019-07-17 21:51
ti的工程师和st的工程师思路不一样的
xyz549040622
2楼-- · 2019-07-18 02:38
dirtwillfly 发表于 2015-5-23 15:41
ti的工程师和st的工程师思路不一样的

谢谢灰板的裤子
玛尼玛尼哄
3楼-- · 2019-07-18 03:32
 精彩回答 2  元偷偷看……
xyz549040622
4楼-- · 2019-07-18 04:26
玛尼玛尼哄 发表于 2015-5-23 20:29
我们以前芯片一般的操作,应该是这个样子的
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 1);//点亮LED
复制 ...

为什么是三个参数,这是有TI的库函数决定的,改成1,LED是灭的,你看看库函数的操作就知道了。
bobde163
5楼-- · 2019-07-18 05:47
能把它的固给改改吗
xyz549040622
6楼-- · 2019-07-18 10:13
 精彩回答 2  元偷偷看……

一周热门 更多>