LPC178x/177x:寄存器操作与CAN控制器初始化详解

需积分: 45 28 下载量 85 浏览量 更新于2024-08-06 收藏 18.87MB PDF 举报
在《寄存器操作和偏移量等的宏定义:LPC178x/177x功能部件——基础篇(续)》一书中,章节讨论了如何在嵌入式系统开发中利用LPC178x系列微控制器进行CAN(Controller Area Network)控制器的配置与初始化。CAN是一种工业标准的现场总线技术,用于在汽车电子、工业自动化等领域实现设备间的通信。 首先,文章介绍了一个重要的宏定义`#define CANOFFSET 0x4000`,这个偏移量常用于指定不同CAN通道(如CAN1和CAN2)的寄存器地址。通过这个偏移量,程序员可以动态地访问和配置不同CAN控制器的相关寄存器,如BTR(Bit Timing Register)用于设置波特率。 程序清单9.5展示了宏定义`RGE(ADDR)`,它是一个用于读取寄存器的通用宏,通过将指针地址ADDR传递进去,能够安全且高效地访问并读取硬件寄存器。在初始化CAN控制器时,这一功能至关重要,因为需要频繁地读写特定寄存器来配置工作模式、波特率和其他设置。 CAN控制器初始化过程在程序清单9.6中详细展示,该函数`CAN_Init`接受CAN控制器号和波特率作为参数。函数内部通过硬件控制寄存器的访问,如设置CAN控制器的电源、配置引脚、开启软件复位、修改波特率以及进入旁路模式等。值得注意的是,所有设置必须在控制器复位状态下进行,以确保稳定性和正确性。 对于E2PROM(Electrically Erasable Programmable Read-Only Memory)存储器,虽然不在给定的直接部分,但根据章节标题推测,章节5.16可能会介绍E2PROM的存储结构、操作方法以及其在系统中作为非易失性存储的作用。外部存储器控制器(EMC,External Memory Controller)在5.17中可能涉及对闪存或其他外部存储设备的管理和数据传输,这是系统扩展和存储管理的基础。 这部分内容着重于嵌入式系统中硬件层面的细节,特别是LPC178x系列微控制器中CAN控制器的配置和外部存储器的管理,这些都是硬件开发者理解和操作嵌入式系统时必不可少的技能。通过理解和应用这些宏定义和寄存器操作,开发人员可以实现高效的通信协议设置和设备控制。