蓝桥杯嵌入式——扩展板光敏电阻

        今天效率比较高,边学变写文章还能学这么多,可能是之前单片机学过,原理不用学很多

目录

一. 原理图

二. STM32CubeMX 配置

三. 代码编写

1. leds.c 文件

2. main.c 文件

四. 注意事项

结语


一. 原理图

Tr_AO:光敏电阻电压值 

Tr_DO:比较光敏电阻电压和可调变阻器的电压之后的输出值,只有0和3.3V

二. STM32CubeMX 配置

        由于上次配置双路ADC已经配置了PA4,和这次完全一样。故这次只要配置PA3

三. 代码编写

        随便找个定义引脚的文件把代码引脚PA3的配置加上就行

1. leds.c 文件

void MX_GPIO_Init(void)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOA_CLK_ENABLE();


  /*Configure GPIO pin : PA3 */
  GPIO_InitStruct.Pin = GPIO_PIN_3;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

}

2. main.c 文件

        直接用HAL_GPIO_ReadPin()函数读引脚电平就ok

#include "main.h"
#include "stdio.h"
#include "lcd.h"
#include "leds.h"
#include "tim.h"
#include "adc.h"


//模块计时
__IO uint32_t Lcd_uwTick=0;


/*函数声明------------------------------------------------------------------------------*/

void lcd(void);


/*主函数------------------------------------------------------------------------------*/
int main(void)
{
  HAL_Init();
  SystemClock_Config();//系统时钟设置
  KEY_Init();//按键初始化
	
  TIM2_Init();//定时器2初始化 100ms
  HAL_TIM_Base_Start_IT(&htim2);//启动定时器2中断工作模式
  MX_ADC2_Init();//ADC2初始化 R37 PB15
	

  LCD_Init();//LCD初始化
  LCD_Clear(Black);//清屏
  LCD_SetBackColor(Black);//背景颜色
  LCD_SetTextColor(White);//文本颜色
  LEDS_Init();
  while (1)
  {
//		HAL_Delay(500);
  }
}
/*常用函数------------------------------------------------------------------------------*/
void lcd()//LCD显示模块
{
	if (uwTick - Lcd_uwTick < 200) return; 
	Lcd_uwTick = uwTick;
	
	//扩展板ADC电压值显示
	sprintf(a," AD:%5.3f V DO:%2d ",get_adc2()*3.3/4096,HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_3));
    get_adc2();    //读IN13
	LCD_DisplayStringLine(Line0,(unsigned char *)a);

}



//定时器中断处理
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance == TIM2)
	{
		lcd();//屏幕显示
		
	}
}


四. 注意事项

(1)记得接上P4和P5的跳线帽

(2)PA3-TRDO-RP7(与R47的比较值)

(3)PA4-TRAO-R47

结语

        今晚学了三个模块我是没想到的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值