0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LPC800前生今世 第四章-系列总览指南书中的例程和项目文件

恩智浦MCU加油站 来源:未知 2023-10-12 08:55 次阅读
概述 本书中的全部例程都是在IAR的Embedded Workbench for ARM v8.20.2上编写和测试的,附带的项目文件和代码也都适合于IAR的这个开发平台IDE,使用其它开发工具(例KEILMCUXpresso)的读者,可以自行建立项目,然后把本文的代码拷贝过去。

一、附属代码的目录结构

提供的所有例程和代码,都被集中在IAR的一个工作区(Workspace)里面,读者把提供的ZIP文件解压到某个目录下(例如Workspace_IAR),就可以看到这个工作区的文件和其它一些目录,下面是目录截图:

wKgZomUt2uCANIdhAAEZRHW6lNI773.png

LPC800_Cookbook_IAR_Workspace.eww就是集中了本文所有例程项目的工作区配置文件,读者可以双击这个文件启动IAR的IDE 开发环境,或在IAR软件中从菜单File/OpenWorkspace...打开这个文件。稍等片刻,即可看到这个工作区里集成的所有项目。

除了这个工作区配置文件(.eww),读者还会看到其它几个目录:

wKgZomUt2uCADdGQAAAsCi2ho_8090.png

打开目录LPC824_Example_Code_Bundle_IAR_r1.0,它的目录结构如右图。这里面包含了IAR的项目文件目录和一些源文件目录:wKgZomUt2uGAAPg-AABhoFq89Xg034.pngwKgZomUt2uGAaTKrAACAat4ejcU657.png

与本书各章节相关的代码都放在图18所示的“Projects”目录下,每个项目都有一个子目录,如右图所示:

wKgZomUt2uGARkmVAAAoDK3fVbw819.pngwKgZomUt2uGAIk9ZAAEDZyRN23U480.png

在IAR的IDE环境中,编译任何一个项目,确切地说是Build一个项目时,都会在项目所在的目录下按照不同的项目配置自动地生成一个目标文件的目录。例如上面截图中看到,对应项目Cookbook_NVIC_GPIO所生成的目标文件目录是Cookbook,而对应项目LPC82x_Lib、Peripherals_lib或Utilities_lib所生成的目标文件目录是flash,这个目录的名字是由当前项目的配置相关。

在IAR的IDE中,点击Project Edit Configurations...后,就可以编辑所需要的配置名称,然后再点击Project Options...对该配置选项的各项配置进行选择,例如可以选择包含的文件、编译优化的级别、链接不同的函数库等。这样可以用一套源代码,得到不同的目标文件或可执行文件。有兴趣的读者可以参考IAR的相应文档,进一步了解其功能和使用方法。如下图:

wKgZomUt2uGADL2hAAB0L2I79gQ034.png

二、例程项目下的文件

有关一个例程项目的文件,都集中放置在一个相同的目录下,这个目录的名字都是以下面的形式命名:

0 Cookbook_模块名_功能名

模块名表示该例程是属于哪个模块,例如NVIC、SCT、GPIO等。

功能名表示该例程所要实现的功能,例如Cookbook_NVIC_GPIO表示用GPIO演示NVIC的例程。另一个例子是,Cookbook_SCT_QEI表示是用SCT实现QEI(旋转编码器)的例程。

以Cookbook_NVIC_GPIO为例,在每一个项目的目录下基本都包含下面一些文件:wKgZomUt2uGAQZ56AAB1tfH8YeE883.png

wKgZomUt2uGABwCxAAC2tslcnRY235.png

每个项目的主函数源文件,都是使用与项目名称一样的名字,读者可以很容易地与其它源文件区分出来。项目中其它源文件的命名没有硬性规定,命名基本是以标示所执行的功能为原则。

以下这几个文件,基本是每个项目里都有的源文件:

■ IAR_cstartup_M.s:是一个汇编文件。

■ system_LPC8xx.c:当CPU启动时,会从上述汇编文件中的复位入口开始执行指令,然后转到这个.c文件中,对LPC800中与时钟相关的振荡器、PLL等部分执行初始化。完成基本初始化后就转到用户自己的main()函数,因此如果没有特殊要求,尤其时需要尝试本书中的例程时,用户程序可以不用再考虑主时钟部分的初始化,此时主时钟已经被配置为30MHz的速率,用户程序可以直接运行其它模块的初始化了。

■ IAR_Redirect.c和Serial.c:当需要使用标准输入输出的函数,例如printf、scanf等时,项目里需要包含这两个文件,它们把这些标准输入输出函数与UART0对接。

一般情况下,用户不必理会与项目相关的四个文件(*.dep *.ewd *.ewp *.wet),如果需要了解详细信息,请参考IAR的相关文档。

三、例程项目索引

下面这张表是所有例程项目的索引,读者在需要尝试相应例程时,可以依据此表找到对应的项目代码。

项目名称

所在章节

简要说明

Cookbook_NVIC_GPIO

3.1.5中断优先级和嵌套的演示例程

演示中断嵌套的现象和效果

Cookbook_SWM_LEDs

6.3.3通过开关矩阵实现呼吸灯的轮转

通过配置SWM改变信号的输出引脚

Cookbook_SWM_USARTs

6.3.4两个USART模块对接

通过配置SWM实现2USART芯片内部对接

Cookbook_SCT_QEI

7.5使用IOCON的数字滤波功能实现按键去抖动的例程

使用数字滤波实现按键去抖

此部分在QEI的例程中

Cookbook_GPIO_LEDs

8.3 GPIO控制器使用例程

演示如何直接操作GPIO

Cookbook_GPIO_Pmat

9.6.1异或的实现

使用模式匹配引擎实现两个按键的异或操作

Cookbook_GPIO_Pmat-Vote

9.6.2三人表决器

使用模式匹配引擎实现一个三人表决器的逻辑

Cookbook_DMA_M2M

10.7.1 DMA执行内存中的数据块拷贝

使用DMA搬运内存中的数据块

Cookbook_DMA_UART

10.7.2 DMA执行USART0的连续发送(硬件触发)

使用DMA发送数据串至UART,触发一次将发送出所有的数据字节

Cookbook_DMA_UART_Burst

10.7.3 DMA执行USART0的成组发送

使用DMA发送数据串至UART,使用乒乓链接的描述符连续发送多个字符串,每触发一次将发送成组发出8个数据字节,循环往复

Cookbook_UART_Basic

11.5 USART实例

使用中断方式接收UART传输的数据,再发送回去

Cookbook_UART_HWFlow

11.6带硬件流控的UART收发例程

通过开发板上的按键和LED模拟和显示硬件流控

Cookbook_UART_Autoband

11.7 USART在异步模式下的自动波特率匹配

演示自动波特率匹配的设置和使用

Cookbook_UART_Sync

11.8 USART的同步模式

演示如何配置同步模式,并演示如何在没有示波器的情况下,查看输出的波形

Cookbook_SPI_Master

12.3.1 SPI的轮询方式操作

使用轮询方式读出SPI Flash的若干ID

例程中还包含一段简单的中断方式操作

Cookbook_SPI_Int_M25B32BV

12.3.3中断方式访问SPI Flash的完整例程

使用中断方式实现对SPI Flash的所有基本操作,包括读写和擦除

Cookbook_I2C_EEPROM_Polling

13.3 I2C主机收发操作步骤——轮询方式

演示主机模式下使用轮询方式进行I2C的收发

Cookbook_I2C_EEPROM_Polling

13.4监测功能的使用

演示检测功能的使用以及数据的解读

Cookbook_I2C_EEPROM_Int

13.5 I2C主机收发操作步骤——中断方式

使用状态机实现中断方式的I2C收发

Cookbook_I2C_EEPROM_Int

13.6 LPCOpen里如何实现I2C主机收发

使用状态机实现中断方式的I2C收发,这是LPCOpen中的实现方法

Cookbook_I2C_Slave_Int

13.7 I2C从机收发操作步骤——中断方式

使用LPC824模拟一个I2C EEPROM,演示使用中断方式操作I2C从机

Cookbook_SCT_PWM2

14.11例程:使用SCT产生2PWM输出

初始化SCT,在中断里控制输出信号的占空比实现呼吸灯控制

Cookbook_SCT_PWM_DMA

14.12使用SCT+DMA自主实现 LED呼吸灯的例程

采用DMA更新匹配重装载寄存器的方式调节占空比,实现无中断、无CPU干预的LED呼吸灯功能

Cookbook_SCT_PWM_Breath

14.13单独使用SCT自主实现 LED呼吸灯的例程

仅使用SCT,实现不需CPUDMA干预的LED呼吸灯

Cookbook_SCT_QEI

14.16.3 SCT实现旋转编码器接口的例程

演示SCT读取旋转编码器的数据,并演示使用IOCON的数字滤波功能做毛刺滤波

Cookbook_WWDT

15.3看门狗定时器应用例程

演示窗口看门狗的功能

Cookbook_MRT

16.3多速率定时器(MRT)应用例程

使用两个MRT的通道产生定时中断控制LED灯的占空比,用ADC采样电位器决定占空比

Cookbook_MRT_BusStall

16.4.1总线暂停模式产生PWM波例程

使用MRT的总线暂停模式产生PWM波形,演示总线暂停模式的功能和对系统的影响

Cookbook_SysTick

17.2.2轮询程序实现机械按键消抖

17.2.3中断方式实现机械按键消抖

分别用轮询和中断方式实现按键消抖的功能

Cookbook_ADC

18.5 ADC应用例程

使用按键触发ADC转换,中断读出ADC转换结果,演示MODE的功效

Cookbook_ADC_DMA

18.6 ADC配合DMA的例程

使用DMA传输转换结果

Cookbook_ADC_DMA_Burst

18.6.1 ADC配合DMA的连续转换传输

使用DMA的成组模式传输转换结果,ADC使用软件触发

END

更多恩智浦AI-IoT市场和产品信息,邀您同时关注“NXP客栈”微信公众号

wKgZomUt2uKAKot3AABCdkRE230905.jpg      

NXP客栈


恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。

长按二维码,关注我们

恩智浦MCU加油站


这是由恩智浦官方运营的公众号,着重为您推荐恩智浦MCU的产品信息、开发技巧、教程文档、培训课程等内容。

wKgZomUt2uKAd83zAAATNlPH08Y244.jpg  

长按二维码,关注我们


原文标题:LPC800前生今世 第四章-系列总览指南书中的例程和项目文件

文章出处:【微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16243

    浏览量

    345548
  • 恩智浦
    +关注

    关注

    14

    文章

    5738

    浏览量

    101713

原文标题:LPC800前生今世 第四章-系列总览指南书中的例程和项目文件

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    LPC800 MCU技术资源合集:纯干货,快接住!

    、设计灵活的解决方案! 我们将LPC800系列微控制器的技术资料整理打包,提供给各位嵌入式开发的小伙伴,从产品培训到选型指南,从参考设计到开发资源,满满的技术干货,大家快接住! 点击这里获取
    的头像 发表于 12-27 08:10 310次阅读
    <b class='flag-5'>LPC800</b> MCU技术资源合集:纯干货,快接住!

    LPC800前生今世-第八章 引脚中断和引脚组合逻辑 (Pin Interrupt &amp; Pin Pattern)

    外部引脚可以触发芯片内部的中断,这是每一个通用MCU都具备的基本功能。 在LPC800中,所有外部引脚都可以配置为产生中断的触发源。每个引脚不但可以独立地触发中断,还可以和其它引脚的信号状态进行组合
    的头像 发表于 12-14 16:20 1302次阅读
    <b class='flag-5'>LPC800</b><b class='flag-5'>前生</b><b class='flag-5'>今世</b>-第八章 引脚中断和引脚组合逻辑 (Pin Interrupt &amp; Pin Pattern)

    MATLAB课程之第四章v3 程序设计(1)

    开始讲解第四章的内容。2023年8月,第二版文章和大家见面了,增加了很多内容,还有视频指导。 本章开始开始教同学们如何编写复杂程序了。本课程总共有多少章啊?回答:七章。 第四章讲解程序
    的头像 发表于 11-29 08:10 283次阅读

    简单易用,设计灵活!LPC800微控制器,加速实现从8位到32位的平稳升级!

    从8位向32位平台升级,是嵌入式开发的大势所趋。如何让这个过程更平稳、更丝滑?恩智浦给出的解决方案就是——LPC800系列32位微控制器。 作为新一代基于Arm Cortex-M0+的微控制器
    的头像 发表于 11-10 08:15 303次阅读
    简单易用,设计灵活!<b class='flag-5'>LPC800</b>微控制器,加速实现从8位到32位的平稳升级!

    LPC800 前生今世-第七章 输入输出控制器(GPIO)

    一款 MCU ,最重要的是要有输入输出引脚,引脚的数量要够丰富,功能要够齐全,还要有灵活的输入输出控制方式。 在 LPC800 系列中提供了很多封装和输入输出引脚数量的选项: 表1 LPC800
    的头像 发表于 11-02 08:55 493次阅读
    <b class='flag-5'>LPC800</b> <b class='flag-5'>前生</b><b class='flag-5'>今世</b>-第七章 输入输出控制器(GPIO)

    LPC800前生今世 第六章-开关矩阵(SWM: Switch Matrix)

    总体概述 开关矩阵顾名思义就是一个由多个,甚至多组开关组成的阵列,这个阵列的目的就是把片内外设的输入输出信号线,按照用户的意向,通过编程连接到特定的外部引脚上。 开关矩 阵可以为LPC800的使用者
    的头像 发表于 10-26 09:25 1197次阅读
    <b class='flag-5'>LPC800</b><b class='flag-5'>前生</b><b class='flag-5'>今世</b> 第六章-开关矩阵(SWM: Switch Matrix)

    LPC800前生今世 第五章-系统配置模块SYSCON

    模块之间的配置或资源分配,则需要统一在Syscon中进行,例如时钟的分频、各功能模块的复位、低功耗模式的配置等。 1.1 SYSCON的基本特征 LPC800系列的每个型号都标配系统配置模块(SYSCON),不同子系列的功能基
    的头像 发表于 10-19 11:25 414次阅读
    <b class='flag-5'>LPC800</b><b class='flag-5'>前生</b><b class='flag-5'>今世</b> 第五章-系统配置模块SYSCON

    LPC800系列32位MCU,面向传统8位和16位MCU的迭代和升级

    LPC800是NXP(恩智浦)从2012年开始陆续开发面世的以ArmCortex-M0+为核心的32位MCU系列,定位是面向传统的8位和16位MCU的迭代和升级,因此其配置特点十分鲜明。首先是迎合
    的头像 发表于 09-26 18:01 515次阅读
    <b class='flag-5'>LPC800</b><b class='flag-5'>系列</b>32位MCU,面向传统8位和16位MCU的迭代和升级

    LPC800前生今世 第二章-系列总览

    LPC800系列总览 前面一章已经简要地介绍了LPC800的基本特性和系列中各产品之间的对比。本章将通过框图的形式,给出更详细的配置信息,并
    的头像 发表于 09-21 11:55 408次阅读

    LPC800前生今世 第一章-概述

    第一章 概述 LPC800是恩智浦公司于2012年开发的以ARM Cortex-M0+为核心的32位MCU系列,这个系列的产品是面向传统的8位和16位MCU的升级市场。她的配置特点十分鲜明,首先迎合
    的头像 发表于 09-14 08:50 686次阅读

    LPC800的前世今生大揭秘

    的开发代号“哪吒”,意为小而勇敢。为什么要在LPC1100推出3年之后,又推出LPC800系列?“哪吒”的背后,有什么鲜为人知的故事? 2 LPC800哪吒的诞生 “哪吒”
    的头像 发表于 09-07 08:50 515次阅读

    ARM网络协议命令行接口1.6版参考指南

    和协议一般命令的例子。第三诊断命令阅读了该章节的语法和协议的诊断和统计命令实例。第四章特定命令阅读了该章节的语法和补充议定书的命令示例。只有您已经获得许可并将补充议定书作为系统一部分。任择议定书的例子有NATRouter、 RIP、 FTP 和 TOLNET 相关命令,
    发表于 08-21 07:05

    使用USART ISP对LPC800进行编程

    电子发烧友网站提供《使用USART ISP对LPC800进行编程.pdf》资料免费下载
    发表于 08-17 10:11 1次下载
    使用USART ISP对<b class='flag-5'>LPC800</b>进行编程

    MATLAB课程之第四章v2 程序设计(1)

    开始讲解第四章的内容。2023年8月,第二版文章和大家见面了,增加了很多内容,还有视频指导。 本章开始开始教同学们如何编写复杂程序了。本课程总共有多少章啊?回答:七章。 开始讲课。 新版内容来了
    的头像 发表于 08-17 07:45 405次阅读

    ARM PrimeCell通用输入/输出(PL061)技术参考手册

    程序员的模型阅读本章,用于描述PrimeCell GPIO的登记和编程细节。第四章程序员的测试模型阅读本章,用于描述PrimeCell GPIO(PL061) 信号的逻辑。读本附录用于描述
    发表于 08-02 06:49