stm32 74hc238流水灯

f103c6t6a_hex文件

c 复制代码
#include "main.h"![请添加图片描述](https://i-blog.csdnimg.cn/direct/8c0d44b121134cf08f5186df316ea07f.gif)

#include "stdlib.h"



void SystemClock_Config(void);
static void MX_GPIO_Init(void);
// 自定义abc引脚
#define A_PIN GPIO_PIN_1
#define B_PIN GPIO_PIN_2 
#define C_PIN GPIO_PIN_0 


//y0到y7输出
void segment(char c){
	if(c == 'a'){
		GPIOB->BRR = A_PIN | B_PIN | C_PIN; 
	}
	else if(c == 'b'){
		GPIOB->BSRR = A_PIN; 
		GPIOB->BRR =  B_PIN | C_PIN; 
}
		else if(c == 'c'){
		GPIOB->BSRR = B_PIN; 
		GPIOB->BRR =  A_PIN | C_PIN; 
}
			else if(c == 'd'){
		GPIOB->BSRR = A_PIN|B_PIN ; 
		GPIOB->BRR =   C_PIN; 
}
				else if(c == 'e'){
		GPIOB->BSRR = C_PIN; 
		GPIOB->BRR =  A_PIN | B_PIN; 
}
					else if(c == 'f'){
		GPIOB->BSRR = A_PIN| C_PIN; 
		GPIOB->BRR =  B_PIN ; 
}
					
		else if(c == 'g'){
		GPIOB->BSRR =B_PIN| C_PIN; 
		GPIOB->BRR = A_PIN ; 
}
		else if(c == 'p'){
		GPIOB->BSRR =A_PIN |B_PIN| C_PIN; 
}

}

char segment_list[]={'a','b','c','d','e','f','g','p'};
int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
	
while (1)
    {
     for(int i=0;i<=7;i++){
	segment(segment_list[i]);
		HAL_Delay(500);
	}
    } 
	
	
 

}




void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

  /** Initializes the CPU, AHB and APB busses clocks 
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }
  /** Initializes the CPU, AHB and APB busses clocks 
  */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
  {
    Error_Handler();
  }
}

/**
  * @brief GPIO Initialization Function
  * @param None
  * @retval None
  */
static void MX_GPIO_Init(void)
{
    GPIO_InitTypeDef GPIOInitStruct = {0}; // 初始化 GPIO 结构体

    // 使能 GPIO 端口时钟
    __HAL_RCC_GPIOB_CLK_ENABLE();

    // 设置 GPIO 的通用配置
    GPIOInitStruct.Mode = GPIO_MODE_OUTPUT_PP;    // 设置为推挽输出模式
    GPIOInitStruct.Pull = GPIO_NOPULL;            // 不使用上拉或下拉
    GPIOInitStruct.Speed = GPIO_SPEED_FREQ_LOW;   // 设置为低速

    // 配置 GPIOB 端口的所有引脚
    GPIOInitStruct.Pin = GPIO_PIN_All; // 指定所有引脚
    HAL_GPIO_Init(GPIOB, &GPIOInitStruct); // 初始化配置


}

void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */

  /* USER CODE END Error_Handler_Debug */
}

#ifdef  USE_FULL_ASSERT
相关推荐
学习路上_write11 小时前
stm32板子mpu6050读取的器件ID一直是0xFF
stm32·单片机·嵌入式硬件
恒锐丰小吕11 小时前
无锡黑锋 HF6010 PWM/PFM控制DC-DC降压稳压器技术解析
嵌入式硬件·硬件工程
亿道电子Emdoor11 小时前
【Arm】MDK查看语句的执行累积时间和次数
stm32·单片机·物联网
Tel1992530800411 小时前
CCD相机同步外触发拍照抓拍识别高速脉冲计数器信号采集模块
单片机·数码相机·物联网·自动化·工业自动化·仪器仪表
l3538o6757311 小时前
国产POE降压恒压芯片方案选型:48v-52v输入转5v-12v/1-3A电源芯片
人工智能·科技·单片机·嵌入式硬件·电脑·智能家居
v先v关v住v获v取11 小时前
建筑材料上楼搬运机结构设计cad3张+三维图+设计说明书
科技·单片机·51单片机
JSMSEMI1111 小时前
SC6D10170H-JSM 碳化硅肖特基二极管
stm32·单片机·嵌入式硬件
想不出名字ಥ_ಥ11 小时前
STM32学习笔记--01学会如何点亮一颗LED灯
笔记·stm32·学习
点灯小铭12 小时前
基于单片机的智能传送带自动计数与数据管理系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
anghost15012 小时前
基于 STM32 的湖泊水位报警系统设计
stm32·嵌入式硬件·数据挖掘