MSP432E401Y-串口输出

最新更新时间:2022-08-05来源: csdn关键字:MSP432E401Y  串口输出 手机看文章 扫描二维码
随时随地手机看文章

时间关系和想要偷懒的想法,用寄存器定义去实现串口输出还是有点困难,还是改装一下官方例程比较简单。不过UART相关的翻译还是做到位了,详细介绍和配置参考下文。


这次的工程文件里面有额外的uart.c和uart.h文件,可以直接用git在https://github.com/VealFog/MSP432E401Y-WITH-CCS中clone对应的文件下来。


1.介绍


MSP432控制器包括了八个具有以下特征的UART:


可编程波特率发生器允许速度高达 7.5 Mbps 的常规速度(16分频)和 15 Mbps 的高速(8分频)。


独立的 16x8 发送 (TX) 和接收 (RX) FIFO 以减少 CPU 中断服务负载。


可编程 FIFO 长度,包括提供传统双缓冲接口的 1 字节深度操作。


⅛、1/4、1/2、3/4 和 ⅞ 的 FIFO 触发电平。


用于启动、停止和奇偶校验的标准异步通信位。


Line-break(断线)生成和检测。


完全可编程的串行接口特性。


5、6、7 或 8个数据位。


偶数、奇数、固定或无奇偶校验位生成和检测。


1 或 2个停止位生成。


IrDA serial-IR (SIR) 编码器和解码器提供。


可编程使用 IrDA SIR 或 UART 输入/输出。


支持 IrDA SIR 编码器和解码器功能,数据速率高达 115.2 kbps 半双工。


支持正常的 3/16 和低功耗(1.41 至 2.23 μs)位持续时间。


可编程内部时钟发生器能够将参考时钟从 1 到 256 分频以实现低功耗模式位持续时间。


支持与 ISO 7816 智能卡通信


调制解调器功能可用于以下 UART:


UART0(调制解调器流量控制和调制解调器状态)


UART1(调制解调器流量控制和调制解调器状态)


UART2(调制解调器流量控制)


UART3(调制解调器流量控制)


UART4(调制解调器流量控制)


EIA-485 9 位支持


标准 FIFO 级和传输结束 (EOT) 中断


使用微型直接内存访问控制器 (µDMA) 进行高效传输


用于发送和接收的独立通道


当数据在 FIFO 中时接收单个请求; 在编程的 FIFO 级别断言突发请求


当 FIFO 中有空间时,发送单个请求被断言(asserted); 在编程的 FIFO 级别断言突发请求


全局备用时钟 (ALTCLK) 资源或系统时钟 (SYSCLK) 可用于生成波特时钟。


2. 功能说明


每个 UART 执行并行到串行和串行到并行转换的功能。 它的功能类似于 16C550 UART,但不兼容寄存器。


UART 通过 UART 控制 (UARTCTL) 寄存器的 TXE 和 RXE 位配置为发送或接收。 发送和接收都在复位后启用。 在对任何控制寄存器进行编程之前,必须通过清除 UARTCTL 中的 UARTEN 位来禁用 UART。 如果 UART 在 TX 或 RX 操作期间被禁用,则当前事务在 UART 停止之前完成。


UART 模块还包括一个serial-IR (SIR) 编码器和解码器模块,可连接到红外收发器以实现 IrDA SIR 物理层。 SIR 功能使用 UARTCTL 寄存器进行编程。


2.1发送和接收逻辑


发送逻辑对从发送 FIFO 读取的数据执行并行到串行转换。 控制逻辑根据控制寄存器中的编程配置输出以起始位开始的串行位流,然后是数据位(LSB 在前)、奇偶校验位和停止位。 有关详细信息,请参见图 26-2。


在检测到有效起始脉冲后,接收逻辑对接收到的位流执行串并转换。 还执行溢出、奇偶校验、帧错误检查和断线检测,它们的状态伴随着写入接收 FIFO 的数据。

2.2波特率生成


波特率除数是一个 22 位数字,由 16 位整数和 6 位小数部分组成。 波特率发生器使用这两个值形成的数字来确定位的周期。 具有分数波特率除数允许 UART 生成所有标准波特率


16 位整数通过 UART 整数波特率除数 (UARTIBRD) 寄存器加载,6 位小数部分通过 UART 小数波特率除数(UARTFBRD)寄存器加载。 波特率除数 (BRD) 与系统时钟有以下关系(其中 BRDI 是 BRD 的整数部分,BRDF 是小数部分,以小数位分隔。)


BRD = BRDI + BRDF = UARTSysClk / (ClkDiv × Baud Rate)


Where


UARTSysClk 是连接到 UART 的系统时钟,ClkDiv 是 16(如果 UARTCTL 中的 HSE 被清除)或 8(如果 HSE 被设置)


默认情况下,这将是主系统时钟。 或者,UART 可由内部精密振荡器 (PIOSC) 提供时钟,与系统时钟选择无关。 这将允许独立于系统时钟 PLL 设置对 UART 时钟进行编程。 有关更多详细信息,请参见 UARTCC 寄存器。


6 位小数(即加载到 UARTFBRD 寄存器中的 DIVFRAC 位域中)可以通过将波特率除数的小数部分乘以 64 并加上 0.5 来计算舍入误差 :


UARTFBRD[DIVFRAC] = integer(BRDF × 64 + 0.5)


UART 生成 8倍或 16倍波特率的内部波特率参考时钟(称为 Baud8 和 Baud16,取决于 UARTCTL 中 HSE 位 [bit 5] 的设置)。 该参考时钟被 8 或 16 分频以生成发送时钟,并用于接收操作期间的错误检测。 请注意,HSE 位的状态对 ISO 7816 智能卡模式下的时钟生成没有影响(当 UARTCTL 寄存器中的 SMART 位被设置时)。


UARTIBRD 和 UARTFBRD 寄存器与 UART 线路控制高字节 (UARTLCRH) 寄存器一起构成一个内部 30 位寄存器。 该内部寄存器仅在对 UARTLCRH 执行写操作时更新,因此对波特率除数的任何更改都必须在写入 UARTLCRH 寄存器之后才能生效。


要更新波特率寄存器,有四种可能的序列:


UARTIBRD write, UARTFBRD write, and UARTLCRH write


UARTFBRD write, UARTIBRD write, and UARTLCRH write


UARTIBRD write and UARTLCRH write


UARTFBRD write and UARTLCRH write


2.3 数据传输


接收或发送的数据存储在两个 16 字节的 FIFO 中,尽管接收 FIFO 每个字符有额外的四位用于状态信息。 发送时,数据被写入发送 FIFO。 如果 UART 被启用,它会导致数据帧开始传输,其参数在 UARTLCRH 寄存器中指示。 数据继续发送,直到发送 FIFO 中没有数据为止。 UART 标志 (UARTFR) 寄存器中的 BUSY 位在数据写入发送 FIFO 时立即置位(即,如果 FIFO 非空),并在发送数据时保持置位 . BUSY 位仅在发送 FIFO 为空且最后一个字符(包括停止位)已从移位寄存器发送时才被取消。 即使 UART 可能不再启用,UART 也可以指示它正忙。


当接收器空闲(UnRx 信号连续为 1),并且数据输入变为低电平(已接收到一个起始位)时,接收计数器开始运行,并在 Baud16 的第八个周期或 Baud8 的第四个周期采样数据,具体取决于 关于 UARTCTL 中 HSE 位(位 5)的设置。


如果在 Baud16 的第八个周期(HSE 清零)或 Baud8 的第四个周期(HSE 置位)时 UnRx 信号仍然为低,则起始位有效并被识别,否则忽略。 检测到有效起始位后,根据编程的数据字符长度和UARTCTL中HSE位的值,在Baud16的第16个周期或Baud8的第8个周期(即后一个位周期)采样连续的数据位 . 如果启用奇偶校验模式,则检查奇偶校验位。 数据长度和奇偶校验在 UARTLCRH 寄存器中定义。


最后,如果 UnRx 信号为高电平,则确认有效停止位,否则发生帧错误。 当接收到一个完整的字时,数据连同与该字相关的任何错误位都存储在接收 FIFO 中。


2.4 serial-IR (SIR)


UART外设包括 IrDA SIR 编码器和解码器模块。 IrDA SIR 模块提供在异步 UART 数据流和半双工串行 SIR 接口之间进行转换的功能。 片上不执行模拟处理。 SIR 模块的作用是为 UART 提供数字编码输出和解码输入。 启用后,SIR 模块将 UnTx 和 UnRx 引脚用于 SIR 协议。 这些信号应连接到红外收发器以实现 IrDA SIR 物理层链路。 SIR 模块可以接收和发送,但它只是半双工,因此不能同时进行。 在接收数据之前必须停止传输。 IrDA SIR 物理层指定传输和接收之间的最小延迟为 10 毫秒。 SIR 模块有两种操作模式:


在正常 IrDA 模式下,逻辑 0 电平作为输出引脚上所选波特率位周期的 3/16 持续时间的高脉冲传输,而逻辑 1 电平作为静态低电平信号传输。 这些电平控制红外发射器的驱动器,为每个零发送一个光脉冲。 在接收端,入射光脉冲激励接收器的光电晶体管基极,将其输出拉低并将 UART 输入引脚驱动为低电平。


在低功耗 IrDA 模式下,通过更改 UARTCTL 寄存器中的相应位,将发送的红外脉冲宽度设置为内部生成的 IrLPBaud16 信号周期(1.63 µs,假设标称频率为 1.8432 MHz)的三倍。


无论设备处于正常还是低功耗 IrDA 模式,如果在第一次检测到低电平后解码器在 IrLPBaud16 周期内仍为低电平,则起始位被视为有效。 这使得正常模式 UART 能够从低功耗模式 UART 接收数据,该模式可以传输小至 1.41 µs 的脉冲。 因此,对于低功耗和正常模式操作,UARTILPR 寄存器中的 ILPDVSR 字段必须编程为 1.42 MHz < fIrLPBaud16 < 2.12 MHz,从而产生 1.41 至 2.11 μs(周期的三倍)的低功耗脉冲持续时间 IrLPBaud 16)。 IrLPBaud16 的最小频率确保小于 IrLPBaud16 一个周期的脉冲被拒绝,但大于 1.4 μs 的脉冲被接受为有效脉冲。


图 26-3 显示了带有和不带有 IrDA 调制的 UART 发送和接收信号。

在正常和低功耗 IrDA 模式下:


传输时,以UART数据位为基础进行编码


在接收期间,解码的位被传输到 UART 接收逻辑


IrDA SIR 物理层指定半双工通信链路,传输和接收之间的延迟至少为 10 毫秒。 此延迟必须由软件生成,因为 UART 不会自动支持它。 延迟是必需的,因为红外接收器电子设备可能会因从相邻发射器 LED 耦合的光功率而变得偏置甚至饱和。 此延迟称为延迟或接收器设置时间。


注意: 使用 SIR 模式和 µDMA 时,仅支持单传输模式。 为确保单传输模式,为映射到 UART 的 μDMA 通道清除相应的 SETn 位 DMAUSEBURSTSET 寄存器。


2.5. ISO 7816 Support


UART 提供基本支持以允许与 ISO 7816 智能卡进行通信。 当UARTCTL寄存器的第3位(SMART)置位时,UnTx信号用作位时钟,UnRx信号用作连接到智能卡的半双工通信线。 GPIO 信号可用于为智能卡生成复位信号。 其余的智能卡信号应由系统设计提供。 此模式下的最大时钟频率为系统时钟/16。


使用 ISO 7816 模式时,UARTLCRH 寄存器必须设置为发送 8 位字(WLEN 位 6:5 配置为 0x3),偶校验(PEN 设置和 EPS 设置)。 在这种模式下,UART 自动使用两个停止位,忽略 UARTLCRH 寄存器的 STP2 位。


如果在传输过程中检测到奇偶校验错误,则在第二个停止位期间将 UnRx 拉低。 在这种情况下,UART 中止传输,刷新传输 FIFO 并丢弃其中包含的任何数据,并引发奇偶校验错误中断,允许软件检测问题并启动受影响数据的重新传输。 请注意,在这种情况下,UART 不支持自动重传。


2.6 Modem Handshake Support(调制解调器握手支持)


本节介绍如何配置和使用作为数据终端设备 (DTE) 或数据通信设备 (DCE) 连接的 UART 的调制解调器流量控制和状态信号。 通常,调制解调器是 DCE,连接到调制解调器的计算设备是 DTE。


Signaling(信令)


UART 提供的状态信号因 UART 用作 DTE 还是 DCE 而异。 当用作 DTE 时,调制解调器流量控制和状态信号定义为:


UnCTS:清除发送


UnDST:数据准备就绪


UnDCD: 数据载体检测


UnRI:振铃指示


UnRTS:请求发送


UnDTR:数据终端就绪


当用作 DCE 时,调制解调器流量控制和状态信号定义为:


UnCTS:请求发送


UnDSR: 数据终端就绪


UnRTS:清除发送


UnDTR:数据集准备好


请注意,不提供对 DCE 功能数据载波检测和振铃指示的支持。 如果需要这些信号,可以通过使用 GPIO 信号并提供软件支持来模拟它们的功能。


Flow Control(流量控制)


流量控制可以通过硬件或软件来完成。 以下部分描述了不同的方法。


硬件流控制(RTS 和 CTS)


两个设备之间的硬件流控制是通过将 UnRTS 输出连接到接收设备上的清除发送输入,并将接收设备上的请求发送输出连接到 UnCTS 输入来实现的。


UnCTS 输入控制发射机。 当 UnCTS 输入有效(低电平有效)时,发送器只能发送数据。 UnRTS 输出信号指示接收 FIFO 的状态。 UnCTS 保持有效(低电平有效),直到达到预编程的水印级别,表明接收 FIFO 没有空间来存储额外的字符。


UARTCTL 寄存器的第 15 位(CTSEN)和第 14 位(RTSEN)指定流控制模式,如表 26-1 所示。

软件流控制(调制解调器状态中断)


两个设备之间的软件流控制是通过使用中断来指示 UART 的状态来实现的。 可以分别使用 UARTIM 寄存器的位 3:0 为 UnDSR、UnDCD、UnCTS 和 UnRI 信号生成中断。 可以使用 UARTRIS 和 UARTMIS 寄存器检查原始和屏蔽中断状态。 这些中断可以使用 UARTICR 寄存器清除。


9 位 UART 模式


UART 提供 9 位模式,该模式由 UART9BITADDR 寄存器中的 9BITEN 位启用。此功能在 UART 的多点配置中很有用,其中连接到多个从设备的单个主设备可以通过特定从设备的地址或地址集以及地址字节的限定符与特定从设备进行通信。所有从机检查地址限定符代替奇偶校验位,如果设置,则将接收到的字节与预编程地址进行比较。如果地址匹配,则它接收或发送更多数据。如果地址不匹配,它会丢弃地址字节和任何后续数据字节。如果 UART 处于 9 位模式,则接收器以无奇偶校验模式运行。该地址可以预定义为与接收到的字节匹配,并且可以使用 UART9BITADDR 寄存器进行配置。可以使用 UART9BITAMASK 寄存器中的地址掩码将匹配扩展到一组地址。默认情况下,UART9BITAMASK 为 0xFF,表示仅匹配指定地址。


如果没有找到匹配项,则丢弃第 9 位清零的其余数据字节。 如果找到匹配项,则会向 NVIC 生成中断以进行进一步操作。 具有清除的第 9 位的后续数据字节存储在 FIFO 中。 如果为此实例启用了 μDMA 或 FIFO 操作并且不需要处理器干预,软件可以屏蔽此中断。 所有 9 位模式的发送事务都是数据字节,第 9 位被清除。 软件可以通过将奇偶校验设置覆盖为粘性奇偶校验并为特定字节启用奇校验来覆盖要设置的第 9 位(以指示地址)。 为了使传输时间与正确的奇偶校验设置相匹配,地址字节可以作为单个传输然后突发传输传输。 发送 FIFO 不保存地址/数据位,因此软件应适当地启用地址位。


FIFO(先进先出)操作


UART 有两个 16x8 FIFO; 一种用于发送,一种用于接收。 两个 FIFO 都通过 UART 数据 (UARTDR) 寄存器访问。 UARTDR 寄存器的读操作返回一个由 8 个数据位和 4 个错误标志组成的 12 位值,而写操作将 8 位数据放入发送 FIFO。


复位后,两个 FIFO 均被禁用并充当 1 字节深的保持寄存器。 通过设置 UARTLCRH 中的 FEN 位来启用 FIFO。


FIFO 状态可以通过 UART 标志 (UARTFR) 寄存器和 UART 接收状态 (UARTRSR) 寄存器进行监控。 硬件监控空载、满载和溢出情况。 UARTFR 寄存器包含空和满标志(TXFE、TXFF、RXFE 和 RXFF 位),UARTRSR 寄存器通过 OE 位显示溢出状态。 如果禁用 FIFO,则根据 1 字节深保持寄存器的状态设置空和满标志。


FIFO 产生中断的触发点由 UART 中断 FIFO 级别选择 (UARTIFLS) 寄存器控制。 两个 FIFO 都可以单独配置以触发不同级别的中断。 可用的配置包括 ⅛、¼、½、¾ 和 ⅞。 例如,如果为接收 FIFO 选择 ¼ 选项,则 UART 在接收到四个数据字节后会产生一个接收中断。 复位后,两个 FIFO 均配置为在 ½ 标记处触发中断。


2.7 中断


当观察到以下条件时,UART 可以产生中断:


Overrun error(超限错误)


Break error(断线错误)


Parity error(奇偶校验错误)


Framing error(帧错误)


Receive time-out(接收超时)


发送(当满足 UARTIFLS 寄存器中的 TXIFLSEL 位中定义的条件时,或者如果 UARTCTL 中的 EOT 位被设置,则当所有发送数据的最后一位离开串行器时)


接收(当满足 UARTIFLS 寄存器的 RXIFLSEL 位中定义的条件时)


所有的中断事件在被发送到中断控制器之前都被组合在一起,因此 UART 在任何给定时间只能向控制器生成一个中断请求。 通过读取 UART 屏蔽中断状态 (UARTMIS) 寄存器,软件可以在单个中断服务程序中处理多个中断事件。


通过设置相应的 IM 位,可以在 UART 中断屏蔽 (UARTIM) 寄存器中定义可以触发控制器级中断的中断事件。 如果未使用中断,则可通过 UART 原始中断状态 (UARTRIS) 寄存器查看原始中断状态。


注意:对于接收超时,必须设置 UARTIM 寄存器中的 RTIM 位以查看 UARTMIS 和 UARTRIS 寄存器中的 RTMIS 和 RTIS 状态


中断总是通过向 UART 中断清除 (UARTICR) 寄存器中的相应位写入 1 来清除(对于 UARTMIS 和 UARTRIS 寄存器)。.


当接收 FIFO 不为空时,接收超时中断被置位,并且在 HSE 位清零时的 32 位周期内或 HSE 位置位时的 64 位周期内没有接收到更多数据。 当 FIFO 通过读取所有数据(或通过读取保持寄存器)变为空时,或者当 1 写入 UARTICR 寄存器中的相应位时,接收超时中断将被清除。


当发生以下事件之一时,接收中断会改变状态:


如果使能 FIFO 并且接收 FIFO 达到编程的触发电平,则 RXRIS 位被设置。 接收中断通过从接收 FIFO 读取数据直到它低于触发电平来清除,或者通过向 RXIC 位写入 1 来清除中断。


如果 FIFO 被禁用(具有一个位置的深度)并且接收到数据从而填充该位置,则设置 RXRIS 位。 接收中断通过对接收 FIFO 执行一次读取来清除,或者通过向 RXIC 位写入 1 来清除中断。


当发生以下事件之一时,发送中断会改变状态:


如果 FIFO 被使能并且发送 FIFO 通过编程的触发电平进行,则 TXRIS 位被设置。 发送中断基于电平转换,因此必须写入 FIFO 超过编程的触发电平,否则不会产生进一步的发送中断。 发送中断通过将数据写入发送 FIFO 直到它变得大于触发电平来清除,或者通过向 TXIC 位写入 1 来清除中断。


如果 FIFO 被禁用(具有一个位置的深度)并且发送器单个位置中没有数据,则 TXRIS 位被设置。 它通过对发送 FIFO 执行单次写入来清除,或者通过向 TXIC 位写入 1 来清除中断。


2.8. Loopback Operation(环回操作)


通过设置 UARTCTL 寄存器中的 LBE 位,可以将 UART 置于内部环回模式以进行诊断或调试工作。 在环回模式下,UnTx 输出上传输的数据在 UnRx 输入上接收。 请注意,LBE 位应在启用 UART 之前设置。


2.9. DMA Operation(DMA操作)


UART 为 μDMA 控制器提供了一个接口,具有用于发送和接收的单独通道。 UART 的 DMA 操作通过 UART DMA 控制 (UARTDMACTL) 寄存器启用。 当启用 DMA 操作时,当关联的 FIFO 可以传输数据时,UART 在接收或发送通道上声明 DMA 请求。


对于接收通道,只要有任何数据在接收 FIFO 中,就会发出单个传输请求。 只要接收 FIFO 中的数据量等于或高于 UARTIFLS 寄存器中配置的 FIFO 触发电平,就会发出突发传输请求。


对于发送通道,只要发送 FIFO 中至少有一个空位置,就会发出单个传输请求。 每当发送 FIFO 包含的字符少于 FIFO 触发电平时,就会断言突发请求。 单次和突发 DMA 传输请求由 μDMA 控制器自动处理,具体取决于 DMA 通道的配置方式。


注意:当使用 SIR 模式时,传输只能在单传输模式下完成。 为确保单传输模式,为映射到 UART 的 μDMA 通道清除相应的 SETn 位 DMAUSEBURSTSET 寄存器。


要为接收通道启用 DMA 操作,请设置 DMA 控制 (UARTDMACTL) 寄存器的 RXDMAE 位。 要为发送通道启用 DMA 操作,请设置 UARTDMACTL 寄存器的 TXDMAE 位。 如果发生接收错误,还可以将 UART 配置为停止将 DMA 用于接收通道。 如果 UARTDMACR 寄存器的 DMAERR 位置 1 并且发生接收错误,则自动禁止 DMA 接收请求。 可以通过清除相应的 UART 错误中断来清除此错误条件。


当 µDMA 完成向 TX FIFO 或从 RX FIFO 传输数据时,dma_done 信号被发送到 UART 以指示完成。 dma_done 状态通过 UARTRIS 寄存器的 DMATXRIS 和 DMARXIS 位指示。 通过设置 UARTIM 寄存器中的 DMATXIM 和 DMARXIM 位,可以从这些状态位生成中断


注意:DMATXRIS 位可用于指示从 µDMA 到 TX FIFO 的数据传输完成。 要指示 UART 串行器的传输完成,应使能 UARTCTL 寄存器中的 EOT 位。 通过设置 UARTIM 寄存器的 EOTIM 位,可以在 EOT 完成时产生中断。


3. 初始化和配置


要启用和初始化 UART,请执行以下步骤:


使用 RCGCUART 寄存器启用 UART 模块。

通过 RCGCGPIO 寄存器)启用到相应 GPIO 模块的时钟。 要找出要启用的 GPIO 端口,请参阅特定于设备的数据表。

为相应的引脚设置 GPIO AFSEL 位。 要确定要配置哪些 GPIO,请参阅特定于设备的数据表。

根据所选模式的指定配置 GPIO 电流电平或压摆率。

配置 GPIOPCTL 寄存器中的 PMCn 字段以将 UART 信号分配给适当的引脚。

要使用 UART,必须通过设置 RCGCUART 寄存器中的相应位来启用外设时钟。 此外,必须通过系统控制模块中的 RCGCGPIO 寄存器启用相应 GPIO 模块的时钟。 要找出要启用的 GPIO 端口,请参阅特定于设备的数据表。


本节讨论使用 UART 模块所需的步骤。 对于此示例,假设 UART 时钟为 120 MHz,所需的 UART 配置为:


115200波特率

8位数据长度

One-stop bit(一站式位)

无奇偶校验

FIFO 已禁用

无中断

[1] [2]
关键字:MSP432E401Y  串口输出 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic618253.html

上一篇:MSP432--通用I/O端口
下一篇:MSP430F5529-MPU6050陀螺仪

推荐阅读

MSP432E401Y-用按键点亮LED灯
由于已经开发过一段时间的MSP430F5529,对于嵌入式开发有了一些了解。现在转来做432的开发却发现网上的资源非常少,尽管有一些但是都是基于driverlib库函数进行的编写。但是本人实在是用不惯库函数,只能自己研究怎么进行基础的引脚定义了。 第一步是最简单的用按键点亮LED灯。432和430不同的地方在于432的引脚种类非常多,从A到T都有。其次是432的功能都是写在结构体里面的,所以定义的时候都需要-> 通过翻阅官方的技术手册找到一段需要注意的地方。 Note that each GPIO module clock must be enabled before the registers ca
发表于 2022-08-08
MSP432E401Y-按键中断点灯
承接上一篇文章,这次是用按键触发外部中断,通过LED灯显示 这次的实验也是通过对寄存器进行操作来实现相关功能。在进行代码编写之前,先来了解一下关于GPIO寄存器的中断定义解释以及不同赋值下的功能解释。1.GPIO -> IS(Interrupt Sense) :触发状态选择寄存器 0x00:边缘触发 0x01:电平触发2.GPIO -> IBE(Interrupt Both Edges):双边触发寄存器 0x00:正常触发中断 0x01:下降沿上升沿都触发中断3.GPIO -> IEV(Interrupt Event):触发方式选择寄存器 0x00:下降沿触发或者低电平触
发表于 2022-08-08
MSP432E401Y-用定时器中断控制LED闪烁
一、初始化以及初始化配置 要使用GPTM(GPIO_TIMER),必须先配置对应的RCGCTIMER寄存器中的TIMERn(分配时钟需求),如果同时信号要从对应的引脚输出则需要同时配置对应的RCGCGPIO寄存器(参考前几篇)。如果启用了GPIO则需要配置GPIOTCTL寄存器中的PMCn,用于将CCP信号分给对应的引脚。二、模式以及模式配置 技术手册一共罗列了五种功能的配置方案:1.One-shot and Periodic Mode 2.RTC Mode 3.Input Edge-Count Mode 4.Input Edge Time Mode 5.PWM Mode 这篇文章只介绍第一种模式(One-s
发表于 2022-08-08
MSP432E401Y-时钟输出PWM
关于时钟的PWM配置以及相关寄存器翻译在上篇文章中已经写过了,不做更多的描述。有问题移步MSP432E401Y-用定时器中断控制LED闪烁_丢萌的博客-CSDN博客。MSP432E401Y自带的PWM口的输出会在下一篇详细翻译以及介绍。关于定时器输出PWM的定义方式其实和中断差不多,具体的寄存器操作大同小异。这次参考了官方库修改系统频率(120兆HZ)然后用于生成2KHZ的PWM波,占空比为66%具体代码如下/* DriverLib Includes */#include <ti/devices/msp432e4/driverlib/driverlib.h>/* Standard Includes */#include
发表于 2022-08-08
MSP432E401Y-PWM输出
不介绍死区相关配置和信息,这里为432自带的PWM输出,定时器PWM输出看上一篇文章一、时钟配置PWM有两个时钟源,系统时钟和预分频的系统时钟。通过写PWMCC(PWM Clock Configuration)寄存器中的USEPWM位来选择时钟源。二、PWM计时器每个PWM发生器的计时器都可以配置增/减计数模式或者减计数模式。在减计数模式中,计数器每次计数从装载值到零后会回到加载值,如此循环计数。增/减计数模式则相反计数。一般减计数模式被用来生成左对齐或者右对齐的PWM信号,增/减计数模式则用来生成中心对齐的PWM信号。在PWM生成过程中计时器输出三种信号:方向信号(在减计数模式下低,在增/减计数模式下则是高低交替),当计数值是0时
发表于 2022-08-08
MSP432E401Y-PWM<font color='red'>输出</font>
MSP432E401Y-串口输出
时间关系和想要偷懒的想法,用寄存器定义去实现串口输出还是有点困难,还是改装一下官方例程比较简单。不过UART相关的翻译还是做到位了,详细介绍和配置参考下文。这次的工程文件里面有额外的uart.c和uart.h文件,可以直接用git在https://github.com/VealFog/MSP432E401Y-WITH-CCS中clone对应的文件下来。1.介绍MSP432控制器包括了八个具有以下特征的UART:可编程波特率发生器允许速度高达 7.5 Mbps 的常规速度(16分频)和 15 Mbps 的高速(8分频)。独立的 16x8 发送 (TX) 和接收 (RX) FIFO 以减少 CPU 中断服务负载。可编程 FIFO 长度,
发表于 2022-08-05
MSP432E401Y-<font color='red'>串口</font><font color='red'>输出</font>
小广播
实战 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved