K_A16_003 基于STM32等单片机采集薄膜压力传感器参数串口与OLED0.96双显示

请添加图片描述
请添加图片描述

一、资源说明

单片机型号测试条件模块名称代码功能
STM32F103C8T6晶振8M/系统时钟72M薄膜压力传感器模块STM32F103C8T6驱动薄膜压力传感器模块 串口与OLED0.96双显示

其他资料目录 直戳跳转

二、基本参数

参数

厚度 :0.4mm
样式 :薄片状,柔性
触发力 :20g,默认电阻值小于 200kΩ 时触发
压力感应范围 :20g~6kg
压力作用方式: 静态或动态(频率 10Hz 以 内)
未触发时电阻 :大于 10M Ω
激活时间 :小于 0.01S
使用温度 :-40℃~+85℃
耐久性 :100 万次以上
一致性 :单个产品阻值+/-3%以内,同 批产品+/-10%以内(同等测试 条件下)
迟滞 : +10% , (RF+ - RF-)/FR+ , 1000g 力
响应时间 :<10ms
电磁干扰 :EMI 不产生
静电释放 :EDS 不敏感
漂移 :<5%, 2.5Kg力静载24H

引脚说明

薄膜压力传感器模块引脚说明
VCC正极 3.3-5V供电
GND负极 接GND
DO数字量输出(默认低电平输出 到阀值输出高电平)
AO模拟量输出

三、驱动说明

对应程序:

STM32 ADC采集程序:


/**
  * @brief  ADC GPIO 初始化
  * @param  无
  * @retval 无
  */
static void ADCx_GPIO_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	
	// 打开 ADC IO端口时钟
	ADC_GPIO_APBxClock_FUN ( ADC_GPIO_CLK, ENABLE );
	
	// 配置 ADC IO 引脚模式
	// 必须为模拟输入
	GPIO_InitStructure.GPIO_Pin = ADC_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
	
	// 初始化 ADC IO
	GPIO_Init(ADC_PORT, &GPIO_InitStructure);				
}

/**
  * @brief  配置ADC工作模式
  * @param  无
  * @retval 无
  */
static void ADCx_Mode_Config(void)
{
	ADC_InitTypeDef ADC_InitStructure;	

	// 打开ADC时钟
	ADC_APBxClock_FUN ( ADC_CLK, ENABLE );
	
	// ADC 模式配置
	// 只使用一个ADC,属于独立模式
	ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
	
	// 禁止扫描模式,多通道才要,单通道不需要
	ADC_InitStructure.ADC_ScanConvMode = DISABLE ; 

	// 连续转换模式
	ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;

	// 不用外部触发转换,软件开启即可
	ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;

	// 转换结果右对齐
	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
	
	// 转换通道1个
	ADC_InitStructure.ADC_NbrOfChannel = 1;	
		
	// 初始化ADC
	ADC_Init(ADCx, &ADC_InitStructure);
	
	// 配置ADC时钟为PCLK2的8分频,即9MHz
	RCC_ADCCLKConfig(RCC_PCLK2_Div8); 
	
	// 配置 ADC 通道转换顺序和采样时间
	ADC_RegularChannelConfig(ADCx, ADC_CHANNEL, 1, 
	                         ADC_SampleTime_55Cycles5);
	
	// ADC 转换结束产生中断,在中断服务程序中读取转换值
	ADC_ITConfig(ADCx, ADC_IT_EOC, ENABLE);
	
	// 开启ADC ,并开始转换
	ADC_Cmd(ADCx, ENABLE);
	
	// 初始化ADC 校准寄存器  
	ADC_ResetCalibration(ADCx);
	// 等待校准寄存器初始化完成
	while(ADC_GetResetCalibrationStatus(ADCx));
	
	// ADC开始校准
	ADC_StartCalibration(ADCx);
	// 等待校准完成
	while(ADC_GetCalibrationStatus(ADCx));
	
	// 由于没有采用外部触发,所以使用软件触发ADC转换 
	ADC_SoftwareStartConvCmd(ADCx, ENABLE);
}

static void ADC_NVIC_Config(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
	// 优先级分组
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

  // 配置中断优先级
  NVIC_InitStructure.NVIC_IRQChannel = ADC_IRQ; 
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}


/**
  * @brief  ADC初始化
  * @param  无
  * @retval 无
  */
void ADCx_Init(void)
{
	ADCx_GPIO_Config();
	ADCx_Mode_Config();
	ADC_NVIC_Config();
}

四、部分代码说明

1、接线引脚定义

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

STM32F103C8T6+薄膜压力传感器模块

//薄膜压力传感器模块引脚定义 GPIOA_0  ADC1通道0
#define    ADC_GPIO_APBxClock_FUN        RCC_APB2PeriphClockCmd
#define    ADC_GPIO_CLK                  RCC_APB2Periph_GPIOA  
#define    ADC_PORT                      GPIOA
#define    ADC_PIN                       GPIO_Pin_0
//OLED0.96模块引脚定义					
		//-----------------OLED IIC端口定义----------------  					   

#define OLED_SCLK_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_8)//SCL
#define OLED_SCLK_Set() GPIO_SetBits(GPIOB,GPIO_Pin_8)

#define OLED_SDIN_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_9)//SDA
#define OLED_SDIN_Set() GPIO_SetBits(GPIOB,GPIO_Pin_9)

五、基础知识学习与相关资料下载

1、STC89C52RC程序下载 直戳跳转

2、STM32F103C8T6程序下载
(1)串口下载 直戳跳转
(2)ST-LINK下载 直戳跳转
(3)J-LINK下载 直戳跳转
(4)DAP-LINK下载 直戳跳转

3、OLED0.96程序说明 直戳跳转

4、串口助手下载与使用
(1)安信可调试助手使用 直戳跳转
(2) sscom33串口调试助手使用 直戳跳转
(3)STC-ISP串口调试助手使用 直戳跳转

六、视频效果展示与程序资料获取

视频连接 直戳跳转
  资料获取            ( 滑到最后添加群号看公告免费获取)

七、注意事项

1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良

八、接线说明

STM32F103C8T6

/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : 薄膜压力传感器模块测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟 72M
接线
薄膜压力传感器模块-----------------------STM32F103C8T6
VCC-------------------------------------3.3V
GND-------------------------------------GND
AO--------------------------------------PA_0 

OLED0.96
VCC-- -----------------------------------3.3V
GND- ------------------------------------GND
SCL- ------------------------------------PB_8 //SCL
SDA- ------------------------------------PB_9 //SDA	
*****************************************************************************************/
  • 17
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
下面是STM32F407ZET6芯片的引脚功能表: | 引脚编号 | 引脚名称 | 功能描述 | | :-----: | :-----: | :------- | | PA0 | WKUP | 外部唤醒输入 | | PA1 | EXTI1 | 外部中断/事件输入 | | PA2 | EXTI2 | 外部中断/事件输入 | | PA3 | EXTI3 | 外部中断/事件输入 | | PA4 | | 通用输入/输出 | | PA5 | | 通用输入/输出 | | PA6 | | 通用输入/输出 | | PA7 | | 通用输入/输出 | | PA8 | | 通用输入/输出 | | PA9 | USART1_TX | USART1发送引脚 | | PA10 | USART1_RX | USART1接收引脚 | | PA11 | USART1_CTS | USART1清除发送引脚 | | PA12 | USART1_RTS | USART1请求发送引脚 | | PA13 | JTMS/SWDIO | JTAG调试/串行线调试数据输入输出 | | PA14 | JTCK/SWCLK | JTAG调试/串行线调试时钟输入输出 | | PA15 | JTDI | JTAG调试数据输入 | | PB0 | EXTI0 | 外部中断/事件输入 | | PB1 | EXTI1 | 外部中断/事件输入 | | PB2 | BOOT1 | 外部引导模式选择 | | PB3 | | 通用输入/输出 | | PB4 | | 通用输入/输出 | | PB5 | | 通用输入/输出 | | PB6 | I2C1_SCL | I2C1时钟线 | | PB7 | I2C1_SDA | I2C1数据线 | | PB8 | TIM4_CH3 | 定时器4通道3 | | PB9 | TIM4_CH4 | 定时器4通道4 | | PB10 | I2C2_SCL | I2C2时钟线 | | PB11 | I2C2_SDA | I2C2数据线 | | PB12 | SPI2_NSS | SPI2从片选择引脚 | | PB13 | SPI2_SCK | SPI2时钟线 | | PB14 | SPI2_MISO | SPI2主设备数据输入,从设备数据输出 | | PB15 | SPI2_MOSI | SPI2主设备数据输出,从设备数据输入 | | PC0 | ADC123_IN10 | ADC1、ADC2、ADC3模拟输入通道10 | | PC1 | ADC123_IN11 | ADC1、ADC2、ADC3模拟输入通道11 | | PC2 | ADC123_IN12 | ADC1、ADC2、ADC3模拟输入通道12 | | PC3 | ADC123_IN13 | ADC1、ADC2、ADC3模拟输入通道13 | | PC4 | ADC12_IN14 | ADC1、ADC2模拟输入通道14 | | PC5 | ADC12_IN15 | ADC1、ADC2模拟输入通道15 | | PC6 | TIM3_CH1 | 定时器3通道1 | | PC7 | TIM3_CH2 | 定时器3通道2 | | PC8 | TIM3_CH3 | 定时器3通道3 | | PC9 | TIM3_CH4 | 定时器3通道4 | | PC10 | USART3_TX | USART3发送引脚 | | PC11 | USART3_RX | USART3接收引脚 | | PC12 | USART3_CK | USART3时钟线 | | PC13 | TAMP/RTC_OUT | 备用备份电源输出/RTC输出 | | PC14 | OSC32_IN | 32.768kHz外部晶体振荡器输入 | | PC15 | OSC32_OUT | 32.768kHz外部晶体振荡器输出 | | PD0 | FSMC_D2 | FSMC数据线2 | | PD1 | FSMC_D3 | FSMC数据线3 | | PD2 | FSMC_NWE | FSMC写使能信号 | | PD3 | FSMC_NOE | FSMC读使能信号 | | PD4 | FSMC_NWAIT | FSMC等待信号 | | PD5 | FSMC_NWE | FSMC写使能信号 | | PD6 | FSMC_NWAIT | FSMC等待信号 | | PD7 | FSMC_NE1 | FSMC片选信号1 | | PD8 | FSMC_NE2 | FSMC片选信号2 | | PD9 | FSMC_NE3 | FSMC片选信号3 | | PD10 | FSMC_NE4 | FSMC片选信号4 | | PD11 | FSMC_A16 | FSMC地址线16 | | PD12 | FSMC_A17 | FSMC地址线17 | | PD13 | FSMC_A18 | FSMC地址线18 | | PD14 | FSMC_D0 | FSMC数据线0 | | PD15 | FSMC_D1 | FSMC数据线1 | | PE0 | FSMC_NBL0 | FSMC引脚 | | PE1 | FSMC_NBL1 | FSMC引脚 | | PE2 | TIM4_CH1 | 定时器4通道1 | | PE3 | TIM4_CH2 | 定时器4通道2 | | PE4 | | 通用输入/输出 | | PE5 | | 通用输入/输出 | | PE6 | | 通用输入/输出 | | PE7 | | 通用输入/输出 | | PE8 | | 通用输入/输出 | | PE9 | | 通用输入/输出 | | PE10 | TIM1_CH2 | 定时器1通道2 | | PE11 | TIM1_CH3 | 定时器1通道3 | | PE12 | TIM1_CH4 | 定时器1通道4 | | PE13 | TIM1_CH1N | 定时器1通道1反相输入 | | PE14 | TIM1_CH2N | 定时器1通道2反相输入 | | PE15 | TIM1_CH3N | 定时器1通道3反相输入 | | PF0 | FSMC_A0 | FSMC地址线0 | | PF1 | FSMC_A1 | FSMC地址线1 | | PF2 | FSMC_A2 | FSMC地址线2 | | PF3 | FSMC_A3 | FSMC地址线3 | | PF4 | FSMC_A4 | FSMC地址线4 | | PF5 | FSMC_A5 | FSMC地址线5 | | PF6 | FSMC_NIORD | FSMC引脚 | | PF7 | FSMC_NREG | FSMC引脚 | | PF8 | FSMC_NIOWR | FSMC引脚 | | PF9 | FSMC_CD | FSMC引脚 | | PF10 | FSMC_INTR | FSMC引脚 | | PF11 | FSMC_INTR | FSMC引脚 | | PF12 | FSMC_A6 | FSMC地址线6 | | PF13 | FSMC_A7 | FSMC地址线7 | | PF14 | FSMC_A8 | FSMC地址线8 | | PF15 | FSMC_A9 | FSMC地址线9 | | PG0 | FSMC_A10 | FSMC地址线10 | | PG1 | FSMC_A11 | FSMC地址线11 | | PG2 | FSMC_A12 | FSMC地址线12 | | PG3 | FSMC_A13 | FSMC地址线13 | | PG4 | FSMC_A14 | FSMC地址线14 | | PG5 | FSMC_A15 | FSMC地址线15 | | PG6 | FSMC_INT2 | FSMC引脚 | | PG7 | FSMC_INT3 | FSMC引脚 | | PG8 | FSMC_SDCLK | FSMC引脚 | | PG9 | FSMC_SDNCAS | FSMC引脚 | | PG10 | FSMC_SDNE0 | FSMC引脚 | | PG11 | FSMC_SDCKE0 | FSMC引脚 | | PG12 | FSMC_SDNE1 | FSMC引脚 | | PG13 | FSMC_SDCKE1 | FSMC引脚 | | PG14 | FSMC_INT4 | FSMC引脚 | | PG15 | FSMC_INT5 | FSMC引脚 |
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值