Tiva C 系列微处理器使用注意事项

news/2024/11/20 1:23:30/

前记:
  在使用TM4C系列单片机时遇到了一些大大小小的问题,谨以此贴记进行记录,算是一个温故的过程,也希望对刚接触此系列单片机的盆友能有一些帮助。(我所使用的是TM4C123GH6MP单片机,其他的触类旁通即可)

文章目录

      • 1.引脚锁定(GPIOLOCK、GPIOCR)
          • 解锁过程:(PF0)
      • 2.PWM调试
          • 注意事项:
          • 周期,带宽配置:(以20ms周期为例,电机驱动)
      • 3.数据寄存器操作(与32不同)
      • 4.TM4C123G开发板引脚问题

1.引脚锁定(GPIOLOCK、GPIOCR)

  GPIO commit control 寄存器提供了防止对重要硬件外设的意外编程。即下表所示的引脚复位后是被锁定为特定功能的,如果想使用为普通GPIO或其他复用,需进行解锁。

在这里插入图片描述
GPIOLOCK

  • 写入 0x4C4F.434B 到 GPIOLOCK 寄存器可解锁 GPIOCR 寄存器
  • 写入其他数值或对 GPIOCR寄存器写操作将恢复其锁定状态,以防止更新此寄存器。
  • 读器 GPIOCR 寄存器值
    0x1: GPIOCR 寄存器处于锁定状态,不能被修改。
    0x0: GPIOCR 寄存器处于解锁状态,可以被修改。

GPIOCR

  • 0: 相应的 GPIOAFSEL、GPIOPUR、GPIOPDR 或GPIODEN 位不能写入。
  • 1:相应的 GPIOAFSEL、GPIOPUR、GPIOPDR 或 GPIODEN 位可以写入。
  • 注:除了 NMI 管脚和四个 JTAG/SWD 管脚之外,所有 GPIO 管脚的 GPIOCR寄存器的默认类型是 RO。GPIOCR寄存器当前仅保护这六个GPIO管脚。鉴于此,相应 GPIO 端口的寄存器类型为 R/W
解锁过程:(PF0)

HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= 0x01;

2.PWM调试

注意事项:

   TM4C123GXL包含两个PWM模块(PWM Model,PWM0和PWM1),每个PWM模块中又有四个PWM发生器模块(PWMGenerator0~3)和一个控制模块,每个PWM发生器模块能产生两个PWM输出,(但同一个PWM发生器产生的两个PWM输出的周期一样,不过可改变其占空比) 最终能产生16个PWM输出。
在这里插入图片描述

  • 不同的PWM对应不同的Generatior配置时需要注意
周期,带宽配置:(以20ms周期为例,电机驱动)

理解函数    第三个参数周期的设置
void PWMGenPeriodSet(uint32_t ui32Base, uint32_t ui32Gen, uint32_t ui32Period)
第三个参数的值对应其计数的最终值,即如果配置为(10-1),假设系统时钟为80MHz, 预分频配置为1,其周期就是1/(系统时钟/预分频值)*10 =1/(80m)*10=10us

  • 首先我系统的时钟配置为了80MHz
  • 在配置工作模式为 (我配置为PWM_GEN_MODE_UP_DOWN)
    PWM_GEN_MODE_UP_DOWN后,周期值最大只能为65536*2-1 = 131,071
    PWM_GEN_MODE_DOWN , 周期值最大只能为 65535
  • 假设时钟分频为1 想配置周期为20ms, ui32Period需配置为 80M/50hz = 1,600,000 (80M对应1s)
  • 所以需进行64分频 最后设置为25,000即可
	//配置 PWM1 Generator3 周期 freq配置单位为(ms)PWMGenPeriodSet(PWM1_BASE, PWM_GEN_0, 1250*freq - 1);//配置 PWM1 Generator3 占空比 width配置单位为(us) 方便调整电机占空比PWMPulseWidthSet(PWM1_BASE, PWM_OUT_0, 1.25*width - 1);

3.数据寄存器操作(与32不同)

在这里插入图片描述

4.TM4C123G开发板引脚问题

在这里插入图片描述
在这里插入图片描述
PD0与PB6 PD1与PB7是硬件连在一起了的 会互相影响!!!!!!!!!
若想断开 可将R9 R10电阻取掉


http://www.ppmy.cn/news/336570.html

相关文章

OPPOR9 调用接口短时间连续发送两条相同短信,只有一条有效

背景 今天在做短信相关的工作,发现,在这款手机上,调用Android原生的接口,发送短信不生效,确切的说是在极短的时间内连续发送两条一样的短信,只会有一条生效。 手机信息 型号:OPPO R9tm …

Spark Streaming从Kafka中拉取数据,并且使用过“窗口函数”统计一些流量信息

一、应用案例场景: 在Spark Streaming中,我们通常计算的是一段时间间隔内的数据。比如http://blog.csdn.net/tototuzuoquan/article/details/75094540这个案例中,统计单词出现次数时,每间隔5秒钟进行实时从Kafka中读取数据。但是当…

用TM320C55x汇编语言编写一个实现自相关的程序,并给出注释

TM320C55x汇编语言中,可以使用指令MACRO来实现自相关函数,MACRO可以将复杂的指令序列组合成一条指令,使自相关函数求解实现变得更加简单。比如,在TM320C55x汇编语言中,可以使用如下的指令序列来实现自相关函数&#xf…

想做个项目练练手却不知道做啥?松哥准备了 50 个热门需求文档给大家!

之前有好几位小伙伴向松哥反映,学完了微人事项目的技术点之后,想再做个项目练练手,但是却不知道该做啥!不了解业务就无从下手。 其实我理解大家的这种处境,因此,这个周末松哥花了两天时间,整理…

使用 NDK r9 编译ffmpeg

转自:http://wang-peng1.iteye.com/blog/2004897 1. 环境 ubuntu 我的是13.10 ndk r9d x86_64 2. 下载ffmpeg http://www.ffmpeg.org/download.html 找到 FFmpeg 2.1.3 "Fourier" 2.1.3 was released on 2014-01-15. It is the latest stable FFmpeg r…

java tm 和jdk_三大厂商JDK版本信息参考

目前主要的JDK有Oracle(原SUN)、HP、IBM,各厂商JDK版本信息参考如下,以便于安装部署时确认JDK类型和版本。 一、Oracle JDK java version "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) Client VM (build 20.1-b02, mixed mo…

lte tm模式_TD―LTE TM8传输模式分析

【摘 要】针对TD-LTE R9阶段新增加的TM8技术,从原理分析上给出了TM8的实现基本原理以及相较于TM3/TM7等传输模式的优缺点。结合实际测试情况,分析了TM8在现网中的性能,并对提高单用户吞吐量、提升小区吞吐量、抗小区间干扰等方面进行了详细的对比分析,同时给出了TM8的应用建…

9.17lamp

一。挂载镜像 转载于:https://www.cnblogs.com/chl1022/p/9666912.html