stm32下常用函数~基本外设

本文详细介绍了使用STM32进行基础硬件操作,包括GPIO配置、LED控制(点灯、闪烁)、流水灯、蜂鸣器响应、按键检测以及OLED屏幕显示的实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习江协科技stm32基于库函数开发记录一下
代码压缩包地址:code

1.点灯

RCC_APB2PeriphClockCmd()//时钟使能

GPIO_Init(GPIOx,&GPIO_InitStruct)//引脚初始化

GPIO_SetBits(GPIOC,GPIO_Pin_13);//设置高电平

GPIO_ResetBits(GPIOC,GPIO_Pin_13);//设置低电平

main.c

//P13脚点灯
#include "stm32f10x.h"                  // Device header
int main()
{
   
   
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//时钟使能
	
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC,&GPIO_InitStruct);//结构体定义
	
	GPIO_SetBits(GPIOC,GPIO_Pin_13);//高电平
	GPIO_ResetBits(GPIOC,GPIO_Pin_13);
	while(1)
	{
   
   
		;
	}
}

2.led闪烁

GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//写引脚电平

main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main()
{
   
   
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//时钟使能
	
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStruct);//结构体定义
	
//	GPIO_SetBits(GPIOC,GPIO_Pin_13);//高电平
//	GPIO_ResetBits(GPIOC,GPIO_Pin_13);
	while(1)
	{
   
   
		GPIO_ResetBits(GPIOA, GPIO_Pin_0);
		Delay_ms(500);
		GPIO_SetBits(GPIOA,GPIO_Pin_0);
		Delay_ms(500);//gpio_setbits与gpio_resetbits
		
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
		Delay_ms(500);
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
		Delay_ms(500);//gpio_write函数
		
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)0);
		Delay_ms(500);
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)1);
		Delay_ms(500);//强制类型转换
	}
}

3.流水灯

GPIO_Write(GPIOA, ~0x0001);//按字节写

main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main()
{
   
   
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//时钟使能
	
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStruct);//结构体定义

	while(1)
	{
   
   
		GPIO_Write(GPIOA, ~0x0001);//按字节写//0000 0000 0000 0001
		Delay_ms(100);
		GPIO_Write(GPIOA, ~
STM32函数说明(中文) 本手册介绍了 32 位基于 ARM 微控制器 STM32F101xx 与 STM32F103xx 的固件函数库。 该函数库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函 数库还包括每一个外设的驱动描述和应用实例。通过使用本固件函数库,无需深入掌握细节,用户也可以 轻松应用每一个外设。因此,使用本固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。 每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用 API (application programming interface 应用编程界面)驱动,API 对该驱动程序的结构,函数和参数名称都进行 了标准化。 所有的驱动源代码都符合“Strict ANSI-C”标准(项目于范例文件符合扩充 ANSI-C 标准)。我们已经把驱动 源代码文档化,他们同时兼容 MISRA-C 2004 标准(根据需要,我们可以提供兼容矩阵)。由于整个固态 函数库按照“Strict ANSI-C”标准编写,它不受不同开发环境的影响。仅对话启动文件取决于开发环境。 该固态函数库通过校验所有库函数的输入值来实现实时错误检测。该动态校验提高了软件的鲁棒性。实时 检测适合于用户应用程序的开发和调试。但这会增加了成本,可以在终应用程序代码中移去,以优化代 码大小和执行速度。想要了解更多细节,请参阅 Section 2.5。 因为该固件库是通用的,并且包括了所有外设的功能,所以应用程序代码的大小和执行速度可能不是优 的。对大多数应用程序来说,用户可以直接使用之,对于那些在代码大小和执行速度方面有严格要求的应 用程序,该固件库驱动程序可以作为如何设置外设的一份参考资料,根据实际需求对其进行调整。 此份固件库用户手册的整体架构如下: „ 定义,文档约定和固态函数库规则。 „ 固态函数库概述(包的内容,库的架构),安装指南,库使用实例。 „ 固件库具体描述:设置架构和每个外设函数STM32F101xx 和 STM32F103xx 在整个文档中被写作 STM32F101x。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值