使用 Keil 环境来写 EK TM4C123G 代码

news2024/11/15 13:55:41

EK TM4C123G

处理器介绍

就这么一个红板子,上边有两个处理器芯片:
靠上边的芯片,用作仿真/调试器,可以先忽略; 我们重点关注的芯片,位于板子下侧中间。

从丝印上,可以看出芯片的型号为: TM4C123GH6PM。

该芯片的基本特性如下:

  • 32位 ARM Cortex™-M4处理器内核,主频 80MHz

  • (需要更高主频可以选择129系列)

  • 处理器功能丰富

  • ——带 System Timer (SysTick),

  • ——集成嵌套中断控制器(NVIC),

  • ——内存保护单元Memory Protection Unit (MPU)

  • ——浮点运算单元(FPU)

  • ——等等;

  • 256 KB flash, 32 KB SRAM;

  • 内部的ROM带有TivaWare™函数库; (可以节省flash空间,函数可以直接调用)

  • 2KB EEPROM

  • 接口功能也很丰富:

  • ——2个CAN模块, using CAN protocol version 2.0 part A/B and with bit rates up to 1 Mbps

  • ——USB控制器,支持USB 2.0全速(12 Mbps),低速 (1.5 Mbps), 32 endpoints, 可用作USB OTG/Host/Device;

  • ——8个UARTs,支持IrDA; 9-bit, and ISO 7816 support (其中1个带全功能);

  • ——4个同步串行接口(SSI) ,可理解为SPI

  • ——**4个IIC接口,**支持100 Kbps和400 Kbps,可做主机或从机

  • 32通道可配置的μDMA控制器

  • 模拟外设有:

  • ——2个12位的ADC转换模块,扩展为12通道输入,采样率 one million samples/second;

  • ——2个模拟比较器;

  • ——16路数字比较器;

  • ——片上带有稳压器

  • 先进的电机控制:

  • ——8个PWM发生器(16路输出), 每个均带有16位的计数器,2路PWM比较器,1个PWM信号发生器,1个死区控制,1个中断源选择;

  • ——2个PWM故障输入用于快速下电;

  • ——2个正交编码器接口(QEI)

  • 2个看门狗定时器;

  • 6个32位的通用定时器(可用作12个16位);

  • 6个64位的通用定时器(可用作12个32位)

  • 12个16/32位 和 12个32/64位捕获比较PWM (CCP) 引脚

  • 多大 43 GPIOs (跟配置有关。需要更多引脚 话,可以选用其它封装)

  • 低功耗休眠系统,带实时钟。

  • 时钟系统灵活配置,支持多种时钟源。(有时候,对于一般用户来说,太灵活,反而显得难度大)

  • ——精密振荡器 (PIOSC), 主振荡器(MOSC), 用于休眠模块的32.768-kHz外部晶振,内部的30-kHz振荡器

  • 支持JTAG和 Serial Wire interfaces

  • 工业环境(-40°C to 85°C), 封装为64-pin LQFP

手册资料可以从这个页面下载:
http://www.ti.com.cn/product/cn/tm4c123gh6pm

板卡样式

EK-TM4C123GXL Tiva™ C 系列 TM4C123G LaunchPad 评估套件 angled board image

EK-TM4C123GXL Tiva™ C 系列 TM4C123G LaunchPad 评估套件 top board image

Keil MDK 配置 EK TM4C123G 环境

下载驱动库

链接:https://pan.baidu.com/s/1YjohwDnWd_IFTwORnTm3gg
提取码:u4i4

下载 ICDI 驱动

ICDI 驱动下载 请点击这里

下载icdi驱动

先插上板卡,打开设备管理器,会发现有几个未识别的新设备,点击右键更新驱动程序,根据文件解压的位置来跟新驱动(路径下不要有中文)。

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

更新后即可识别。

更新后

下载 Keil 的 ICDI Debug 烧录

Keil 的 ICDI Debug 烧录 点击这里

Keil 的 Debug ICDI 烧录

下载好后,如图所示。

在这里插入图片描述

点击安装,安装路径需要和 keil 的安装路径一致。

Debug包下载路径

在 Keil 中出现 ICDI 烧录则安装成功:

安装成功

下载 TM4C 的 Keil 包

TM4C 的 Keil 包 下载地址点击此处

下载包下载方式

下载完后长这样,直接安装即可。

keil 包 样子

安装后在Keil中出现这个则成功:

出现成功

工程创建

创建

打开 Keil 创建工程:

创建工程

创建工程2

选择你的芯片型号:

选择芯片

库包配置

复制这两个文件夹:

复制库包文件

创建工程3

创建工程4

添加后的组文件如下:

组文件

勾选运行环境包

勾上这两个。

引入包

编译环境与输出文件配置

打开魔法棒

魔法棒设置1
魔法棒设置2

全局宏设置与工程路径设置

魔法棒设置3

添加宏:

rvmdk,PART_TM4C123GH6PM

添加路径,直接选择工程文件夹路径即可:

添加路径

Debug 设置

选择ICDI烧录,并配置参数。

选择ICDI烧录

配置ICDI

验证

创建 main.c 文件,书写如下代码:

#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_gpio.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "inc/hw_memmap.h"
#include "driverlib/sysctl.h"

int main(void)
{
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1);
    while(1)
    {
			GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1);
			SysCtlDelay(1000000);
			GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, ~GPIO_PIN_1);
			SysCtlDelay(1000000);
    }
}

创建main.c 书写如下代码

编译烧录

相关文档

文档查看下载 请点击这里

相关文档1

更全的数据手册:

TM4C123GH6PM 数据表、产品信息和支持 | 德州仪器 TI.com.cn

参考

1、用Keil5开发TM4C123G单片机的软件准备_tm4c123g烧录_杜毅豪的博客-CSDN博客

2、用Keil新建TM4C123G工程步骤_杜毅豪的博客-CSDN博客

keil5.29及以上版本安装tm4c123GXL的下载器:Stellaris ICDI 的办法_stellaris icdi的驱动程序_hhhhhhqqqqqqq的博客-CSDN博客

电赛 TI 处理器平台培训集锦 - 灌水闲聊 - 全国大学生电子设计竞赛培训网 (nuedc-training.com.cn)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/710480.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件UI工程师的职责模板

软件UI工程师的职责模板1 职责&#xff1a; 1.负责产品的UI视觉设计(手机软件界面 网站界面 图标设计产品广告及 企业文化的创意设计等); 2.负责公司各种客户端软件客户端的UI界面及相关图标制作; 3.设定产品界面的整体视觉风格; 4.为开发工程师创建详细的界面说明文档&…

网联V2X跟踪式微波雷达使用说明书

1 设备简介 网联 V2X跟踪式微波雷达跟踪式微波雷达传感器&#xff0c; 主要应用于高速公路、城市道普通公路等场景&#xff0c; 通过发射 FMCW调频连续波信号调频连续波信号 &#xff0c;接收路面目标物的回波信号获取目标物的距离、速度和角信息。 传感器通过 以太网或者光纤 …

Linux MQTT环境搭建详细步骤

关于MQTT的安装之前写过一次&#xff0c;但是不够详细&#xff0c;这里重新补充一下&#xff0c;以后用到的时候更方便。 1. 安装MQTT服务器 上网搜索apache activemq&#xff0c;找到它的官网https://activemq.apache.org/。 下载Linux版本。写文档时版本为ActiveMQ 5.18.1 …

改进的白鲸优化算法

改进的白鲸优化算法 一、算法灵感二、算法介绍2.1 初始化2.2 探索阶段2.3 开发阶段2.4 鲸落阶段 三、改进的白鲸优化算法3.1 集体行动策略3.2 小孔成像策略3.3 二次插值策略3.4 IBWO伪代码 一、算法灵感 白鲸优化算法(Beluga whale optimization, BWO)是2022年提出的一种元启发…

面试必备之安卓APP测试知识大全(值得收藏)

目录 一、安卓系统知识概述 1.1 安卓系统架构 1.2 安卓权限系统 1.3 认识adb与安卓间的通信 二、安卓APP测试流程图&#xff08;转&#xff09; 三、安卓App测试点 3.1 UI测试 3.2 兼容性测试 3.3 安装卸载/本地升级测试OTA 3.4 版本在线升级测试FOTA 3.5 交互测试 …

记录--让整个网站界面无滚动条

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 界面无滚动条 滚动条的优化也有很多种&#xff0c;比如随便再网上搜索美化浏览器滚动条样式&#xff0c;就会出现些用css去美化滚动条的方案。 那种更好呢&#xff1f; 没有更好只有更合适 像默认的滚…

【网络安全入门】001、基础入门-概念名词

文章目录 基础入门-概念名词1、域名&#xff08;1&#xff09;什么是域名&#xff08;2&#xff09;域名在哪里注册&#xff08;3&#xff09;什么是二级域名多级域名&#xff08;4&#xff09;域名发现对于安全测试的意义&#xff1f; 2、DNS&#xff08;1&#xff09;什么是D…

C语言编程:坐标系的平移和旋转

本文总结博主在工作中遇到的坐标系转换相关问题&#xff0c;以及C语言编程实现。 文章目录 1 问题场景2 公式推导2.1 旋转坐标系推导2.2 平移坐标系推导2.3 完整公式 3 C语言编程 1 问题场景 对于ADAS算法开发&#xff0c;在工作中遇到过很多需要坐标系转换的场景。例如&…

进制转换(十进制与十六进制互转)

之前的一家公司基本上都是基于单片机进行开发&#xff0c;一般与上位机的通信都是按照自定义的协议进行操作&#xff0c;测试的时候会经常都对协议进行修改并且涉及到进制之间的转换&#xff0c;例如获取版本是十六进制的需要转换成十进制的版本信息&#xff0c;例如修改时间需…

013-从零搭建微服务-认证中心(五)

写在最前 如果这个项目让你有所收获&#xff0c;记得 Star 关注哦&#xff0c;这对我是非常不错的鼓励与支持。 源码地址&#xff08;后端&#xff09;&#xff1a;https://gitee.com/csps/mingyue 源码地址&#xff08;前端&#xff09;&#xff1a;https://gitee.com/csps…

LoRa模块(SX1278)详解

LoRa模块&#xff08;SX1278&#xff09; 0. LoRa概述概念LoRa技术的主要特点LoRa技术的工作原理 1. 常见的LoRa模块2. Semtech SX12783. STM32使用SX1278方法示例代码 0. LoRa概述 概念 LoRa&#xff08;Long Range&#xff09;是一种长距离、低功耗的无线通信技术&#xff…

被劫持的礼物

根据题目其实也猜得到这道题的大致考察内容 下载好后得到一个wireshark的流量文件 根据提示&#xff0c;flag是账号和密码组合的MD5值&#xff0c;想到登录&#xff0c;其实就想到两个登录框 也就是POST请求方法 打开文件后会也会得到一些 http的包&#xff0c;过滤一下 查看到…

线性DP—入门篇

线性动态规划的主要特点是状态转移的推导是按照问题规模 从小到大依次推导&#xff0c;较大规模的问题的解依赖较小规模的问题的解。 数字三角形&#xff1a; [USACO1.5][IOI1994]数字三角形 Number Triangles - 洛谷https://www.luogu.com.cn/problem/P1216我们来看一道经典…

ModaHub魔搭社区:向量数据库Milvus产品问题(三)

目录 Milvus 的数据落盘逻辑是怎样的&#xff1f; Mishards 推荐的配置是什么&#xff1f; Mishards 支持 RESTful API 吗&#xff1f; 什么是归一化&#xff1f;Milvus 中为什么有时候需要归一化&#xff1f; 为什么欧氏距离和内积在计算向量相似度时的结果不一致&#x…

【Git原理与使用】-- 分支管理

目录 理解分支 创建分支 查看当前分支 创建本地分支 切换分支 合并分支 删除分支 合并冲突 分支管理策略 分支策略 bug 分支 不建议的合并方式 建议的合并方式 第一步 第二步 删除临时分支 理解分支 分支就是科幻电影里面的平行宇宙&#xff0c;当你正在电脑前…

java 全局、局部异常处理详解及result结果封装

1、引入spring-boot-starter-web依赖和new-swagger依赖 <dependency><groupId>com.jjw</groupId><artifactId>new-swagger</artifactId><version>1.0-SNAPSHOT</version> </dependency> <dependency><groupId>or…

Linux系统编程:进程的替换

目录 一. 进程替换的原理 二. 进程替换的方法 2.1 进程替换的相关函数 2.2 进程替换为其它的C/C程序或其它语言编写的程序 三. 自主实现简单地命令行解释器 四. 总结 一. 进程替换的原理 进程替换&#xff0c;就是对进程所执行的代码进行替换&#xff0c;让正在运行的一个…

华为OD机试真题 Python 实现【简单的自动曝光】【2023Q1 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、备注五、解题思路六、Python算法源码七、效果展示1、输入2、输出3、说明4、再输入5、输出6、说明 一、题目描述 一个图像有 n 个像素点&#xff0c;存储在一个长度为 n 的数组 img 里&#xff0c;每个像素点的取值范围[0,255]的…

HOT33-排序链表

leetcode原题链接&#xff1a;排序链表 题目描述 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4]示例 2&#xff1a; 输入&#xff1a;head [-1,5,3,4,0] 输出…

html内盒子长宽增加溢出但是外盒子不自动向下延

自动扩展 问题描述 外盒子设置固定px&#xff0c;导致内盒子如图片长宽增加后&#xff0c;溢出但是外盒子不自动扩展&#xff08;向下延申&#xff09; 图片高230时正常 设置250后超出 问题解决 /*height: 660px;*/ /*设死就不能自动扩展&#xff0c;内块块长宽超出&#x…