一、原理图

二、时序图

三、驱动源码

void couple_init(void)
{GPIO_InitTypeDef  GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);     //使能PB,PE端口时钟GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;      GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;      GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_SetBits(GPIOB,GPIO_Pin_6);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;      GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_SetBits(GPIOC,GPIO_Pin_0);
}
void couple_delay(u8 i)
{while(i--);
}
u16 read_couple(void)
{u8 i;u16 temp = 0;couple_ld = 0; //PL拉低,读取按键状态couple_ld = 1; //PL拉高,停止按键读取if(couple_dat == 1)        //等于1即并行输入D7引脚的按键被按下temp |= 0x01;         //最低位置1表示按键被按下,反之则没按键被按下for(i = 0; i < 15; i ++)  //因为最高位不用移位即可读取,故循环(16-1)次,依次把次高位移到最高位,第一级74HC165优先读取{temp = temp << 1;couple_clk = 0; //HC165_CLK = 0 ——> HC165_CLK = 1 产生上升沿,次高位D(n-1)移到高位D(n)couple_delay(10);couple_clk = 1;if(couple_dat == 1)temp |= 0x01;}return temp;
}

四、完整工程链接
完整工程链接

STM32驱动74HC165原理图加程序相关推荐

  1. STM32驱动压电式蜂鸣器发出和弦音原理图加程序

    一.原理图 一.驱动代码 #include "beep.h"void beep_init(void) {GPIO_InitTypeDef GPIO_InitStructure;RC ...

  2. STM32驱动LCD原理

    目录 01.使用FSMC驱动LCD 02.标准8080接口 03.使用FSMC驱动8080接口 04.颜色模式 TFTLCD即薄膜晶体管液晶显示器.它与无源TN-LCD.STN-LCD的简单矩阵不同, ...

  3. stm32驱动LTC6912程控放大器程序,PGA可编程增益放大器,可调增益运放电路

    1. 放大器需求 项目需求:需要用到 PGA可编程增益放大器,放大递归规律要为指数. 需求参数:输入信号为100KHz正弦波,程控增益倍数 Gain=1~256.于是带宽积GBP >= 30MH ...

  4. stm32驱动NRF24L01_原理+代码解析

    目录 概念 废话篇(24L01简介) 引脚分配 工作模式 通信地址理解(个人疑难点) 原理分析 寄存器赏析 寄存器操作指令 配置寄存器(CONFIG,位置:0X00) 自动应答使能寄存器(EN_AA, ...

  5. STM32驱动LD3320进行语音识别程序+原理图

    一.原理图 二.源代码 LD3320.c #include "ld3320.h" #include "delay.h" #include "usart ...

  6. 关于STM32驱动LCD显示屏,程序下载后白屏、乱码需要上电复位才能恢复正常问题的解决办法

    解决方法: 在显示屏初始化前加一定延时,比如100ms,因为单片机复位时间比LCD显示屏短,可能会造成显示屏未复位完就被单片机操作的问题,如果是CUBEMX配置的工程,需要找到生成代码关于显示屏初始化 ...

  7. stm32读取目标芯片_使用stm32驱动RC522读IC卡(代码留言邮箱)

    RC522与PN532简介 关于STM32驱动方式 接线说明 程序烧录 查看卡号 总结 RC522与PN532简介 在写这篇文章之前有写过一篇有关于PN532的文章,RC522与PN532在使用上都可 ...

  8. STM32驱动LCD实战

    目录 01 驱动时序 02 FSMC外设配置 03 背光驱动 04 复位驱动 05 寄存器配置 前段时间写了<STM32驱动LCD原理>和<STM32的FSMC外设简介>两篇文 ...

  9. STM32 PWM输出原理和直流电机PWM驱动原理详解及例程

    这次讲一讲STM32输出PWM的原理以及PWM可以作为信号传输数据的原理. PWM会有很多地方用到,有控制灯的亮度,控制电机,控制舵机或者其他一些外设,有时候你的单片机所输出的PWM是作为信号去控制, ...

最新文章

  1. 基于OpenCV的透视图转化为不同平面
  2. C++结构体多级排序的三种方法
  3. y7000 intel nvidia 双显卡安装Ubuntu16.04
  4. 深度学习优化器 optimizer 的选择
  5. 图片压缩上传Thumbnailator 插件
  6. LeetCode 2007. 从双倍数组中还原原数组(map)
  7. Spring mvc 请求体处理 @RequestBody
  8. mysql通配符like,不吃透都对不起自己
  9. HDU2017 字符串统计【入门】
  10. 学习使用Ansj分词工具(一)
  11. 单日暴跌60%,崩盘4次的AMPL,这次还能回来吗?
  12. nvme固态硬盘开机慢_win10 Samsung NVMe固态硬盘测速很慢的解决方法
  13. 一、计算机系统基础知识
  14. 使用turtle绘图:绘制“点“:dot()绘制“标记“:stamp()
  15. 模糊层次综合分析法Python实践及相关优缺点分析
  16. 魔兽争霸3 the oracle,疯狂SQL之魔兽争霸
  17. 无惧断电 小苏云“同城三机房”容灾演练成功
  18. 【摘录】哈利 · 波特 与密室(1998)
  19. TWR_MPC8309调试日志
  20. SAP UI5 应用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 应用试读版

热门文章

  1. Decimal.quantize
  2. mac必备的文件管理器:Path Finder Mac中文版
  3. 从程序员到架构师都需要经历什么?
  4. 有哪些好用的日程计划管理软件?
  5. Anaconda,启动中发生意外的错误
  6. system占用cpu过高查找问题思路
  7. DNS over HTTPs分析和威胁检测
  8. csapp程序人生大作业
  9. 高德地图各种摄像头图标_高德导航中,限速摄像头,违章摄像头,监控摄像头各有什么区别...
  10. 内网穿透+sshpass