前一阵老友提了个需求,感觉现在市面上的键盘都不咋好用,想搞一套自己随意定义键位的机械键盘。稍微查了一下,现在市面上这种客制化键盘基本都是arduino开发的一些方案,倒是也没啥不好,就是感觉为了把灯做的更绚丽就又加了一块MCU,然后还没有什么双模的开源解决方案,其中最让人受不了的就是,键位设定很难受,朋友表示作为一个资深程序员无法接受这种订制不到位的键盘,于是乎我们抽了几天时间,重新开发了一套键盘
模拟IICIIC协议GPIO配置根据时序图完成代码起始与停止信号等待应答读写字节检查设备是否连接IIC协议I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、 CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。它是一个支持多设备的总线。“总线”指多个设备共用的
 1.1 前言在使用I2C通信时,一般会用到软件模拟I2C。目前网络上能搜索到的软件模拟I2C一般都是模拟I2C主机,很少有模拟I2C从机的例程。由于I2C主机在进行数据收发时,有明确的可预见性,也就是主机明确知道什么时候要进行数据的收发操作,而且I2C的同步时钟信号也是由主机产生的,所以实现起来相对来说比较简单。而I2C从机的通信受制于主机,即什么时候需要进行数据的收发都是由主机发起的
按键输入的硬件连接(枭龙)独立键盘: 其中KEY1按键连接在PA0上,可以作普通按键,也可以做待机唤醒输入,KEY2,KEY3,KEY4分别连接到STM32的PC3,PC2,PC1; 这四个按键都可以作为普通IO输入,这四个按键都是低电平有效。(貌似没有矩形键盘)。读取输入电平函数GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_
STM32的通信接口STM32主要用的通信接口有USART、IIC、SPI、USB、CAN。这些通信接口的主要目的是将设备的数据传送到另一个设备,扩展硬件系统。 在串口通信中有着TTL、RS232、RS485等电平标准。其中TTL和RS485都为正逻辑,只有RS232为负电压表示1,正电压表示0.TTL:+3.3V或+5V表示1,0V表示0.RS232:-3V—— -15V表示1,+3V——+15
STM32CUBEIDE.7----USART收发配置概述样品申请视频教学生成例程STM32CUBEIDE配置串口重定向串口发送接收函数HAL_UART_Transmit()发送HAL_UART_Transmit_IT()发送HAL_UART_Transmit()和HAL_UART_Transmit_IT()对比HAL_UART_Receive()接收HAL_UART_Receive_IT()接
最近因为工作需要使用到了STM32F407VET6的USB_OTG_FS作为虚拟串口。 之前用STM32 CubeMX生成过STM32F103C8T6的虚拟串口代码,感觉用起来很方便,于是这次的F407也用MX生产工程,奈何竟然遇到诸多难题,整整困扰了两天。 先说一下我的流程。MX生成F407 USB虚拟串口工程操作流程1,选择芯片先是利用条件筛选选择自己的芯片,如下图:2,配置管脚配置RCC
一、DAC简介DAC(Digital-to-Analog Converter),即数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与 ADC 相反。在常见的数字信号系统中,大部分传感器信号被化成电压信号,而 ADC 把电压模拟信号转换成易于计算机存储、处理的数字编码,由计算机处理完成后,再由 DAC 输出电压模拟信号,该电压模拟信号常用来驱动某些执行器
第五十八章 USB 鼠标键盘(Host)实验上一章我们向大家介绍了如何利用 STM32F767 的 USB HOST 接口来驱动 U 盘,本章,我们将利用 STM32F767 的 USB HOST 来驱动 USB 鼠标/键盘。本章分为如下几个部分:58.1 USB 鼠标键盘简介58.2 硬件设计58.3 软件设计58.4 下载验证58.1 USB 鼠标键盘简介传统的鼠标和键盘是采用 PS/2 接口
经过具体实验可知,以前思学师哥的程序中有ADC开始DMA采集和停止DMA采集两个函数,可以理解成消抖,因为采集频率过快数据可能会发飘。 硬石资料如下 配置要求一定要在mode处勾选circular ,数据宽度一定要选择“Word” 根据实验只需要将ADC的DMA通道采集打开,无需关闭即可采集成功,而且数据比较稳定,这样为快速傅里叶变换做出了准备。经过一下午的实验可知ADC采集周期过短的时候在同时
STM32基础知识3-STM32串口USART1的使用方法和程序 通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NR 异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择,支持同步单向通信和半双工单线通信。 1、STM32固件库使用外围设备的主要思路 在STM32中,外围设备的配置思路比较固定。首先是使能相关的时钟,一方面是
转载 2024-09-12 20:32:36
55阅读
  目录目录一、第一个汇编程序的创建过程(基于MDK)二、HEX文件格式的分析说明三、汇编语言"hello_world"程序——LED灯闪烁四、总结五、参考文献一、第一个汇编程序的创建过程(基于MDK)1、双击打开keil_uVsion5(也叫MDK),进入软件界面2、找到左上角的project后下拉选择new_uVsion_project新建工程项目,项目名可自行定义,此处我
 文章目录ADC+TIM+DMA采集交流前言模式简介工程建立时钟配置ADC配置配置串口代码生成代码编写串口重定向ADC采集代码硬件连接运行结果练习后记 模式简介ADC+TIM+DMA采集交流信号是电赛中使用范围最为广泛的一个技术。这个模式下单个ADC可以实现0-1M的任意可调采样率,采集20khz一下的信号轻轻松松。F1的ADC支持许多触发信号,这里选择TIM3的TRGO事件作为触发信号
一、实验工具:STM32开发板一块、L298N电机驱动、直流电机以及用到的软件(STM32CubeMX、keil4) 二、编码器原理1.概述:编码器是一种将角位移或者角速度转换成一串电数字脉冲的旋转式传感器。编码器又分为光电编码器和霍尔编码器,我们这里用到的是霍尔编码器。2.霍尔编码器工作原理:一种通过磁电转换将输出的机械几何位移量转换成脉冲或数字量的传感器,霍尔编码器室友霍尔马盘和霍尔
转载 2024-09-25 08:19:37
244阅读
红外寻迹传感器驱动红外寻迹传感器具有一对红外线发射管与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,输出接口会输出一个数字信号(低电平或高电平,取决于电路设计),有效范围一般为2~30CM。传感器主动红外反射探测,因此反射率和形状是探测距离的关键。其中黑色探测距离小,白色距离大;小面积物体距离小,大面积距离大。本实例将演
0、系列目录STM32 软件模拟IICSTM32 使用DMP库处理MPU6050数据STM32 MPU6050与匿名上位机通讯(V2.6版)1、IIC通讯过程SCL和SDA在空闲时候均为高电平。 MCU接收到通讯命令后,首先广播从机地址(例:MPU6050地址为0x68,0x69)+读/写操作,从机收到后产生应答,随后开始SCL强制拉低,开始传送一字节数据 ①收到应答信号后,继续传送第二个字节……
转载 2024-07-08 09:57:12
990阅读
开发环境STM32CUBMX正点原子STM32F407ZGT6探索者开发板MDK-ARM 5.31第一种方式:直接接收配置外部时钟源 2.配置时钟树 3.配置串口一 生产代码后进入工程重定向printf到串口1(建议在usart.c里重定向) 重定向代码块int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */
我们了解了I2C的操作流程,这一篇,我们就使用I2C,来对EEPROM进行操作吧。我们做两种选择:1.时序由IO口模拟高低电平,需要了解协议并按照协议操作相应的IO口。2.时序由硬件自行产生,不需要人工干预;由硬件产生的I2C时序,我们借助Stm32Cube配置实现便可,我们这一篇,抛开Stm32Cube,手撕代码,根据I2C的时序,一步步地实现I2C对EEPROM的读写吧。 我们分为几
开发板:正点原子STM32F4探索者   (2019-08-10 22:04:39)开发环境:MDK5.28.0.0 + STM32CubeMX5.3.0 + STM32CubeF4 V1.24.0内容:使用STM32Cube配置LED0和UART1,实现LED0闪烁和UART1发送  STM32CubeMX选择芯片后界面。左侧栏为功能列表,配置相应的功能打开列表,会有详细功能名称;右侧为ST芯片
转载 2024-02-16 10:23:46
358阅读
按键处理测试平台:STM32F103C8T6库版本:官方标准库3.5.0版本按键:机械按键(需消除抖动影响)或触摸按键,单片机硬件需求:定时器1个,IO口外部中断功能按键处理是单片机底层驱动的一个基础应用,本文说的按键处理为独立按键的单击,连击和长按的识别(不是按键矩阵的实现)。在51单片机入门时,通常是通过主循环查询I/O口状态来进行按键识别的,但是占用资源较多,而且实时性较差;进阶的会使用定时
  • 1
  • 2
  • 3
  • 4
  • 5