This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/TM4C123GH6PM:PWM、UART CRC 16数据完整性

Guru**** 2460850 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/651381/rtos-tm4c123gh6pm-pwm-uart-crc-16-data-integrity

器件型号:TM4C123GH6PM

工具/软件:TI-RTOS

我在开发此语句的代码时遇到问题:

板载 LED 将在占空比等于通过 PC 执行 UART 接收的用户发送的数字的情况下由 PWM 闪烁10秒。 来自用户的输入数据还必须进行 CRC 16数据完整性检查。  系统应该是动态的、这样、如果在最后一个输入后的10秒内从用户接收到另一个输入、它就会被推入队列中。 输出被发送到 PC、只有在前一个输入完成10秒后、LED 才会以新的速率闪烁。 如何解决这一问题

我知道如何单独配置 UART、PWM 和计时器、但对它们进行集成是一个问题!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Vkt Jonathan"]…… 知道如何配置:UART、PWM、计时器(单独)... 集成它们一个问题!![/引述]

    而且-您的"尝试整合"是否值得在这里进行介绍-以便揭示您的思考过程-(其他人)可能会进行审查并尝试提供指导/评论?   (如果您有超过90%的人"解决了"-"重塑车轮"从未如此愉快-而且通常不需要...)

    您(集成尝试)的"分解"将在何处、何时和如何证明非常感兴趣。    (并在您的无 crüe 论坛上省去不必要的磨损或撕裂、也可以减少您自己可能需要的磨损。)

    (注意:已接受您的友好提议。)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    PWMPulseWidthSet (PWM1_base、PWM_OUT_4、?) ;
    PWMPulseWidthSet (PWM1_base、PWM_OUT_5、? );
    PWMPulseWidthSet (PWM1_base、PWM_OUT_6、? );
    PWMPulseWidthSet (PWM1_base、PWM_OUT_7、? );

    如何从用户输入值动态更改占空比

    如果我已经设置了 PwmGenPeriodSet (PWM1_base、PWM_GEN_2400);… 400个时钟周期

    我的第二个问题是、如何使 PWM 在一个 PWM 占空比下使 LED 发光10秒、在接下来的10秒中使 PWM 占空比值变大

    这400个时钟周期是什么意思?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的朋友-您显示的代码无法完全或正确地初始化和配置(假定的) PWM 发生器。    需要执行多个步骤-按顺序-

    您是否以下内容做了很好的记录:TivaWare\examples\peripherals\PWM?      MCU 手册?

    此外、"外设驱动程序库用户指南"(PDL)是大量示例-和"详细信息"-完全描述了每个/每个 MCU 外设!    "利用您的时间"不能比认真审查这种强大的来源材料更好。

    PWM 发生器完全正确地初始化/配置后-(如果您寻求4个 PWM 输出、则需要2个)-动态变化可通过"PWM 中断"轻松适应-该中断可保持脉宽的动态变化-直到"时刻正确"。    (您已阅读 PDL 详细信息...   特殊的 PWM 功能可控制此类"智能更新"。)

    您的10秒"光亮周期"需要一个专用于该10秒周期的计时器-并且能够"启用然后启动适当的 PWM 发生器和 PWM 输出"。   请注意、"10秒"可能(很容易)溢出任何标准计时器-您必须使用"宽计时器"、这证明它更适合(并且仅适合)此类长持续时间任务。   MCU 手册根据各种系统时钟频率记录"定时器范围"。

    400个时钟节拍-在"PDP"中再次说明-是 PWM 模块时钟节拍的数量-它可能"等于系统时钟"-或与该频率进行某种分频。   (您可以将系统时钟除以"高达64"(如果我的内存提供...)

    除非您提供的代码是您所生成的(非常)有限的代码快照-您之前表示的"单独工作"-证明(有点)有问题...    (因此、"整合"具有"公司!")

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢帮助伙伴。 是的、我尚未发布该代码、但您在上面的指导消除了我的一些疑虑。 将继续工作、并返回代码并稍后发布!

    谢谢、
    VKT
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你。 您的学习曲线将非常陡峭-但您投入的时间/精力-导致"真正"的理解-而不是"剪切/粘贴"(今天在这里-明天忘记了... 即"假"(极短期学习)必然会为您付出长期代价。    (如果您在这里的追求超出了"学校要求"-强迫您-再也不会被认真考虑...)

    同样、MCU 手册、示例\外设(包含在 API 代码列表中)以及认真(缓慢)地阅读"PDP"将使"不可理解"变得更少-并且在时间上会给您带来极大的信心和能力。

    请允许我建议您通过采用"kiss"来"最好地学习"。    这限制了您对"任何尝试(您现在的说法)"集成"的学习、而不是一次针对一个小的、有重点的和"可衡量的"任务。

    只有当所有这些小得多的任务(组成任务-如果您愿意)都"经过衡量和实现"时、您才应考虑"仅将项目的两个部分结合起来"。    这是(仅限于)这种"渐进和受控集成方法"(符合 kiss 指导原则)、以及最佳的"速度、简化和增强"您的个人理解、从而使您的项目取得成功...