一、概述

说来惭愧,我到现在都没有完整的学习过STM32。接触 STM32 还是突然的一个项目,需要用到 STM32,紧急需求,只能边学边完成。不过好在 ST 的资料还是比较多的,相对也比较简单,基本上的需求都能找到对应的demo,或者直接使用 STM32CubeMX 生成代码,最后在稍微改改,写一下自己的逻辑,就能完成需求了。

说来比较庆幸,还好第一个项目只需要前后台方式即可完成,否则我应该都放弃了。后来接触到了实时操作系统,由于没有系统的学习,导致我接触的第一个实时系统居然是 RT-Thread,看着复杂的外设代码当场懵逼,好在后面成功的完成了 uart 和 GPIO 的驱动移植,第一次在 STM32 跑上线程很开心,也深入的理解到了系统的底层是怎么实现的。

就在这样舒适的环境下使用了几年的 STM32,导致我忽视了基础上的学习,以为已经掌握了 STM32,直到今天一个现象让我直接懵逼了,在使用其他 GPIO 的时候都是能正常工作的,但是突然到 PB3、PB4、PA15、PA14、PA15 这几个引脚的时候,直接无法作为输出使用,刚开始以为是硬件上的问题,但是后来发现,之前写的另外一个工程可以使用,很明显这是程序上出了问题,可是查了 RT-Thread 整个代码都没发现有异常的地方,以为是升级版本导致的,折腾了一天后,突然发现是引脚复用问题导致的。崩溃

这里讲述我学习 STM32 的过程,希望能帮助哪些快要放弃的小伙伴,STM32 真的不难,现在网上的资料也很多,讲的也很详细。完全不用先将所有的知识点学完在做事,可以像我一样拿着任务去学习,当然在空余的时候还是有必要完整了解一下基础的知识,不然可能会想我一样,解决问题时会多花一些时间,但是这样的印象也比较深刻。

二、SWJ-DP脚分配

在查了数据手册时,才发现这个几个引脚默认被 JTAG 调试时使用,所以直接使用这个几个引脚作为输出引脚是不行的,如图所示

看到这里相信大家都明白了,只是我们平时在使用的时候没有注意这个细节问题,遇到时就比较懵逼,比如在 STM32CubeMX 配置的时候也有,如下如所示

那怎么复用了,这个就比较简单了,直接生成即可看到用法,容我再简单啰嗦一下,在使用这几个引脚时,需要是能复用时钟

__HAL_RCC_AFIO_CLK_ENABLE();

然后在使用自己需要的配置,释放对应的引脚即可,配置模式如下

// Enable the Serial wire JTAG configuration
__HAL_AFIO_REMAP_SWJ_ENABLE() // Enable the Serial wire JTAG configuration
__HAL_AFIO_REMAP_SWJ_NONJTRST() // Enable the Serial wire JTAG configuration
__HAL_AFIO_REMAP_SWJ_NOJTAG() // Disable the Serial wire JTAG configuration
__HAL_AFIO_REMAP_SWJ_DISABLE()

STM32F10X 部分引脚不能使用的问题的更多相关文章

  1. [stm32] 一个简单的stm32vet6驱动的天马4线SPI-1.77寸LCD彩屏DEMO

    书接上文<1.一个简单的nRF51822驱动的天马4线SPI-1.77寸LCD彩屏DEMO> 我们发现用16MHz晶振的nRF51822驱动1.77寸的spi速度达不到要求 本节主要采用7 ...

  2. 基于STM32F10x的串口(USART)输入输出编程

    1 前言 STM32有强大的固件库,绝大部分函数都可以有库里面的函数组合编写.固件库可以到ST官网(www.st.com)上下载,也可以搜索“STM32 固件库 v3.5”下载到固件库.本文章就是基于 ...

  3. STM32F10X SPI操作flash MX25L64读写数据(转)

    源:STM32F10X SPI操作flash MX25L64读写数据 前一段时间在弄SPI,之前没接触过嵌入式外围应用,就是单片机也只接触过串口通信,且也是在学校的时候了.从离开手机硬件测试岗位后,自 ...

  4. 都是stm32的JTAG引脚惹的祸

    转载请注明出处:http://blog.csdn.net/qq_26093511/article/category/6094215 最近在调试08接口的LED显示屏,使用的是自己做的STM32板子. ...

  5. STM32之VCP1/VCAP2引脚的处理

    需要根据仔细根据手册来决定这两个引脚是直接接地还是电容下拉到地 转载:STM32的Vcap的问题及解决---原来经验也害人http://bbs.eeworld.com.cn/thread-499497 ...

  6. BAYSY2 的LVDS引脚 笔记

    差分引脚标号说明: 'L' 代表该引脚属于差分引脚 'xx' 两位整型数,在每一 bank 的独特标记 'y' 表示正向 还是 反向,同时要注意输入输出方向 ‘#’ 0~3,代表 bank0~bank ...

  7. FPGA的引脚VCCINT 、VCCIO VCCA

    首先是看到FPGA在配置的时候有三种不同的电VCCINT .VCCIO VCCA,于是就查了下有什么不同: FPGA一般会有许多引脚,那它们都有什么用呢? VCCINT为施加于 FPGA 内核逻辑的电 ...

  8. dsp28377控制DM9000收发数据——第三版程序,通过外部引脚触发来实现中断接受数据,优化掉帧现象

    //-------------------------------------------------------------------------------------------- - //D ...

  9. (原创)QuartusII设置虚拟引脚(Virtual Pin)

    方法一: 在Quartus II中Assignments->Assignment Editor, 在Category栏选择logic options, 到列表中To列下添加要设置的引脚接口,如果 ...

  10. Usart的单线半双工模式(stm32F10x系列)

    这两天折腾CTS/RTS硬件流控,看到说232协议的CTS/RTS只是用来做半双工换向使用的.正好手头上有块stm32的板子,看了看stm32的Usart,竟然发现支持的是单线半双工.232里面毕竟4 ...

随机推荐

  1. html+css实现指针时钟

    周末时间,突然想用html+css实现一个简单的指针时钟的功能,以下是具体代码实现,文末附有线上链接地址. 效果图: 1.代码 1.1.clock.html <!DOCTYPE html> ...

  2. QT实现参数批量配置

    QT实现批量配置 需求 一些参数需要批量化配置 之前搭建的FPGA的寄存器控制模型 使用AXI-lite搭建 直接操作上位机 这里需要一个可以快速配置所有参数的上位机 需要保存文件,可以保留上一次的参 ...

  3. 性能对比 Go、Python、Perl、Ruby、Rust、C/C++、PHP、Node.js、Java.. 等多编

    1. 有人说 Python 性能没那么 Low? 这个我用 pypy 2.7 确认了下,确实没那么差, 如果用 NumPy 或 其它版本 Python 的话,性能更快.但 pypy 还不完善,pypy ...

  4. #贪心#CF1054D Changing Array

    题目 给定 \(n\) 个 \(k\) 位二进制数,\(n\leq 2*10^5,k\leq 30\) 可以选择若干数将其所有二进制位取反, 最多可以有多少个区间的异或和不为 0 分析 考虑将区间异或 ...

  5. #线段树#洛谷 3988 [SHOI2013]发牌

    传送门 分析 fake:此题不就是链表模拟题吗,我一开始还真这么想 貌似链表什么用都没有,根据题意很清楚,要找一个支持删除和查询区间第\(k\)大的数据结构 解释一下为什么题目可以转换为查询区间第\( ...

  6. 中文GPTS详尽教程,字节扣子Coze插件使用全输出

    今天,斜杠君和大家分享如何在字节扣子Coze中创建插件,并在创建后如何使用这个插件. 一.新建插件 首先,进入到插件页面,创建一个插件. https://www.coze.cn/home 点击左侧的个 ...

  7. OpenHarmony创新赛|赋能直播第四期

     开放原子开源大赛OpenHarmony创新赛进入了中期评审环节,为了解决开发者痛点,本期以三方库移植.MQTT移植案例.开发工具介绍的3节系列技术课程,帮助开发者提升开发效率,为作品的创新能力奠定坚 ...

  8. 【直播回顾】如何成为一名优秀的OpenHamrony贡献者?

    5月18日晚上19点,战"码"先锋第一期直播<如何成为一名优秀的OpenHamrony 贡献者?>,在OpenHarmony社群内成功举行. 本期课程,由润和资深软件开 ...

  9. Array and Set work process

    目录 Array work principle 分析Array操作步骤数 read find insert delete Set work principle 分析Set操作步骤数 read find ...

  10. RabbitMQ 07 发布订阅模式

    发布订阅模式 发布订阅模式结构图: 比如信用卡还款日临近了,那么就会给手机.邮箱发送消息,提示需要去还款了,但是手机短信和邮件发送并不一定是同一个业务提供的,但是现在又希望能够都去执行,就可以用到发布 ...