网网站站建建设设,龙岩网站设计一般要多久,网站做全景,中山网站建设制作【STM32】学习笔记-江科大
1、STM32F103C8T6的GPIO口输出 2、GPIO口输出
GPIO#xff08;General Purpose Input Output#xff09;通用输入输出口可配置为8种输入输出模式引脚电平#xff1a;0V~3.3V#xff0c;部分引脚可容忍5V输出模式下可控制端口输出高低电平#…【STM32】学习笔记-江科大
1、STM32F103C8T6的GPIO口输出 2、GPIO口输出
GPIOGeneral Purpose Input Output通用输入输出口可配置为8种输入输出模式引脚电平0V~3.3V部分引脚可容忍5V输出模式下可控制端口输出高低电平用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等输入模式下可读取端口的高低电平或电压用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。
3、基本结构 4、常用函数
链接 https://blog.csdn.net/lonelypasserby/article/details/129144699
5、实例接线图实物图函数
5.1 LED闪烁 Delay
include stm32f10x.h/*** brief 微秒级延时* param xus 延时时长范围0~233015* retval 无*/
void Delay_us(uint32_t xus)
{SysTick-LOAD 72 * xus; //设置定时器重装值SysTick-VAL 0x00; //清空当前计数值SysTick-CTRL 0x00000005; //设置时钟源为HCLK启动定时器while(!(SysTick-CTRL 0x00010000)); //等待计数到0SysTick-CTRL 0x00000004; //关闭定时器
}/*** brief 毫秒级延时* param xms 延时时长范围0~4294967295* retval 无*/
void Delay_ms(uint32_t xms)
{while(xms--){Delay_us(1000);}
}/*** brief 秒级延时* param xs 延时时长范围0~4294967295* retval 无*/
void Delay_s(uint32_t xs)
{while(xs--){Delay_ms(1000);}
} #include stm32f10x.h // Device header
#include Delay.hint main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStructure);while (1){GPIO_ResetBits(GPIOA, GPIO_Pin_0);Delay_ms(500);GPIO_SetBits(GPIOA, GPIO_Pin_0);Delay_ms(500);GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);Delay_ms(500);GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);Delay_ms(500);GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)0);Delay_ms(500);GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)1);Delay_ms(500);}
}5.2流水灯 #include stm32f10x.h // Device header
#include Delay.hint main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin GPIO_Pin_All;//GPIO_Pin_1|GPIO_Pin_2。。。。GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStructure);while (1){ //GPIO_Write输出GPIO_Write(GPIOA, ~0x0001); //0000 0000 0000 0001Delay_ms(100);GPIO_Write(GPIOA, ~0x0002); //0000 0000 0000 0010Delay_ms(100);GPIO_Write(GPIOA, ~0x0004); //0000 0000 0000 0100Delay_ms(100);GPIO_Write(GPIOA, ~0x0008); //0000 0000 0000 1000Delay_ms(100);GPIO_Write(GPIOA, ~0x0010); //0000 0000 0001 0000Delay_ms(100);GPIO_Write(GPIOA, ~0x0020); //0000 0000 0010 0000Delay_ms(100);GPIO_Write(GPIOA, ~0x0040); //0000 0000 0100 0000Delay_ms(100);GPIO_Write(GPIOA, ~0x0080); //0000 0000 1000 0000Delay_ms(100);}
} 5.3蜂鸣器 #include stm32f10x.h // Device header
#include Delay.hint main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin GPIO_Pin_12;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOB, GPIO_InitStructure);// GPIO_ResetBits是一个重要的函数,//可以用于控制STM32芯片的GPIO端口输出电平。该函数通过重置指定GPIO端口//的某些引脚来实现设置GPIO端口输出电平的目的。该函数可用于许多应用场合,包括控制LED等应用。while (1){GPIO_ResetBits(GPIOB, GPIO_Pin_12);Delay_ms(100);GPIO_SetBits(GPIOB, GPIO_Pin_12);Delay_ms(100);GPIO_ResetBits(GPIOB, GPIO_Pin_12);Delay_ms(100);GPIO_SetBits(GPIOB, GPIO_Pin_12);Delay_ms(700);}
}
存在的函数https://blog.csdn.net/only_a_Heroic_car/article/details/130067196