最近博主用STM32F103C8T6做了一个温度测控模块,用到PB3,PB4,PA15等引脚控制外设。发现不管怎么配置,这三个引脚都不能置零。后来发现是包括这三个引脚在内的PB3,PB4,PA13,PA14,PA15是特殊的IO口,用作JTAG/SWD仿真器的调试接口。其中PA13,PA14分别作为SWD调试的SWIO和SWCLK;PB3,PB4,PA13,PA14,PA15共同用于JTAG。这五个引脚的中英文描述如下图所示,图片来源于STM32F1参考手册:
这五个IO引脚非常特殊,正常情况下作为SWJ仿真器的调试引脚,如果要作为普通IO口使用需要特别的配置。以PA13引脚为例,该引脚在STM32F1数据手册中的描述如下图:
相较与其他的普通IO,PA13的Main function 为JTMS-SWDIO。反而普通IO口的功能在Alternate functions中的remap里。也就是说PA13要想当做普通IO口使用,就必须使用它复用功能中的重映射。因此就需要这样的两步操作:
一.在时钟配置中打开复用时钟: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
二.对PA13引脚进行重映射: GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
步骤一比较好理解,这里重点叙述下步骤二的重映射操作。针对SWJ五个引脚的重映射操作方式在STM32F1参考手册中的中英文描述下图所示:
由上图可知,重映射的方式一共有三种。分别描述如下:
1.GPIO_Remap_SWJ_JTAGDisable: /*!< JTAG-DP Disabled and SW-DP Enabled */ 即能用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试
2.GPIO_Remap_SWJ_Disable: /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */ 5个引脚全为普通引脚,但不能再用JTAG&SWD仿真器调试,只能用st-link调试
3.GPIO_Remap_SWJ_NoJTRST: /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */PB4可为普通IO口,JTAG&SWD正常使用,但JTAG没有复位
如果你用到所有的五个引脚当做普通IO口,那么上述步骤二中的重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); 如果你用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试,则重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 同理可配置只用PB4可为普通IO口的情况。
上一篇:STM32将PB3等IO用作普通IO
下一篇:STM32单片机释放PB3/PB4/PA15作为普通IO口
推荐阅读
史海拾趣
随着公司规模的扩大和业务的增长,Elcos AG面临着供应链管理的挑战。为了降低成本、提高效率和保证产品质量,公司决定对供应链进行优化。通过引入先进的供应链管理软件、加强与供应商的合作和建立严格的质量控制体系等措施,Elcos AG成功实现了供应链的优化和升级。这不仅提高了公司的运营效率和市场竞争力,还为客户提供了更加稳定可靠的产品和服务。
在电子科技日新月异的21世纪初,Elcos AG由一群志同道合的电子工程师创立。他们看到了电子元器件市场中的机遇,决定专注于研发和生产高性能的电子元器件。初始阶段,公司面临着资金紧张、技术挑战和市场认知度低的困境。然而,凭借对技术的执着和对市场的敏锐洞察,Elcos AG逐步攻克了技术难题,并通过与几家小型电子产品制造商的合作,打开了市场的大门。
随着技术的不断进步,Dynastream公司意识到要想在竞争激烈的市场中立足,必须不断创新。因此,公司加大了研发投入,致力于提高产品的性能和稳定性。经过数年的努力,Dynastream成功推出了一款具有革命性意义的产品——一款高精度、低功耗的个人监视传感器。这一产品的推出,不仅让Dynastream在市场上树立了良好的口碑,也为公司未来的发展奠定了坚实的基础。
Bay Linear Inc公司一直注重人才培养和团队建设。公司建立了完善的人才培养和激励机制,吸引了一批批优秀的研发人才和管理人才。同时,公司还积极营造团结协作、创新进取的企业文化,使团队成员能够充分发挥自己的才能和潜力,共同推动公司的发展。
技术创新是德崧电子持续发展的核心动力。公司不断加大研发投入,引进先进的生产设备和技术人才,致力于开发具有竞争力的新产品。通过不断的技术创新,德崧电子在电子开关行业中取得了多项重要成果。例如,公司成功研发出了具有自动感应功能的智能开关,实现了对灯光、温度等环境因素的自动调节。这一技术的推出不仅提高了产品的智能化水平,也为公司赢得了更多的市场份额。
Fukushima Futaba Electric Co., Ltd.(以下简称“Futaba Electric”)的创立可以追溯到1948年,由熊本县出身的卫藤五郎和北海道出身的细矢礼二在千叶县共同创立。公司名“Futaba”取自两人故乡的首字,寓意着双叶的结合与协作。初期,Futaba Electric专注于电气设备的制造与研发,凭借创始人的远见卓识和不懈努力,逐渐在电子行业崭露头角。这一时期,公司主要生产基础的电气元件,如电阻器、电容器等,为后续的发展奠定了坚实的基础。
FPGA的验证一直以来是不受重视的。 通常在RTL仿真后,采用SignalTap 和Chipscope来解决验证的问题。 当FPGA规模变大,编译时间很长,设计又很复杂时,这种方法的局限性就显露出来。 借鉴ASIC的验证概念,是解决这个问题的有效手段。   ...… 查看全部问答∨ |
作者:恩智浦半导体 Rob Cosaro ARM Cortex-M0内核使LPC1100的功耗数据与当前的低功耗微控制器保持一致,但这种内核的处理效率远远高于目前的8位和16位处理器。这可以降低电池供电应用的平均电流,延长电池寿命,也可减少其他应用的功 ...… 查看全部问答∨ |
我是linux新手,想请教一下高手 在写ALSA声卡驱动的时候,所形成的.probe()和.remove()函数与上层的file_operation结构体是怎样关联的? 它们的关系是怎样的?还有一般ALSA体系中file_operation结构体的在哪个文件中定义关联了write(),open(),r ...… 查看全部问答∨ |
|
我做了个今日插件和调用EXE,想用EXE去运行今日插件,但是如何实现呢?不想通过“设置”中的“今日”执行 我发现有些程序是挂载到SHELL32.EXE程序下的,而我的程序是挂载到MSTLI.EXE程序上的 如何才能实现挂载到SHELL32.EXE上呢?… 查看全部问答∨ |
|
怎么样准确地获得本机声卡设备名(device name)或者 device object指针 我想在底层通过驱动向真正的声卡发包让它读或者写(播放/录音), ///...获取声卡设备 ///...生成irp NTSTATUS status = IoCallDriver(pRealDev, Irp);   ...… 查看全部问答∨ |
我在使用成都纵横公司的jv58115型数据采集卡,我想知道在我建立的C++的工程里如何能够调用公司给的一些函数 比如读取数据的函数ReadData.(如果方法可以的话一定给分)… 查看全部问答∨ |
说说LED日光灯的优势和普及趋势。 1、LED做成日光灯管的生产门槛较低。现成的各类配件(塑料管,铝塑管,内置电源,PCB,堵头)极其丰富,有电子组装经验的工厂能在短期内批量生产出来; 2、使用安装方法简便,可以在原灯架上改,也可以使用厂家 ...… 查看全部问答∨ |
MIL-STD-1553B入门视频教程 1553B总线资料课件 MIL-STD-1553B入门视频教程 1553B总线资料课件 MIL-STD-1553B入门视频教程,详细介绍了MIL-STD-1553B总线的历史背景、优点和应用;MIL-STD-1553B总线的基础知识介绍(1553B的网络结构、1553B工作模式、1553B传输方式、1553B数据 ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- Dish联手高通,推进5G RAN平台建设
- iPhone 12 Pro Max拆解照解密:主板袖珍、L型电池仅3687mAh
- Caviar推Apple Watch 6限量版系列 镶嵌109颗钻石
- 三星Exynos 1080旗舰芯片:5纳米EUV工艺
- 苹果M1芯片MacBook Pro跑分曝光:单核1714,多核6802
- 中国半导体企业的研发投入现在提高了多少
- 从最简单的例子,带你轻松学习ARM指令集
- 工博会抢 "仙" 看 | SEER 企业数字化中台 SEED 发布在即,为企业提供信息化、数字化一站式系统解决方案
- 5G时代,让你和手机真正实现“人机合一”
- 终获FAA批准,亚马逊在美推出商业无人机快递服务