【问题标题】:CCS PIC18f252 UART module remappedCCS PIC18f252 UART 模块重新映射
【发布时间】:2021-01-10 16:52:15
【问题描述】:

我完成了一个涉及 PIC18F252 的项目。代码是用 CCS 编译的,我只是将它迁移到 MPLAB。 PIC 有 1 个 UART 模块,其 TX 和 RX 引脚分别为 RC6 和 RC7。我不是微芯片专家,但我对它们做了一些工作,并且在发布这个问题之前已经上网查看了。

原来的代码是用的

#use rs232(baud=9600,xmit=PIN_B5,rcv=PIN_B4,restart_wdt)

据我所知,PIC 不允许重新映射。
那怎么可能呢?
CCS 在“幕后”做什么?
那么UART的管脚是RB4和RB5吗?

【问题讨论】:

  • CCS 使用自己的库来设置 UART,使用 #use rs232(baud=9600,xmit=PIN_B5,rcv=PIN_B4,restart_wdt)。这些是 CCS IDE 的特定定义,在其他定义中找不到完全相同的定义。在 MPLAB 中,您必须全部完成,因为 MPLAB 没有库。它有一个名为 MPLAB 代码配置器 (MCC) 的工具,它提供了一个接口来简化芯片和外设设置并生成外设驱动程序代码。但不幸的是,它不支持 PIC18F252,因为它是一个旧芯片。结论,你必须从头开始编写 UART 驱动代码。
  • 谢谢!我想我最好只是升级图片。谢谢。
  • 是的,请使用更新的产品,例如 PIC18(L)FxxKxx 或 PIC18(L)FxxJxx 或 PIC18(L)FxxQxx。 MCC 对它们进行了改进和支持。
  • 好的,谢谢,顺便说一句,我没有找到将该线程设置为“已解决”的标志...

标签: uart pic


【解决方案1】:

这个:

#use rs232(baud=9600,xmit=PIN_B5,rcv=PIN_B4,restart_wdt)

是 CCS 编译器的扩展,用于将一些配置数据写入 UART 模块的配置寄存器(例如波特率),不能与 xc8 编译器一起使用。查看您的数据表如何设置 UART 模块。

【讨论】:

  • 您好,感谢您的意见。是的,我明白了,但我想知道 CCS 在其库中做了什么,以便能够使用与 MSSP 专用引脚不同的引脚。正如 Kozmotronik 提到的,我认为 CCS 只是做 UART 驱动程序会做的事情,但使用任何引脚(按顺序切换引脚和位等)。因此,如果我想在 xc8 中使用类似的库,我将不得不编写一个可以接受任何引脚的驱动程序,并使它们像 TX/RX 一样工作,这很痛苦。所以在我的情况下,升级 PIC 是一个更容易和持久的解决方案。
  • 如果 CCS 使用的引脚与数据表中提到的不同(RC4 和 RC5),它们将使用软件 UART 而不是控制器中包含的模块。
猜你喜欢
  • 1970-01-01
  • 2013-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
  • 2016-12-20
  • 2019-09-29
相关资源
最近更新 更多