目录

摇杆模块

接线

代码

ADC.C

ADC.h

main.c


摇杆模块

接线方式:

GND、VCC(+5V)是供电端

VRx,VRy (X、Y轴)为模拟输入信号,连接到模拟IO口A0~A7。
VRx,VRy 的值:从 0 ~ 1023 分别代表 左~右,上~下。中间值为512。

SW (Z轴)是数字输入信号,连接到数字端口,并启用上拉电阻。
SW 的值:1代表未按下,0代表按下。

接线

+5v接stm32的+5v引脚

GND接stm32的GND

VRX接A0

VRY接A1

sw不接

代码

ADC.C

由于这个模块输出的是模拟量所以就就需要用ADC,先写ADC的代码

#include "stm32f10x.h"                  // Device headervoid ACD_Init(void)
{//配置时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//开启ADC的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启引脚GPIOA时钟RCC_ADCCLKConfig(RCC_PCLK2_Div6);//ADC分频器六分频  72/6=12hz//配置GPIOAGPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);//配置结构体ADC_InitTypeDef ADC_Initstructure;ADC_Initstructure.ADC_Mode=ADC_Mode_Independent;//模式配置 独立模式ADC_Initstructure.ADC_DataAlign=ADC_DataAlign_Right;//对其模式 右对齐ADC_Initstructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None ;//出发控制的触发源   不需要外部触发ADC_Initstructure.ADC_ContinuousConvMode=DISABLE;//连续模式 enable 连续   disable  单次ADC_Initstructure.ADC_ScanConvMode=DISABLE;//扫描模式 enable扫描模式         disable非扫描ADC_Initstructure.ADC_NbrOfChannel=1;//指定规则组通道的数目ADC_Init(ADC1,&ADC_Initstructure);ADC_Cmd(ADC1,ENABLE);//ADC上电//校准ADC_ResetCalibration(ADC1);//复位校准while(ADC_GetResetCalibrationStatus(ADC1)==SET);//返回复位校准的状态  如果没完成就一直循环 复位后会清零ADC_StartCalibration(ADC1);//开始校准while(ADC_GetCalibrationStatus(ADC1)==SET);//校准是否完成,如果没完成就一直循环}

到这就需要读取ADC寄存器获取值

uint16_t ADC_Getvalue(uint8_t ADC_Channel)//输入通道获取值
{//ADC通道配置                                                     输入通道可以获取值ADC_RegularChannelConfig(ADC1,ADC_Channel,1,ADC_SampleTime_55Cycles5);//在序列1写入通道0  时间55.5个ADC时间ADC_SoftwareStartConvCmd(ADC1,ENABLE);//软件触发转换while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)==RESET);//获取标志位状态  规则组转换完成标志位   0转换未完成  1 转换完成return ADC_GetConversionValue(ADC1);}

ADC.h

#ifndef _ADC_H
#define _ADC_Hvoid ACD_Init(void);
uint16_t ADC_Getvalue(uint8_t ADC_Channel);
#endif

main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "ADC.h"uint16_t ADCXvalue ,ADCYvalue;//创建X,Y变量
int main(void)
{OLED_Init();//初始化OLEDACD_Init();//初始化ADCOLED_ShowString(1,1,"ADCXvalue:");OLED_ShowString(3,1,"ADCYvalue:");
while(1)
{ADCXvalue=ADC_Getvalue(ADC_Channel_0);//返回值是通道0ADCYvalue=ADC_Getvalue(ADC_Channel_1);//返回值是通道1OLED_ShowNum(2,1,ADCXvalue,4);//显示值OLED_ShowNum(4,1,ADCYvalue,4);Delay_ms(100);
}}

【stm32】摇杆模块利用stm32获取摇杆值相关推荐

  1. php的curl如何返回值,怎么在PHP中利用CURL获取返回值

    怎么在PHP中利用CURL获取返回值 发布时间:2021-01-05 16:58:39 来源:亿速云 阅读:96 作者:Leah 怎么在PHP中利用CURL获取返回值?针对这个问题,这篇文章详细介绍了 ...

  2. C# 摇杆设备连接,获取键值

    连接摇杆获取摇杆输入键值及按钮事件. 摇杆设备连接类: using System; using System.Collections.Generic; using System.Linq; using ...

  3. 基于DS3231时钟模块的stm32 程序,源码

    目录 一.模块简介 DS3231时钟芯片结构原理 引脚图 内部结构图 DS3231典型应用电路 DS3231时钟芯片结构 二.与stm32通信 1.配置IO 2.初始化与函数 3.主函数调用 4.使用 ...

  4. STM32摇杆模块的蓝牙通信+LCD图形化的坐标显示

    一.本次实验用到的器件:STM32C6T6最小系统板(连接摇杆模块),正点原子STM32ZET6精英板(蓝牙接收信号并实现LCD显示图像),两个HC-05模块,一个5针摇杆模块. 二.硬件连接:C6T ...

  5. STM32 BMP280模块 获取气压温度高度传感器数据 TFT显示

    STM32 BMP280模块 获取气压温度高度传感器数据 TFT显示 简介 BMP280是博世最新推出的数字气压传感器,具有卓越的性能和低廉的价格,相对精度为±0.12 hPa(相当于±1米),传感器 ...

  6. [STM32F1]基于STM32 HAL库实现鼠标键盘摇杆的USB复合设备

    序: 其实这样一个设备我们在ch32v103上实现过,但移植到STM32 HAL库上面,还是发现很多问题的,现在就移植过程给大家分享一下在基于STM32 HAL库实现鼠标键盘摇杆的USB复合设备的实现 ...

  7. STM32+光敏模块

    STM32+光敏模块 器件选择 4线光敏传感器介绍 光敏模块原理图 光敏模块实物 光敏模块引脚说明 CubeMX配置 代码主体部分 结果展示 器件选择 硬件平台选择STM32F103C8T6最小系统开 ...

  8. 利用stm32+app inventor与esp8266通信

    利用stm32+app inventor与esp8266通信 stm32与esp8266通信 移动端app制作.生成.控制 本章实验的目的是将手机连接上ESP8266提供的WIFI网络,打开自定义的a ...

  9. STM32超声波模块(HC-SR04\US015)测试程序-HAL库函数

    STM32F103系列单片机HAL库的超声波模块测试程序 原理: 声波遇到障碍物会反射,而声波的速度已知,所以只需要知道发射到接收的时间差,就能轻松计算出测量距离,再结合发射器和接收器的距离,就能算出 ...

最新文章

  1. thinkphp链接mssql以及查询中文乱码问题
  2. 透过浏览器看HTTP缓存(转)
  3. [计组]寄存器和存储器的区别
  4. Hook技术之Hook Activity
  5. 云函数查询_速览 | 京东云5月重要产品与功能更新
  6. Spring Boot 学习系列(05)—自定义视图解析规则
  7. 虚拟机安装Ubuntu无法通过Xshell登录
  8. 计算机一级笔试2012,2012计算机一级笔试模拟试卷及答案
  9. 华为云CDN+芒果TV,是如何做出“云”榜样?
  10. 最全的CDR抠图教程
  11. 前后端分离的文件上传,上传zip或者rar压缩包(vue+springboot)。
  12. 练习:编写程序判断当前系统状态
  13. 免费的行程单打印软件
  14. vSphere web client 虚拟机生成模板快速部署
  15. 【观察】戴尔科技:树立数据保护全新标杆,为企业数字化保驾护航
  16. 产品经理七个局——破局之术
  17. 超静音服务器性能强,静音服务器:最适合办公环境的静音服务器
  18. 什么是低功耗蓝牙技术
  19. 制作ghost的linux系统安装方法,(转)linux系统GHOST备份方案
  20. mysql 设置某个字段等于某个字段_MySQL基本使用

热门文章

  1. 音频切歌消除POP声或者噪音算法,淡入淡出算法
  2. cncbk感恩有你,感恩能一路同行
  3. Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded
  4. .net使用DotNetCharting控件生成报表统计图总结
  5. 微信公众号搭建营销型房产项目程序后台开发
  6. ML Visual利器解决深度学习模型图
  7. 网站如何实现http跳转到https?
  8. 量子计算机详细讲解,全球最强量子计算机,到底强在哪儿?附参数详解
  9. 自媒体追热点小技巧,教你快速捕捉最新热点
  10. ios -获取手机唯一imei码