STM32控制CD74HC4067十六通道模拟开关以及遇到的一些问题 您所在的位置:网站首页 模拟开关用法图解大全 STM32控制CD74HC4067十六通道模拟开关以及遇到的一些问题

STM32控制CD74HC4067十六通道模拟开关以及遇到的一些问题

2024-07-02 14:05| 来源: 网络整理| 查看: 265

STM32控制CD74HC4067十六通道模拟开关 CD74HC4067STM32控制原理和代码出现的问题以及解决方法

CD74HC4067

CD74HC4067 作用是选通一路对十六路模拟信号,更详细的说,根据芯片上 S0-S3 四个不同管脚的组合,让SIG管脚和C0-C15导通。因此,最常见的用法是用来测试模拟信号。比如,Arduino Uno上面只有6个模拟输入,用一个CD74HC4067可以多扩展出来16个,于是可以支持 6+16-1=21个模拟引脚。 一开始原理图上没注意使能引脚接地的,默认是使能状态,换句话说,EN使能引脚是可以通过电平控制的(后面在做项目的时候由于默认低电平使能吃亏了)后面我会在具体说。(高电平断开 低电平使能) 芯片手册概述如图所示 在这里插入图片描述

STM32控制原理和代码

一开始默认使能状态,就直接通过S0-S3引脚的组合来控制C0-C15(16个通道的导通就可以了)

具体的代码思路就是把四个使能的引脚写到一个数组当中,然后用一个二维数组模拟出16个通道的情况,在用循环把4个通道的情况写入。不多说,具体看代码。

// 写入到函数当中,方便MAIN中调用 void readMux1(int channel) { int controlpin[4]={GPIO_PIN_12,GPIO_PIN_13,GPIO_PIN_14,GPIO_PIN_15}; //这里我使用的是PB12-PB14 int i; int muxChannel[16][4]= { {0,0,0,0}, //channel 0 {1,0,0,0}, //channel 1 {0,1,0,0}, //channel 2 {1,1,0,0}, //channel 3 {0,0,1,0}, //channel 4 {1,0,1,0}, //channel 5 {0,1,1,0}, //channel 6 {1,1,1,0}, //channel 7 {0,0,0,1}, //channel 8 {1,0,0,1}, //channel 9 {0,1,0,1}, //channel 10 {1,1,0,1}, //channel 11 {0,0,1,1}, //channel 12 {1,0,1,1}, //channel 13 {0,1,1,1}, //channel 14 {1,1,1,1} //channel 15 }; for(i = 0; i for(j = 0; j readMux1(k); //控制通断 HAL_Delay(1); } PB10_ENABLE; PB11_DISABLE; HAL_Delay(1); for(j = 0; j


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有