第三讲初来乍到.pptVIP

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三讲初来乍到详解

显示效果。 回顾一下,我们是怎么做到的? Main.c main()-LCD_TFT.c Lcd_TFT_Test()-TQ_LOGO.c TQ_LOGO_480272[] * 分析TQ_LOGO.c文件,删除多余代码。 先找同学上来烧录修改前的代码。 再找同学上来修改,然后烧录修改后的代码。 * 下节课随机选择同学上讲台演示自己修改的程序。 * 第二步 图片替换5 Bmp2h位图转换软件 第二步 图片替换6 第二步 图片替换7 第三步 去掉多余代码 删除TQ_LOGO.c文件中的多余代码。 作 业 参考本讲内容,自己修改出厂测试程序,在LCD上切换显示六张自己的照片,并提交编译好的bin文件,文件名为自己的学号+姓名的汉语拼音。 写下你所了解的嵌入式系统的程序编制。 * 1、本节针对没使用过ADS或者keil等其它编程工具进行过ARM或其它较为大型工程的编写的同学。主要为了解决新手刚入手时的燃眉之急。 2、对于有51或ARM编程基础的同学请自行参考论坛上的ADS资料和手册,以及ADS的英文help文件。 * 首先使用ADS打开出厂测试程序。 * 双击打开程序入口,main.c文件,在文件代码的38-49行,有如上代码。 提问:C语言中extern的作用是什么? Extern函数外部声明的作用是:在同一工程中的不同文件之间进行函数调用。 * 在语句extern void Lcd_TFT_Test(void)中的函数名字上面点击右键,选择Go to function definition of Lcd_TFT_Test。 * 马上就可以跳转到Lcd_TFT.c文件中的void Lcd_TFT_Test(void)函数处。 这样可以方便查看函数的定义或者进行其他操作。 这是ADS或keil编程中最常用和最好用的功能之一。 * 以LCD_TFT.c文件的头文件为例,点击右边的黑色三角箭头,就会列出该文件中包含的所有头文件,点击LCD_TFT.h这个头文件。 头文件的作用是什么?是怎么编译到程序中的? 这里的include 称为文件包含命令,其意义是把尖括号或引号内指定的文件包含到本程序来,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h。C语言的头文件中包括了各个标准库函数的函数原型。因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件。 * 在LCD_TFT.h这个头文件中,进行了LCD屏幕型号的选择和初始化。 * 提问:#define #if #elif #endif是干什么的? 编译预处理指令 #define 宏定义 #if #elif #endif条件编译 红色部分为换屏后要修改的地方。 * 以4.3寸屏为例,在LCD_TFT.h头文件中定义了触摸屏的参数。 * LCD_TFT.h头文件最后的几行代码中声明了公司Logo图片对应的数组。 提问:这里extern的功能是什么? 答案:实现对外部变量的声明。 解释:如果一个程序包含两个文件,在两个文件中都要用到同一个外部变量,不能分别在两个文件中各自定义这个外部变量,应该在任一个文件中定义该变量,而在另一个文件中用extern对这个变量作“外部变量说明”。 * 对比下修改前后,开发板上显示的效果。 * 打开main.c文件中的void Main(void)函数。 首先定义了几个变量,能看懂就先不管。 然后有个条件编译,我们用的是ADS1.2,所以这个条件编译没用。 * 紧接着,端口初始化,中断初始化。 * CPU时钟频率的选择。这里选择为400MHz。Mpll为锁相环输出频率,用来为MCU提供频率。 计算mpll_val的值:这里涉及两个操作符(左移)和|(异或),都是二进制运算符。 mpll_val = (9212)|(14)|(1); 92转换成二进制为0101 1100,将此数左移12位,也就是后面加12个0,变成01011100000000000000,转换成十进制为2^14+2^15+2^16+2^18 = 376832, 同理,14转换成十进制为16,上面mpll_val ?= 376832|16|1,这个其实就相当于 376832+16+1。因此:mpll_val = 376849 * 根据上一步计算的mpll_val的值,设置CPU时钟频率为400MHz。具体如何计算的,自己上网找。 * 前三行设置串口波特率为115200 第四行对应开发板开机时的蜂鸣器的那一声“哔”,去掉开机就不响了。 * 开发板从nandflash启动时,电脑串口工具界面打印出的语句。大家可以尝试修改其它语句。 通用异步收发传输器(Universal Asynchronous Recei

文档评论(0)

jiayou10 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档