尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

STM32F103C6T6引脚完全攻略:从数据手册到GPIO配置

发布时间:2026/9/28 1:53:40

资讯中心
01
ARTICLE

STM32F103C6T6引脚完全攻略:从数据手册到GPIO配置

STM32F103C6T6引脚完全攻略:从数据手册到GPIO配置
做嵌入式这些年我发现自己拿到一块新板子第一件事永远不是急着写代码而是先对着芯片数引脚。尤其是STM32F103C6T6这种48脚小封装引脚又密、功能又杂光靠死记根本记不住。写这篇博文就是为了帮你把引脚功能这件事一次性理清楚——从数据手册里的引脚图纸到原理图设计再到代码里的GPIO配置一条线走完。无论你是准备用这颗芯片画自己的第一块板子还是手里正好有一块C6T6最小系统板不知道如何下手这篇文章都能给你一份可以直接照着做的参考。先说我对这颗芯片的总体评价STM32F103C6T6属于F103增强型系列Cortex-M3内核最高72MHzFlash只有32KBSRAM也只有10KB放在今天看确实不算大。可它的外设麻雀虽小五脏俱全USART、SPI、I2C、ADC、定时器、USB、CAN都带再加上LQFP48小封装、价格便宜在消费电子、小家电控制、传感器采集节点里出现频率非常高。很多人拿它当C8T6的省钱平替思路没问题但前提是你得先搞清楚两者的差异以及这48个引脚里到底哪些能随便用、哪些带着限制。1. 先搞清楚F103C6T6到底是个什么芯片1.1 型号命名拆解每个字符都有讲究芯片型号不是随便起的STM32F103C6T6这一长串每一个字段都对应明确的参数。很多新手直接忽略命名规则结果买回来发现封装不对、Flash不够用这是最冤的选型事故。STM32意法半导体32位微控制器产品线。F通用型系列与之相对的有L系列低功耗、H系列高性能等。103增强型代表着Cortex-M3内核、72MHz主频、大容量外设集。C引脚数对应48引脚。这里是个关键字母B代表128脚、C代表48脚、R代表64脚、V代表100脚。6Flash容量代称对应32KB。如果这里写的是8就是64KB Flash也就是大家更熟悉的C8T6。T封装形式LQFP。6温度等级-40℃到85℃的工业级。连起来就是意法半导体通用型增强版、48引脚、32KB Flash、LQFP封装、工业级温度的Cortex-M3单片机。把这个命名规则记牢以后看到同系列任何型号基本能一眼判断出大概配置。1.2 C6T6和C8T6的区别选型别只看价格C6T6和C8T6可以说是兄弟型号LQFP48封装下引脚完全兼容电路图可以直接通用芯片也能pin-to-pin替换。很多量产项目为了省几毛钱成本会从C8T6降到C6T6这件事本身可行但要注意两个差别。第一是Flash从64KB减到32KBSRAM从20KB减到10KB。如果你的固件里塞了字库、图片、协议栈或者开了大量全局缓冲区很容易爆容量。第二虽然两者外设基本相同但C6T6的Flash页大小不同写Flash时要额外注意页擦除粒度。我见过有人把C8T6工程原封不动烧进C6T6编译器报out of region改了半天才知道是Flash不够这种问题在选型阶段就该用代码量估算提前避免。1.3 真正要花时间看的两份文档引脚功能这块很多信息网上二手博客写得不全甚至写错最靠谱的永远是官方文档。我强烈建议你收藏两份不用背但要知道去哪里翻数据手册DatasheetSTM32F103x6的数据手册文档号DS5319。重点看第3章引脚排列图、第4章引脚定义表、第5章电气特性尤其是FT5V容忍标记和引脚电流限制。参考手册Reference ManualRM0008内容比数据手册厚得多重点看第7章GPIO、第8章AFIO重映射、第9章之后的外设章节。我的习惯是画原理图时查数据手册写驱动时查参考手册。两条腿走路基本不会踩坑。第二手资料只能用来快速上手遇到疑难杂症还是得回归官方原文。2. 48脚引脚分布从图纸上认全每一只脚2.1 引脚整体分布规律STM32F103C6T6采用LQFP48封装四边各12个引脚以芯片上的圆点或缺口作为第1脚标记逆时针方向依次编号。这个封装特别适合手工焊接也适合两层板布线对DIY玩家很友好。先看整体分区芯片四周分布着3组VDD/VSS电源引脚左上角有VBAT右侧靠下有模拟电源VDDA/VSSA左下区域集中了系统控制引脚NRST、BOOT0、OSC_IN/OSC_OUT其余大多是GPIO。对外设来说PA、PB两个GPIO端口基本完整引出PC端口只引出了PC13、PC14、PC15三个引脚PD端口只引出了PD0、PD1两个引脚。这一点非常重要PC6到PC12、PD2以上的引脚在48脚封装里根本没有引出哪怕芯片内部有这些外设通道你也连不到外部。比如TIM3重映射到PC6到PC9在C6T6上就不可用选重映射方案之前一定要先确认引脚有没有被封装“砍掉”。2.2 供电、复位、启动、时钟最小系统的命脉这组引脚决定芯片能不能正常跑起来很多人一上来就盯着PA、PB写程序结果最小系统没搭对板子完全不启动查了半天才发现是BOOT0没处理这类问题我见得太多了。VDD/VSS共3组引脚23/24、35/36、47/48。每一组VDD都要就近放一个100nF去耦电容到VSS这是硬性要求。PCB上如果空间紧张至少保证这3个电容贴着引脚放不能图省事只放一个。VDDA/VSSA引脚8/9。模拟电路和ADC的供电必须接3.3V和GND。使用ADC时VDDA要尽量干净我习惯从3.3V电源串一个磁珠再加一个1uF电容滤波。如果不用ADC也绝对不能悬空。VBAT引脚1备份域供电。没有外部电池时直接接3.3V它内部有电源切换电路不会和VDD打架。NRST引脚7复位输入低电平有效。标准做法是接10kΩ上拉到3.3V再接100nF电容到地这样上电自动复位按键复位也只需要把NRST对地短路一下。BOOT0引脚44启动模式选择。正常运行时必须接10kΩ下拉到地保证从Flash启动。需要串口ISP下载时把它拉高后上电芯片会进入系统存储器里的Bootloader。PB2BOOT1这个引脚有个隐藏身份。复位瞬间PB2会作为BOOT1被采样和BOOT0一起决定启动区域。因为BOOT11且BOOT01时是从SRAM启动如果你的PB2外接了一个上电瞬间为高电平的设备可能导致启动异常。设计时要么保证PB2在复位时为低要么接受这个风险并做好预案。功能复位后PB2就是普通IO不带任何复用功能。时钟部分PD0和PD1对应OSC_IN和OSC_OUT接8MHz晶振时还要配两个负载电容典型值20pF左右具体看晶振手册。PC14和PC15则对应OSC32_IN和OSC32_OUT接32.768kHz低速晶振给RTC用。如果不接低速晶振PC13、PC14、PC15可以勉强当普通IO用但PC13到PC15内部结构和普通GPIO不一样翻转速度慢很多输出能力也弱不适合做PWM或高频率信号。2.3 48脚引脚速查表下面这张表我把实际使用时最常关注的引脚信息和关键复用功能列出来了。完整到每个AF映射确实太长了数据手册Table 7才是最终权威这张表是给你画原理图和写驱动时快速对数的。引脚编号引脚名称默认功能关键复用/备注1VBAT备份供电不用时接3.3V2PC13TAMPER-RTC普通IO速度受限3PC14OSC32_IN可作IO负载能力弱4PC15OSC32_OUT可作IO负载能力弱5PD0OSC_IN接8MHz晶振6PD1OSC_OUT接8MHz晶振7NRST复位10k上拉100nF到地8VSSA模拟地必须接GND9VDDA模拟电源3.3V建议磁珠滤波10PA0WKUPADC12_IN0/TIM2_CH1无FT11PA1IOADC12_IN1/TIM2_CH212PA2IOUSART2_TX/ADC12_IN2/TIM2_CH313PA3IOUSART2_RX/ADC12_IN3/TIM2_CH414PA4IOSPI1_NSS/ADC12_IN415PA5IOSPI1_SCK/ADC12_IN516PA6IOSPI1_MISO/ADC12_IN6/TIM3_CH117PA7IOSPI1_MOSI/ADC12_IN7/TIM3_CH218PB0IOADC12_IN8/TIM3_CH3无FT19PB1IOADC12_IN9/TIM3_CH4无FT20PB2IO复位时采样为BOOT121PB10IOI2C2_SCL/USART3_TX22PB11IOI2C2_SDA/USART3_RX23VSS_1地每组电源都必须接24VDD_1电源配100nF去耦电容25PB12IOSPI2_NSS/USART3_CK26PB13IOSPI2_SCK/USART3_CTS27PB14IOSPI2_MISO/USART3_RTS28PB15IOSPI2_MOSI29PA8IOMCO/TIM1_CH130PA9IOUSART1_TX/TIM1_CH2FT31PA10IOUSART1_RX/TIM1_CH3FT32PA11IOUSB_DM/CAN_RX/TIM1_CH4FT33PA12IOUSB_DP/CAN_TX/TIM1_ETRFT34PA13SWDIO调试口默认JTMS35VSS_2地必须接GND36VDD_2电源配100nF去耦电容37PA14SWCLK调试口默认JTCK38PA15JTDI重映射后作TIM2_CH1/SPI1_NSS39PB3JTDO重映射后作TIM2_CH2/SPI1_SCK40PB4NJTRST重映射后作TIM3_CH1/SPI1_MISO41PB5IOI2C1_SMBA/TIM3_CH2重映射/SPI1_MOSI重映射42PB6IOI2C1_SCL/TIM4_CH1/USART1_TX重映射43PB7IOI2C1_SDA/TIM4_CH2/USART1_RX重映射44BOOT0启动选择正常运行时接10k下拉45PB8IOI2C1_SCL重映射/TIM4_CH3/CAN_RX重映射46PB9IOI2C1_SDA重映射/TIM4_CH4/CAN_TX重映射47VSS_3地必须接GND48VDD_3电源配100nF去耦电容2.4 常用外设的引脚映射关系画原理图之前先把要用到的外设引脚分配清楚这是最省时间的一步。C6T6的常用外设接口集中在PA和PB两组端口上USART1默认PA9(TX)/PA10(RX)可以重映射到PB6(TX)/PB7(RX)。USART2PA2(TX)/PA3(RX)。USART3PB10(TX)/PB11(RX)。想重映射到PC10/PC11的话C6T6上不可用因为PC10没引出。SPI1PA5(SCK)/PA6(MISO)/PA7(MOSI)NSS可以用PA4也可以用普通IO软件控制。重映射可到PB3/PB4/PB5但要小心和调试口冲突。I2C1PB6(SCL)/PB7(SDA)可以重映射到PB8/PB9。注意F103的I2C硬件存在一些争议很多人宁愿用GPIO模拟。CAN和USB共用PA11/PA12CAN_RX/PA11和USB_DM/PA11CAN_TX/PA12和USB_DP/PA12二者不能同时使用。一个常用的经验做法优先把下载口SWD、串口调试口、晶振这些“系统资源”钉死剩下的IO再分配给具体功能。我自己的分配习惯是PA9/PA10固定留给串口日志SWD固定用PA13/PA14其他外设按功能错开引脚能避免后期大量改板。3. 从图纸到代码GPIO配置实战3.1 画原理图时最容易犯的引脚错误原理图阶段踩过坑后面打样回来全是泪。我总结了几个高频错误你们画图时直接对照检查。第一个是去耦电容摆放。理论上每个VDD脚都要一个100nF但有人为了布线方便把所有电容堆在一起这样高频噪声抑制效果大打折扣。正确做法是电容靠近对应VDD引脚走线先过电容再到芯片形成最小回路。第二个是BOOT0悬空。CMOS输入悬空是灾难内部电平不确定可能导致芯片启动模式随机。一定要加下拉电阻10kΩ到10kΩ都可以。第三个是忽略PB2的BOOT1采样问题。前面说过复位瞬间PB2的电平会被锁存。所以如果PB2接了外部设备要确认这个设备在复位期间不会输出高电平否则芯片会跑到SRAM启动程序完全不跑。第四个是VDDA处理不当。有些人为了省事把VDDA直接空着结果用ADC时读数完全乱跳或者芯片直接不工作。VDDA和VSSA必须接不要省。3.2 GPIO的八种模式什么时候选哪一种F103的GPIO比后来的很多单片机要复杂因为它的每个引脚有八种模式可选。理解这些模式其实可以用一个简单框架来记输入还是输出加上有没有内部电阻或复用功能。浮空输入引脚高阻不用内部上下拉。适用于外部已经确定电平的总线比如USART的RX脚。上拉输入内部接一个弱上拉电阻。适合按键、编码器这类默认高电平、动作时拉低的信号。下拉输入内部接一个弱下拉电阻适合默认低电平、动作时拉高的信号。模拟输入信号不经过施密特触发器直接进模拟外设。配置ADC通道时必选。推挽输出可以强输出高电平和低电平。驱动LED、控制电平信号最常用。开漏输出只能主动拉低输出高时靠外部上拉电阻。I2C总线就是这个结构。复用推挽输出引脚交给片内外设比如USART_TX、PWM输出都选这个。复用开漏输出外设接口需要开漏结构时使用典型就是I2C的SCL/SDA引脚。选错模式的典型问题LED怎么都点不亮可能是选成了开漏输出且没加上拉按键一直读到高电平可能是应该用上拉输入却选了浮空I2C死活不通可能是把SCL设成了推挽输出导致总线被强拉设备地址应答异常。3.3 LED加按键第一个引脚配置项目纸上谈兵再多不如跑一个最基础的项目。我这里以板载按键接PC13、LED接PA1为例用标准库演示GPIO的完整配置流程。使用HAL库的读者也能对照理解本质流程是一样的。先看LED输出。PA1配置为推挽输出速度选10MHz或者50MHz都可以LED这种慢信号10MHz足够还能减少一点EMIvoid LED_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed GPIO_Speed_10MHz; GPIO_Init(GPIOA, GPIO_InitStructure); }再看按键输入。PC13配置为上拉输入按键另一端接地按下时读回低电平void KEY_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode GPIO_Mode_IPU; GPIO_Init(GPIOC, GPIO_InitStructure); }主程序里循环判断按键状态按下就点亮LED松开就熄灭int main(void) { LED_GPIO_Init(); KEY_GPIO_Init(); while (1) { if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) RESET) { GPIO_SetBits(GPIOA, GPIO_Pin_1); } else { GPIO_ResetBits(GPIOA, GPIO_Pin_1); } } }这个例子虽然简单但已经把“时钟使能—配置模式—读输入/写输出”这条GPIO主链路走完了。后面接传感器、接屏幕无非是把模式换成模拟输入、复用推挽或者加上一个外部中断。3.4 串口等复用功能的配置方法GPIO做普通输入输出只是起点真正体现引脚功能复杂度的是复用功能配置。拿USART1来举例PA9作为TX要配置为复用推挽输出PA10作为RX要配置为浮空输入然后才能初始化串口外设。void USART1_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; GPIO_Init(GPIOA, GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, GPIO_InitStructure); } void USART1_Init(void) { USART_InitTypeDef USART_InitStructure; USART1_GPIO_Config(); USART_InitStructure.USART_BaudRate 115200; USART_InitStructure.USART_WordLength USART_WordLength_8b; USART_InitStructure.USART_StopBits USART_StopBits_1; USART_InitStructure.USART_Parity USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, USART_InitStructure); USART_Cmd(USART1, ENABLE); }一个重要细节USART1挂在APB2总线上所以时钟使能函数用的是RCC_APB2PeriphClockCmd。而USART2和USART3挂在APB1总线上要用RCC_APB1PeriphClockCmd。这两个总线的最高频率不同APB1最高36MHzAPB2最高72MHz配置波特率时如果时钟开错了串口输出会变成乱码。这种问题极其常见而且很难查我自己的排查习惯是第一步就检查外设时钟挂在哪条总线上。如果要用USART1重映射到PB6/PB7需要额外开启AFIO时钟然后调用GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE)。核心思想就是引脚功能不是死的很多引脚支持重映射但具体哪些能映射到哪还是要回到数据手册的AFIO章节去查。4. 引脚实操避坑这些坑我替你踩过了4.1 下载口突然失灵的恢复全过程这是新手最容易遇到的“灵异事件”第一次还能下载程序第二次重新上电后Keil和ST-Link都找不到芯片。原因多半是程序里把PA13或者PA14重新初始化成普通GPIO了直接废掉了SWD调试口。恢复的办法不复杂把BOOT0拉高上电进入串口ISP模式用串口线连接USART1的PA9、PA10通过FlyMcu或者STM32CubeProgrammer把Flash擦除。擦除后BOOT0拉回低电平复位ST-Link就又能连上了。之后写代码时不要轻易把PA13/PA14配置成普通IO。更好的做法是如果JTAG干扰到你的设计可以只禁用JTAG而保留SWDGPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);这样PA15、PB3、PB4可以作为GPIO使用而PA13和PA14仍然保留SWD功能既解放了引脚又不影响后续调试。4.2 5V容忍度的红线别烧芯片F103的部分引脚标有FT5V tolerant标记可以直接承受5V电平但并非所有引脚都支持。数据手册的引脚定义表里FT列写得很清楚。以C6T6为例PA0到PA7、PB0、PB1这几个脚通常不是5V容忍的尤其是PA0和PB0、PB1它们经常被用作ADC输入。如果你把5V传感器输出直接接到PA0上轻则ADC读数错误重则烧毁引脚甚至芯片。而PA9、PA10、PB10、PB11这些FT引脚可以直接和5V逻辑的TTL设备通信比如某些5V供电的串口模块。需要特别提醒的是5V容忍并不代表这个引脚可以承受5V电源持续灌入电流。FT引脚接5V时仍然需要串电阻限流尤其是驱动外部设备时。我习惯在5V逻辑接口上加串联电阻既能限流又能消除部分反射一举两得。4.3 引脚冲突速查USB、CAN、I2C、SPI引脚冲突是项目里最容易潜伏的“雷”。以下这张表是我遇到过的典型冲突场景画原理图时直接对照冲突场景原因解决办法USB和CAN同时用PA11/PA12被USB和CAN复用只能二选一或换更大封装芯片调试口占用SPI1重映射SPI1重映射到PB3/PB4与JTAG口冲突禁用JTAG或用默认的PA5/PA6/PA7I2C1默认引脚和TIM4冲突PB6/PB7被I2C1和TIM4共用确认时序不可同时开启两个外设USART1重映射到PB6/PB7和I2C1冲突重映射引脚被别人占着重映射前先查引脚的完整占用PC13做PWMPC13内部结构特殊翻转慢换成普通PA/PB引脚我自己的原则是一个引脚只干一件事哪怕外设支持复用也不要为了省引脚把两个重要功能挤在一起。后期调试冲突的成本远比多花几颗芯片的成本高。4.4 常见引脚问题排查表开发中遇到引脚相关故障多数问题都可以从下面几个维度快速定位现象可能原因排查方向引脚输出电平不对GPIO模式配错或时钟没开检查模式寄存器、RCC时钟门引脚输入一直为高内部上拉未关闭外部拉低不够强换下拉输入或检查外部电路芯片发烫电流异常引脚短路或输出模式驱动过大负载拆掉负载量引脚对地阻值ADC读数跳动VDDA噪声过大或通道引脚悬空检查VDDA滤波确认信号源阻抗USART乱码时钟总线开错、波特率配置不符查APB1/APB2总线查晶振频率下载后无法再次连接调试口被程序占用BOOT0拉高进ISP擦除排查思路最重要的一点是不要凭感觉改代码先用万用表和示波器确认引脚电平、波形再看寄存器配置。硬件现象能帮你排除掉一半软件猜测。5. 完整实例用C6T6做一个温湿度采集小模块5.1 硬件分配方案实操才是检验理解的唯一标准。我用C6T6搭一个温湿度采集模块带OLED显示和串口调试完整走一遍引脚分配到软件实现。硬件配置如下功能引脚模式说明SWD下载PA13/PA14默认调试口保留USART1调试PA9(TX)/PA10(RX)AF_PP/浮空输入串口打印日志DHT11温湿度PA1推挽输出切换输入单总线协议I2C OLEDPB6(SCL)/PB7(SDA)复用开漏SSD1306驱动板载LEDPC13推挽输出状态指示按键PA0上拉输入手动刷新读取这套方案的特点是每个功能各占各的引脚没有冲突。DHT11放在PA1而不用PA0是因为PA0同时兼职WKUP和ADC给后续扩展留余地。PB6/PB7虽然默认也可以用于USART1重映射但这里只作为I2C使用不会有冲突。5.2 软件实现要点DHT11是单总线器件数据引脚需要既能够输出又能输入。标准库下需要频繁切换GPIO模式我的做法是封装两个宏#define DHT11_OUT() { GPIOA-CRL ~GPIO_CRL_CNF1; GPIOA-CRL | (0 4); } #define DHT11_IN() { GPIOA-CRL ~GPIO_CRL_CNF1; GPIOA-CRL | (1 4); }这里用寄存器操作直接切换PA1的模式比反复调用库函数更高效。时序上DHT11的起始信号、响应信号、40位数据位都要严格按时序读取读取时要注意关闭中断防止其他任务干扰时序。OLED使用I2C协议配置PB6/PB7为复用开漏输出外部上拉到3.3V。SSD1306的I2C地址常见是0x3C或0x3D具体看模块背面的电阻配置。这里有个小坑I2C初始化后如果OLED没接读写会卡死在忙等待里所以代码里要加超时判断。串口就是前面代码里的USART1初始化之后用printf重定向到串口int fputc(int ch, FILE *f) { USART_SendData(USART1, (uint8_t)ch); while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) RESET); return ch; }这样调试信息可以实时看到温湿度数据。整个数据流就是按键触发读取DHT11数据在OLED上显示同时通过串口打印。5.3 调试过程中的两个小教训这个项目调试时我踩了两个很典型的坑分享出来帮你们省时间。第一个是DHT11的响应不稳定。现象是偶尔读一次能成功连续读几次就超时。排查了很久最后发现是DHT11数据线上缺少上拉电阻。用GPIO模拟单总线时器件需要外部上拉才能保证信号边沿够陡。补了一个4.7kΩ上拉到3.3V后问题消失。之前我一直依赖内部上拉强度不够边缘时间太长时序就乱了。第二个是OLED的SDA/SCL接反。这个属于纯低级错误但相当普遍。焊接或者插杜邦线的时候特别容易把SCL和SDA对调。现象是I2C地址扫描不到设备。排查时用逻辑分析仪看了波形才发现SCL/SDA反了。换过来之后一切正常。所以画板子时把丝印标清楚接线时多看一眼能省下一整晚的调试时间。最后分享一点个人体会C6T6这颗芯片我用了不少项目最大的感受是它的引脚说多不多、说少不少关键看你怎么规划。很多人画完板子才发现USB和CAN打架、调试口被占用、PC13翻不动速度快不了都是因为前期没有花时间把引脚表吃透。我现在的习惯是每接一个新项目先做一张“引脚占用与功能分配表”把所有外设映射、重映射、电压容忍度全部列清楚再进行原理图绘制。这张表前后可能只花半小时但能避免至少一周的返工痛苦。如果你正在用C6T6做板子强烈建议你也试试这个方法。工欲善其事必先利其器芯片手册就是那把最值得磨的刀。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。