news 2026/9/4 14:01:55

TMS320C6748的初始化与STM32做个类比

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TMS320C6748的初始化与STM32做个类比

TMS320C6748 (DSP)

void UARTConsoleInit(void) { // 1. 使能时钟和电源 PSCModuleControl(SOC_PSC_1_REGS, 13, 0, PSC_MDCTL_NEXT_ENABLE); // 2. 配置引脚复用 UARTPinMuxSetup(2, FALSE); // 3. 配置UART参数 UARTStdioInitExpClk(BAUD_115200, UART_RX_TRIG_LEVEL_1); }

STM32 (Cortex-M)

void USART2_Init(void) { // 1. 使能时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); // UART时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); // GPIO时钟 // 2. 配置引脚复用 GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2); // TX GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2); // RX GPIO_Init(GPIOA, &GPIO_InitStructure); // 3. 配置UART参数 USART_Init(USART2, &USART_InitStructure); // 115200, 8N1 USART_Cmd(USART2, ENABLE); }

详细类比表格

功能模块TMS320C6748STM32说明
时钟/电源管理PSC (Power and Sleep Controller)RCC (Reset and Clock Control)C6748的PSC集成了电源和时钟,STM32分开管理
使能外设时钟PSCModuleControl(SOC_PSC_1_REGS, 13, ...)RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ...)两者都必须先使能时钟才能操作外设
引脚复用UARTPinMuxSetup(2, FALSE)GPIO_PinAFConfig()+GPIO_Init()C6748封装得更简洁,STM32需要分步配置
引脚配置内容PINMUX寄存器自动配置手动配置模式/速度/上下拉STM32更灵活但更繁琐
UART参数配置UARTConfigSetExpClk()USART_Init()两者参数类似:波特率/数据位/停止位/校验
FIFO使能UARTFIFOEnable()STM32F4/F7有FIFO,F1没有C6748明确使能FIFO,提高效率
使能UARTUARTEnable()USART_Cmd(ENABLE)最后一步都是使能外设

核心概念对应关系

1.电源和时钟系统

TMS320C6748: PSC (Power and Sleep Controller) ├── PSC0 → 管理部分外设 (如 UART0) └── PSC1 → 管理部分外设 (如 UART1/UART2) └── 模块13 = UART2 STM32: RCC (Reset and Clock Control) ├── AHB1/AHB2 → 高速总线 (GPIO) ├── APB1 → 低速总线 (USART2/3/4/5) └── APB2 → 高速总线 (USART1/6)

类比:

  • C6748的PSCModuleControl()≈ STM32的RCC_APBxPeriphClockCmd()
  • 两者都是"开闸放水",让外设获得时钟才能工作

2.引脚复用 (Pin Mux)

TMS320C6748: 每个引脚可复用多种功能,通过 PINMUX 寄存器选择 UARTPinMuxSetup(2, FALSE) → 自动配置 UART2_TX/RX 引脚 STM32: 每个引脚可复用为 AF0~AF15 功能 GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2)

类比:

  • C6748的函数封装得更高层
  • STM32需要手动指定每个引脚的复用功能编号

3.条件编译切换 UART 实例

C6748 的这段代码:

#if (0 == UART_STDIO_INSTANCE) PSCModuleControl(SOC_PSC_0_REGS, 9, ...); // UART0 #elif (1 == UART_STDIO_INSTANCE) PSCModuleControl(SOC_PSC_1_REGS, 12, ...); // UART1 #else PSCModuleControl(SOC_PSC_1_REGS, 13, ...); // UART2 #endif

等价于 STM32 中:

#ifdef USE_USART1 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); #elif defined(USE_USART2) RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); #elif defined(USE_USART3) RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); #endif

关键差异总结

特性TMS320C6748STM32
架构定位高性能浮点 DSP通用 ARM Cortex-M
时钟管理PSC 统一管理电源+时钟RCC 只管时钟,电源单独管理
代码风格驱动库封装较深HAL/标准库层次清晰
引脚配置一个函数搞定需要配置多个结构体
FIFO硬件自带,需显式使能部分型号支持

记忆要点

把 C6748 的初始化想象成 STM32 的"三部曲":

  1. "开电闸"→ PSCModuleControl ≈ RCC 使能时钟
  2. "接线路"→ UARTPinMuxSetup ≈ GPIO 复用配置
  3. "调参数"→ UARTStdioInitExpClk ≈ USART_Init + USART_Cmd

只是 C6748 把这些步骤封装得更简洁,而 STM32 更加"手把手"地让你配置每个细节。本质上做的事情完全一样!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 0:03:12

新药发现、疫苗设计、精准医疗大模型 PaddleHelix(中文名“螺旋桨”)是百度基于飞桨(PaddlePaddle)深度学习框架开源的**生物计算平台**,把 AI 能力打包成一套“即插即用”的工

PaddleHelix(中文名“螺旋桨”)是百度基于飞桨(PaddlePaddle)深度学习框架开源的生物计算平台,把 AI 能力打包成一套“即插即用”的工具集,主要服务新药发现、疫苗设计、精准医疗三大场景。 一句话理解&…

作者头像 李华
网站建设 2026/9/2 20:19:21

终极免费PS3模拟器RPCS3:告别手动升级的完整配置方案

终极免费PS3模拟器RPCS3:告别手动升级的完整配置方案 【免费下载链接】rpcs3 PS3 emulator/debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 还在为PS3模拟器的繁琐更新而烦恼吗?RPCS3作为目前最强大的免费PlayStation 3模拟器…

作者头像 李华
网站建设 2026/9/2 21:47:01

如何快速使用OpenAI Whisper:语音转文本完整使用指南

如何快速使用OpenAI Whisper:语音转文本完整使用指南 【免费下载链接】whisper-base.en 项目地址: https://ai.gitcode.com/hf_mirrors/openai/whisper-base.en 想要将语音内容快速转换为可编辑的文字吗?OpenAI Whisper作为当前最先进的语音识别…

作者头像 李华
网站建设 2026/9/2 18:05:41

C++库链接策略终极指南:5分钟掌握项目部署的核心抉择

C库链接策略终极指南:5分钟掌握项目部署的核心抉择 【免费下载链接】stb stb single-file public domain libraries for C/C 项目地址: https://gitcode.com/gh_mirrors/st/stb 还在为C项目部署时频繁出现的"未定义符号"错误而苦恼吗?面…

作者头像 李华
网站建设 2026/9/4 0:51:11

别让 AI 替你「假装读完」:我如何用「做幻灯」倒逼论文精读?

痛点读论文这件事,最大的谎言大概就是「我读完了」。其实很多时候,你只是「翻过了」。当你把 PDF 关掉,脑子里往往只剩下一堆模糊的关键词:Transformer、扩散模型、泛化能力…… 但如果我追问一句:「这篇论文的核心冲突…

作者头像 李华
网站建设 2026/9/2 21:46:53

Fashion-MNIST完全攻略:10个步骤从新手到专家的深度学习之旅

Fashion-MNIST完全攻略:10个步骤从新手到专家的深度学习之旅 【免费下载链接】fashion-mnist fashion-mnist - 提供了一个替代MNIST的时尚产品图片数据集,用于机器学习算法的基准测试。 项目地址: https://gitcode.com/gh_mirrors/fa/fashion-mnist …

作者头像 李华