stm32单片机引脚_单片机IO口不够用了,怎么办?

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:11   1074   0

这几天公子比较闲,像看看手上有没有好玩的模块,于是,公子找到了一款OV系列的摄像头,于是翻了一下自己的2年都没有打开的盒子(公子专门来放开发板的)。可是找了半天,都没有找到开发板,费了九牛二虎之力,才找到一块STM32F103C8T6的,长这个样子,可是引脚不够呀!没关系,现在公子告诉大家该怎么解决。

540b627b30dd47c18ef0a9d36b8ca6e2.png

1 IO口扩展:

扩展的方法很多,锁存器;输出串并转换/输入并串转换;IC总线等等……

不过公子一般都是喜欢采用138或者164来扩展的,以138为例,电路图如下:

d8be9e0ea12523624a4c4b0f74754283.png

这款芯片的作用是把串行输入的数据并行输出。注意,它没有锁存功能,在允许输出的情况下,每一个时钟的上升沿,数据依次从最低位移向最高位。因此,在做数码管的输出显示的时候会出现拖影的想象,下面我们再看看它的真值表,有了真值表我们才知道如何正确的去编写程序去驱动它(其它复杂的器件还需要对照时序图编写相应的驱动程序)。

d1c96356684b8bc35fb173bcd2e2f763.png

怎么样,这个表很简单吧,相信大家都能够看的懂。当Reset为低电平时不管时钟为高电平还是低电平也不管输入引脚A1,A2为何值,输出的并行数据均为低电平。当Reset为高电平时,只有在时钟的上升沿,A1A2上的值才被移位输出。看懂了这张表那么剩下的事情就好办多了。

2 再接一个单片机:

当一个单片机的引脚不够的时候,需要在外接一个单片机就可以了,怎么操作呢?让两个单片机的TXD与RXD相连就可以了,不过,如果是两块单片机同时处理一个传感器(比如说:摄像头,TFT LCD),那么你需要考虑时序的问题,特别是当两块单片机的处理速度不一样的时候,这个需要特别注意。

3 端口复用与重映射:

大家听说这几个术语可能是在学习STM32的时候,那么我们以STM32为例。

端口复用

STM32用很多内置外设而且都是和GPIO复用的,也就是GPIO可以设置成一些常用的外设如串口的外设等等,数据手册有详细说明,需要时就查表。

34dfd32c270240d1eb780005fe2c64f8.png

GPIO作为内置外设使用时就叫复用,也就是图中的默认复用功能,不把GPIO口当作单纯的I/O口而是赋予它一个外设的含义。

端口重映射

cec03e2cf958eec12a0e4f768517d3c8.png

端口重映射通过设置重映射寄存器的方式,把这个外设的接口映射到其它的端口,方便PCB布线,虚拟增加外设。

复用功能串口1是PA9 PA10,但是如果我们觉得PB6 PB7更方便是就可以重映射使用这两个I/O口,重映射还分完全重映射和部分重映射,完全重映射就是功能外设的所有引脚都全部映射,如果映射串口,那么串口所有相关外设都映射到,这就是完全重映射,否则只映射部分需要的就是部分重映射。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP