一、tm4的环境
本人使用的是ccs系统,安装教程网上很多,这里不一一赘述。ccs内部的集成允许tm4单片机编译下载调试仅靠数据线就可以完成,而不用独立的jlink,也算是其进步之处吧。
二、系统时钟的设定

SysCtlClockSet(SYSCTL_SYSDIV_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);

原型为:
void SysCtlClockSet(uint32_t ui32Config);
第一个参数:分频系数,系统再pll分频后会变为400mhz,接着有个降频为200mhz,这里的分频就是对200mhz的分频。像笔者这里配置的就是40mhz。
第二个参数:系统时钟源采用pll分频,或选择osc(主振荡器)
第三个参数:时钟源选择,这里是主振荡器作为osc
第四个参数:外部晶振,如果是tm4c123gxl的话,一般都是16mhz

这行代码便可以配置tm4的系统时钟,一般放在main函数的开头,是所有代码必须的一部分。这里与32的代码略有区别,正点原子家的代码中都没有使能系统时钟,而是默认的72mhz。
但笔者学业不精,并没有完全搞懂这一行代码,现在也只是一个会用但不能准确配置的状态。一般需要配置的,也就是第一个参数。tm4一般用的是40mhz到80mhz。所以分频系数一般是5和2_5;有关40mhz和80mhz,区别之一是80mhz的运算速度比40mhz快;但80mhz的延时函数会不准确,需要用到rom,这我们之后介绍。

三、功能时钟
在一般的单片机中,高端的单片机都会有许多功能,而如果你一打开单片机,所有功能就都打开,这样对于单片机的资源来说是一种浪费,因此采取默认关闭所有的功能外设,当单片机要用到某个功能时才打开对于外设。
对于打开外设,有代码:
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOF))
;

这里的参数是相应的外设时钟,笔者这里写的是io口的时钟;
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOF))
;

一句则是为了保证相应的外设时钟完全打开。

四、delay函数
delay函数,可是单片机的一大特色,但笔者这里做出警告,能不用delay的尽量不用delay,因为delay函数会导致在那一段时间内你的单片机处于一种暂停状态,这样会浪费资源,而且对单片机内部的运算(比如要时刻进行的pid)产生影响。
但delay函数是真的好用啊(真香~~~~)
函数:
SysCtlDelay(500(SysCtlClockGet()/3000));*
这便是delay函数的应用,原型为:
void SysCtlDelay(uint32_t ui32Count);
里面的参数,看起来是不是不得劲,但这就是tm4的代码逻辑,笔者来用自己的愚见解释一番;
这里的SysCtlClockGet()函数为获得当前的系统时钟,然后SysCtlClockGet()/3000就是1ms的时间(笔者没理解这一段,只是记住,关于其他时间自推),然后500*(SysCtlClockGet()/3000)就是延时500ms。****

注意:这是在系统时钟低于40mhz的情况下配置的,如果想要用到40mhz以上频率的延时,要进行配置
1.头文件包含
#include “driverlib/rom.h”
#include “driverlib/pin_map.h”
#include “driverlib/rom_map.h”
2.右击项目命,选properties,选择bulid,在arm compiler中的predefined symbols中,添加TARGET_IS_TM4C123_RB1的预定义

这样便可以使用ROM_SysCtlDelay(250*(SysCtlClockGet()/3000));的延时函数

注意:
delay函数不能delay到0,笔者这样尝试过,现象是单片机的程序会卡在这一步(伤心的回忆)

tm4c123gxl库函数调包侠养成(一)——————基本系统时钟与delay函数相关推荐

  1. tm4c123gxl库函数调包侠养成(四)——————串口发送的基本配置

    电赛将至,笔者也是终于想起自己还有个CSDN账号,前来更新一下帖子,顺便复习一下单片机知识. 一.串口概述 串口是单片机不可缺少的功能之一,通过串口单片机可以与电脑或是另一块单片机进行通信,在电赛中, ...

  2. tm4c123gxl库函数调包侠养成(三)——————外部中断与按键

    一.中断概述 如果指针是c语言的灵魂,那么中断就是单片机的灵魂. ----所谓中断,相信凡是接触过单片机的人都有印象吧,笔者将其理解为"打断",即放弃当前中断点的事,跳去干另一件事 ...

  3. 调包侠福音!机器学习经典算法开源教程(附参数详解及代码实现)

    Datawhale 作者:赵楠.杨开漠.谢文昕.张雨 寄语:本文针对5大机器学习经典算法,梳理了其模型.策略和求解等方面的内容,同时给出了其对应sklearn的参数详解和代码实现,帮助学习者入门和巩固 ...

  4. 深度学习时代,调包侠没有未来,但是这个“包”有

    来源:AI科技评论 本文长度为2300字,建议阅读5分钟 本文为大家介绍了NumPy的现状. 工欲善其事必先利其器~ 今日我"代码之神"把装备拉满,势必要大干一场! 在编程中只会H ...

  5. 前几行 python_调包侠神器2.0发布,Python机器学习模型搭建只需要几行代码

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI Python开源机器学习建模库PyCaret,刚刚发布了2.0版本. 这款堪称「调包侠神器」的模型训练工具包,几行代码就能搞定模型编写.改进 ...

  6. python调包师_为“Python调包侠” 画像

    很多从事IT行业的朋友:包括运维.测试.数据分析.网络安全,在北上广每月工资1.5万/月以上,有的甚至到达2万/月,碰到职业瓶颈了,工资碰到天花板.有的朋友认为自己会Python编程,其实还是处在&q ...

  7. 作为一名数据分析+人工智能调包侠,我天天在公司瞎捣鼓什么?

    相信很多人学python可能最终目的是冲着从事人工智能而来,这里不得不说,真正的人工智能门槛高,而且对学历.数学功底.编程能力等等都是有很高的要求,下面是我截图拉勾上海地区人工智能首页招聘信息,图中可 ...

  8. python调包侠_拒绝调包侠,不需要高级算法和数据结构技巧

    大多数工科学生或者刚刚入门近年来比较火的"人工智能"相关算法的同学,在选择语言的时候,都会选择MATLAB. Python .R等等这些高级语言,对自己所学的算法进行实现和调试.这 ...

  9. python调包侠_sklearn调包侠之决策树算法

    决策树原理 改进算法 但使用信息增益作为特征选择指标(ID3算法)容易造成过拟合.举一个简单例子,每个类别如果都有一个唯一ID,通过ID这个特征就可以简单分类,但这并不是有效的.为了解决这个问题,有了 ...

最新文章

  1. linux内核 header.s,Linux启动代码header.S研究
  2. 云炬随笔20211126(2)
  3. [评论]为什么中国的程序员技术偏低
  4. 35.6. /etc/dnsmasq.d/dnsmasq.address.conf
  5. python学习 数据类型之序列
  6. 百面机器学习——svm基尼系数寻找最优划分
  7. sap系统搭建教程_SAP系统和微信集成的系列教程之一:微信开发环境的搭建
  8. ERP系统和ERP软件的介绍
  9. MacOS工程替换MainMenu.xib
  10. 18个免费替代Photoshop的图像编辑软件
  11. 准备考试?python也能帮你划重点,上考场(误)
  12. 【adb】cmd命令行输入adb时始终提示adb为非内部命令
  13. win10查看计算机管理员,win10系统下怎么获取administrator管理员权限
  14. QT——Qt QtCreator 官方下载地址
  15. orcal复习及作业
  16. python 线程退出方法
  17. 6.1. Inserting Data
  18. centos6 安装完epel 解决yum的问题
  19. Microsoft Security Essentials Beta 出自微软的单机版缉毒尖兵
  20. docker 阿里云使用记录

热门文章

  1. 凤凰网股票数据定向爬虫——改编自北京理工大学嵩天老师的课程实例
  2. psp模拟器linux,PSP模拟器PPSSPP 1.7 发布,兼容性和错误修正
  3. 维吉尼亚算法python编程实现
  4. 推荐 :大数据下的用户与价值分析
  5. 【python】(四)python常用数据结构
  6. 解读 | 计算机视觉已超越人类眼睛?
  7. IC基础——FIFO
  8. 阿里云网盘内测地址,阿里云网盘申请内测资格链接
  9. c语言使用循环下落方块,C语言 俄罗斯方块的实现1 全局变量
  10. HCL实验:用VRRP实现路由备份及负载分担