Part Number:CC2652ROther Parts Discussed in Thread:SYSCONFIG, , SIMPLELINK-CC13XX-CC26XX-SDK
硬件平台:CC26x2R LaunchPad development kit
SDK版本:simplelink_cc13xx_cc26xx_sdk_7_10_02_23
IDE: Code Composer Studio
导入的工程:simple_peripheral
问题:我在分析打印log的UART初始化,想看一下UART是怎么初始化的,代码分析到下图所示的部分,其中 DisplayUartMin_fxnTable 这个变量找不到定义,全局搜索也没有搜到。
Yolande Wang:
您好,
看到您用 VS Code 打开了 simple_peripheral 工程,图片中打开的是 CC2640R2_LAUNCHXL 板文件,这是 IDE 配置链接的库文件。
请参阅以下链接,SimpleLink MCU SDK Driver API Reference:
https://dev.ti.com/tirex/explore/content/simplelink_cc13xx_cc26xx_sdk_7_10_02_23/docs/drivers/doxygen/html/index.html#display
我会再确认一下这个变量的定义,有进展回复您。
,
Yolande Wang:
您好,
您截图里面 CC26X2R1_LAUNCHXL.c 中的 Display_config 实际上没被调用,真正调用的是 SysConfig 生成的 ti_drivers_config.c 中的 Display_config 。
ti_drivers_config.c里面是:
const Display_Config Display_config[CONFIG_Display_COUNT] = {/* CONFIG_Display_UART *//* XDS110 UART */{.fxnTablePtr = &DisplayUart2Min_fxnTable,.object= &displayUart2Object,.hwAttrs= &displayUart2HWAttrs}, };CC26X2R1_LAUNCHXL.c 这个文件是旧版的,有 SysConfig 之后这个文件已经不用了。
旧版的 UART driver 略有不同。
所以变量名不一样。
,
user4952053:
好的,非常感谢您的回答,但是又有一个新的疑问,DisplayUart2Min_fxnTable 这个变量是在哪里定义又是在哪里初始化的呢?我想看到实际初始化配置UART的那部分代码。
全局搜索只找到了一个声明:
extern const Display_FxnTable DisplayUart2Min_fxnTable; extern const Display_FxnTable DisplayUart2Ansi_fxnTable;
,
Yolande Wang:
user4952053 说:DisplayUart2Min_fxnTable 这个变量是在哪里定义又是在哪里初始化的呢?
这个变量 DisplayUart2Min_fxnTable 是直接在 SysConfig 定义且生成的。
user4952053 说:我想看到实际初始化配置UART的那部分代码。
驱动程序配置文件包含TI 驱动程序在运行时所需的所有 driver configurations 。SysConfig 工具用于自动生成 TI-Driver 的配置文件。目前为 TI 驱动程序生成两个文件:
ti_drivers_config.c
ti_drivers_config.h请参阅 DisplayUart2.h File Reference ,里面有个 Usage Example,希望能够帮助到您。
,
user4952053:
好的,非常感谢,我看芯片datasheet上描述有两个UART可用,但看了Driver里的代码,好像只有UART2的驱动,且被用作打印log 了,现在我想使用另一个UART跟其它MCU通信,我该怎么配置,也参考这个吗?
Yolande Wang 说:请参阅 DisplayUart2.h File Reference ,里面有个 Usage Example,希望能够帮助到您。
,
Yolande Wang:
您好,
要添加多个 UART,您需要添加第二个 UART 模块,选择所需的 TX 和 RX 引脚,然后添加相关逻辑以在应用程序中启用第二个 UART。
在 CC2652R 上,任何 GPIO 都可以用作 UART 引脚。
请参阅该部件的数据表或技术参考手册的 21 章节 :
直接从 sysconfig 添加 2 个 UART,配置这两个 UART 的引脚,DMA 通道应该是 0 和 1,您可以在 sysconfig 中的生成文件更改。
另外Release Notes中有提到,在 SIMPLELINK-CC13XX-CC26XX-SDK v6.20 中,UART TI 驱动程序已被弃用并被 UART2 取代。
您可以参考一下资料:
BLE5-Stack Migration Guide 里面的 UART to UART2 Porting Guide
TI Drivers Runtime APIs希望能够帮助到您。
,
user4952053:
好的,谢谢,看了之后DMA还是不知道怎么配置,请问有demon工程可以参考吗
,
Yolande Wang:
您可以参考导入的 simple_peripheral 工程。
DMA 配置查看下图即可:
,
user4952053:
你好,感谢您的回复,我按照这个配置,然后编译,好像不起作用,ti_drives_config.c文件内没有任何变化.
,
Yolande Wang:
您好,
是的,我的截图是 simple_peripheral 工程原来的配置。
您需要点击右上角 Add 添加一个新的,根据您的需求进行配置,参考下图:
,
Yolande Wang:
您好,
直接点击 Add ,系统会默认配置 Pin5、Pin6 为 RX TX。
您在 ti_drives_config.c 可以看到添加的代码。
,
user4952053:
谢谢
,
Yolande Wang:
不客气!
,
user4952053:
这里我按照提示配置,只有正常UART的配置,并没有关于DMA的选项,我选择第二个选项又DMA相关的配置,但并不起作用,也没有代码生成
,
Yolande Wang:
是的,如果您只是想增加一个 UART 使用,您按照我下面那个回复中的流程进行操作。
,
user4952053:
我的项目UART需要使用DMA,但是到目前为止我查阅的资料都没有找到DMA怎么配置的
,
Yolande Wang:
不用另外配置 DMA .
现在版本的SDK中UART2 driver已经用了DMA了.
请参阅以下链接:https://dev.ti.com/tirex/explore/content/simplelink_cc13xx_cc26xx_sdk_7_10_02_23/docs/drivers/doxygen/html/_u_a_r_t2_8h.html
,
user4952053:
好的,非常感谢!
,
Yolande Wang:
不客气,欢迎随时来论坛交流!