当前位置: 首页 > news >正文

PY32F003F18点灯

延时函数学习完之后,可以学习PY32F003F18的GPIO输出功能。

1、Debug引脚默认被置于复用功能上拉或下拉模式:
PA14默认为SWCLK: 置于下拉模式
PA13默认为SWDIO: 置于上拉模式
PF4默认为Boot:Boot引脚默认置于输入下拉模式

2、GPIO输出状态:

1)、push-pull,推挽输出

2)、open drain,开漏极输出

3)、上拉/下拉

#define  GPIO_NOPULL        (0x00000000u)   //引脚上拉和下拉都没有被激活
#define  GPIO_PULLUP        (0x00000001u)   //引脚上拉被激活,Pull-up activation
#define  GPIO_PULLDOWN      (0x00000002u)   //引脚下拉被激活,Pull-down activation

3、测试程序

#include "LED.h"void MCU_LED_Init(void);//函数功能:MCU_LED灯引脚初始化,并配置为关灯
void MCU_LED_Init(void)
{GPIO_InitTypeDef  GPIO_InitStructure;__HAL_RCC_GPIOB_CLK_ENABLE();//使能GPIOB时钟//初始化GPIOB5GPIO_InitStructure.Pin = GPIO_PIN_5;                  //选择第5脚GPIO_InitStructure.Pull = GPIO_PULLUP;                //引脚上拉被激活GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_VERY_HIGH; //配置GPIO速度为极高GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;        //设置引脚工作模式为推挽输出方式HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);//根据GPIO_InitStructure结构变量指定的参数初始化GPIOB的外设寄存器MCU_LED_Off();
}
#ifndef __LED_H
#define __LED_H#include "py32f0xx_hal.h"#define MCU_LED_On()      HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5, GPIO_PIN_SET)   //输出高电平开灯
#define MCU_LED_Off()     HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5, GPIO_PIN_RESET) //输出高电平关灯
#define MCU_LED_Toggle()  HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5)                //输出电平翻转extern void MCU_LED_Init(void);#endif /* __LED_H */
#include "py32f0xx_hal.h"
#include "LED.h"void Delay_ms(uint32_t x_ms);int main(void)
{
//	HSE_Config();//初始化"HSI,HSE,LSI振荡器",HSE用作系统时钟(SYSCLK),同时配置"AHB时钟(HCLK)和APB时钟(PCLK)"uwTickFreq=HAL_TICK_FREQ_1KHZ;//准备配置"SysTick定时器"每1ms中断一次HAL_InitTick(PRIORITY_LOWEST);//配置"SysTick定时器"每1ms中断一次,优先级为最低
//  HAL_Init();//配置"SysTick定时器"每1ms中断一次,优先级为最低MCU_LED_Init();//MCU_LED灯引脚初始化,并配置为关灯HAL_Delay(1000);while (1){MCU_LED_Toggle();Delay_ms(500);}
}//函数功能:延时x_ms毫秒
void Delay_ms(uint32_t x_ms)
{uint8_t flag;uint32_t tickstart;uint32_t tickend;uint32_t tmp;tickstart = HAL_GetTick();//读取"SysTick计数器"的中断次数计数器uwTickflag=1;if (x_ms==0) flag=0;while (flag){tickend=HAL_GetTick();//读取"SysTick计数器"的中断次数计数器uwTickif(tickend>=tickstart) tickend=tickend - tickstart;else{tmp=0xFFFFFFFF;tmp=tmp-tickstart;tickend=tickend+tmp;
//			tickend=tickend+0xFFFFFFFF-tickstart;}if ( tickend > x_ms) flag=0;//超时}
}

http://www.lryc.cn/news/151253.html

相关文章:

  • Mac不想用iTerm2了怎么办
  • x86_64 ansible 源码编译安装
  • 数据结构学习系列之顺序表的两种插入方式
  • Matlab/Python教程系列 | 根据目录下的已有图片制作视频(动画)
  • Pyecharts数据可视化(一)
  • stable diffusion实践操作-提示词-图片结构
  • 程序员自由创业周记#2:前期准备
  • Elasticsearch实战(四):Springboot实现Elasticsearch指标聚合与下钻分析open-API
  • Opencv图像暗通道调优
  • 怎样来实现流量削峰方案
  • git status搜索.c和.h后缀及git新建分支
  • 【配置环境】Visual Studio 配置 OpenCV
  • java.sql.SQLException: com.mysql.cj.jdbc.Driver
  • React笔记(四)类组件(2)
  • 点云从入门到精通技术详解100篇-点云信息编码
  • Python爬虫解析网页内容
  • 从零开始学习Python爬虫技术,并应用于市场竞争情报收集
  • SpringCloudGateway集成SpringDoc CORS问题
  • 国际版阿里云/腾讯云:弹性高性能计算E-HPC入门概述
  • 【博客702】shell flock实现单例模式执行任务
  • 数据分析基础-数据可视化07-用数据分析讲故事
  • 策略模式简介
  • 学术加油站|基于端到端性能的学习型基数估计器综合测评
  • MySQL 使用规范 —— 如何建好字段和索引
  • Relation Extraction as Open-book Examination: Retrieval-enhanced Prompt Tuning
  • FFmpeg报错:Connection to tcp://XXX?timeout=XXX failed: Connection timed out
  • iOS开发Swift-7-得分,问题序号,约束对象,提示框,类方法与静态方法-趣味问答App
  • AUTOSAR规范与ECU软件开发(实践篇)7.10MCAL模块配置方法及常用接口函数介绍之Base与Resource的配置
  • Android11编译第二弹:USB连接MTP模式+USB调试+USB信任
  • Unity ShaderGraph教程——基础shader