首页 > 其他分享 >TM4C123G学习记录(2)--GPIO

TM4C123G学习记录(2)--GPIO

时间:2022-11-22 10:37:09浏览次数:67  
标签:PIN 引脚 -- ui8Pins GPIO TM4C123G uint32 外设


  • 为了准备电赛临时学一下TM4C123G,简单记录学习内容
  • 大家可以在​​这里​​下载我收集的资源,非常全面,花了很大功夫收集来的,还有书籍、例程代码等
  • 还可以在TI官网下载相关文档​​TI官网​

一、实验简介

简单的GPIO点灯实验,控制板载LED翻转

二、硬件连接

查看电路图

TM4C123G学习记录(2)--GPIO_引脚


TM4C123G学习记录(2)--GPIO_TM4C_02


可见控制LED是一个三极管开关电路,单片机PF1/PF2/PF3连接到LED_R/LED_B/LED_G,GPIO输出高电平即可点亮二极管

三、相关库函数

(1)void SysCtlPeripheralEnable(uint32_t ui32Peripheral)
  • 功能:使能外设时钟
  • 参数:uint32_t ui32Peripheral 要使能的外设
  • 说明:从写外设使能操作完成到实际上的外设使能间有5个时钟周期的延迟,这期间内访问外设将导致一个总线错误。应注 意确保在这段时间内不访问该外设。
(2)void GPIOPinTypeGPIOOutput(uint32_t ui32Port, uint8_t ui8Pins)
  • 功能:引脚配置为输出模式
  • 参数:
  1. ui32Port GPIO口的基地址
  2. ui8Pins bit-packed格式表示的引脚
  • 说明:要使GPIO引脚做为GPIO输出,必须正确地配置引脚。本函数提供这些引脚的典型配置。引脚使用bit-packed 字节格式表示每一位表示一个要访问的引脚,位0表示引脚0,位1表示引脚1,以此类推。
  • 底层:
  1. void GPIOPadConfigSet(uint32_t ui32Port, uint8_t ui8Pins,uint32_t ui32Strength, uint32_t ui32PinType)设置输出类型和强度
  2. void GPIODirModeSet(ui32Port, ui8Pins, GPIO_DIR_MODE_OUT);设置方向(输入or输出)
(3)void GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val)
  • 功能:写值到指定引脚.
  • 参数:
  1. ui32Port GPIO口的基地制作.
  2. ui8Pins bit-packed 格式表示的引脚
  3. ui8Val 将要写入引脚的值.
  • 说明:写相应位的数值到ui8Pins参数指定的引脚,写数值时不影响配置为输入的引脚状态。引脚用 bit-packed 字节格式表示, 每一个位代表一个引脚,位0表示GPIO口的引脚0,位1表示GPIO口的引脚1,以此类推。
(4)不受频率影响的延时函数
  • SysCtlDelay(100*(SysCtlClockGet()/3000));
  • 见我上一篇文章​​TM4C123G学习记录(1)–时钟​​

四、示例代码

#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_types.h" //通用类型和宏
#include "inc/hw_memmap.h" //外设和存储器的基地址
#include "driverlib/sysctl.h" //API函数中外设、状态等的标志
#include "driverlib/gpio.h"

int main(void)
{
uint8_t ui8LED = 2; //2 = 0010
//系统时钟分频器系数|选择外部晶振频率|使用PLL锁相环作为系统时钟源
SysCtlClockSet(SYSCTL_SYSDIV_6|SYSCTL_XTAL_16MHZ|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN);
//使能PF时钟
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
//配置引脚为GPIO输出,底层是GPIOPadConfigSet和GPIODirModeSet
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);

while(1)
{
// Turn on the LED :PF1(R),PF2(B),PF3(G)
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, ui8LED);

// Delay for a bit
SysCtlDelay(100*(SysCtlClockGet()/3000));

// Cycle through Red, Green and Blue LEDs
//写入2->4->8(0010->0100->1000)(R->B->G)
if (ui8LED == 8)
ui8LED = 2;
else
ui8LED = ui8LED*2;
}
}


标签:PIN,引脚,--,ui8Pins,GPIO,TM4C123G,uint32,外设
From: https://blog.51cto.com/u_15887260/5876703

相关文章

  • 概率论 —— 大数定律与中心极限定理
    文章目录​​一、依概率收敛​​​​二、大数定律​​​​1.切比雪夫大数定律​​​​2.伯努利大数定律​​​​3.辛钦大数定律​​​​三、中心极限定理​​一、依概率......
  • 概率论 —— 随机变量的数字特征
    文章目录​​一、一维随机变量的数字特征​​​​1.数学期望​​​​(1)概念定义​​​​(2)说明​​​​(3)性质​​​​2.方差、标准差​​​​(1)概念​​​​(2)性质​​​​3.......
  • OpenGL(3) ->窗口,视口,裁剪区,视景体
    文章目录​​一、先看几个定义​​​​二、两个问题​​​​上次的绘图程序​​​​1、问题1​​​​2、问题2​​​​三、定义视口和裁剪可视区​​​​1、定义视口​​​......
  • C/C++中拆分long/float/double等数据并重新组合的方法
    在嵌入式编程时,常常会遇到需要做数据通信的场景。单片机往往只支持一次8位的数据传递,为了传输较长的数据类型,只能先在主机将数据拆分,再在从机重新组合,这里介绍一些实用的数......
  • OpenGL(2) ->第一个程序
    文章目录​​一、先看几个定义​​​​二、第一个程序​​​​1、代码​​​​2、简单解析​​​​1、main函数​​​​(1)intmain(intargc,char*argv[])​​​​(2)voidgl......
  • 单元测试中常见错误
    单元测试中常见错误单元的常见错误一般出现在5个方面:代码的稳定、易读、规范、易维护、专业。因此,单元测试的关注的重点有5点:单元接口、局部数据结构、边界条件......
  • 热门两款看板式轻量级可视化项目管理软件推荐
    ​管理项目本来就是一个非常耗时耗力的工作。使用一个合适的项目管理工具可以为我们省掉很多的繁杂,对项目负责人也有很大的帮助。我们也断断续续试过很多,最终还是觉得看......
  • 论文理解【IL - BC】—— End to End Learning for Self-Driving Cars
    文章目录​​1.系统概览​​​​2.数据收集&增广​​​​3.网络结构​​​​4.训练和测试框架​​​​5.实验​​​​6.总结​​前言:自动驾驶一直机器学习界的一个......
  • WordPress编辑器支持PowerPoint一键粘贴
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-......
  • 机器学习基础(4)—— 模型选择之评估方法
    参考:西瓜书第二章李航《统计学习方法(第二版)》第一章现实任务中,往往有多种学习方法可供选择,对于同一个方法,使用不同的参数配置,也可以产生不同的模型。选择哪个模型(算法)、......