网站策划总结,做网站大流量,点餐小程序开发,凡诺网站建设GPIO初始化函数 GPIO_Ini#xff1a;初始化GPIO引脚的模式#xff0c;速度和引脚号 GPIO_Init(GPIOA, GPIO_InitStruct); // 初始化GPIOA的引脚0 GPIO输出控制函数 GPIO_SetBits#xff1a;将指定的GPIO引脚设置为高电平 GPIO_SetBits(GPIOA, GPIO_Pin_0); // 将GPIO… GPIO初始化函数 GPIO_Ini初始化GPIO引脚的模式速度和引脚号 GPIO_Init(GPIOA, GPIO_InitStruct); // 初始化GPIOA的引脚0 GPIO输出控制函数 GPIO_SetBits将指定的GPIO引脚设置为高电平 GPIO_SetBits(GPIOA, GPIO_Pin_0); // 将GPIOA的引脚0设置为高电平 GPIO_ResetBits将指定的GPIO引脚设置为低电平 GPIO_ResetBits(GPIOA, GPIO_Pin_0); // 将GPIOA的引脚0设置为低电平 GPIO_WriteBit写入指定的电平状态到GPIO引脚 GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET); // 将GPIOA的引脚0设置为高电平 GPIO_Write写入一个16位值到GPIO端口 GPIO_Write(GPIOA, 0x0001); // 将GPIOA的引脚0设置为高电平其他引脚为低电平 GPIO输入读取函数 GPIO_ReadInputDataBit读取指定GPIO引脚的电平状态 if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) Bit_SET) { // 引脚0为高电平 } GPIO_ReadInputData读取整个GPIO端口的输入状态 uint16_t portValue GPIO_ReadInputData(GPIOA); // 读取GPIOA的输入状态 GPIO时钟使能函数 RCC_APB2PeriphClockCmd使能GPIO端口的时钟。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 使能GPIOA的时钟 时钟使能是指为某个外设如GPIO、USART、SPI等提供时钟信号使其能够正常工作。 GPIO复用功能配置 GPIO_PinAFConfig配置GPIO引脚的复用功能 GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_USART1); // 配置GPIOA的引脚9为USART1功能 GPIO引脚的复用功能是指将GPIO引脚用于除普通输入输出之外的其他功能。STM32的GPIO引脚不仅可以作为普通的数字输入或输出还可以配置为其他外设功能如USART、SPI、I2C、定时器等的引脚。 点亮LED
#include stm32f10x.h // 包含STM32F10x系列的头文件int main(void) {// 使能GPIOA的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 定义并初始化GPIO结构体GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; // 修正拼写错误GPIO_Mode_OUT_PP - GPIO_Mode_Out_PPGPIO_InitStructure.GPIO_Pin GPIO_Pin_0; // 选择引脚0GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; // 设置输出速度为50MHz// 初始化GPIOA的引脚GPIO_Init(GPIOA, GPIO_InitStructure);// 将GPIOA的引脚0设置为低电平GPIO_ResetBits(GPIOA, GPIO_Pin_0); // 修正拼写错误GPIO_ResetLBits - GPIO_ResetBits// 主循环while (1) {// 可以在这里添加其他逻辑}
}LED闪烁
#include stm32f10x.h // 包含STM32F10x系列的头文件
#include Delay.h
int main(void) {// 使能GPIOA的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 定义并初始化GPIO结构体GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; // 修正拼写错误GPIO_Mode_OUT_PP - GPIO_Mode_Out_PPGPIO_InitStructure.GPIO_Pin GPIO_Pin_0; // 选择引脚0GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; // 设置输出速度为50MHz// 初始化GPIOA的引脚GPIO_Init(GPIOA, GPIO_InitStructure);// 主循环while (1) {GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);Delay_ms(500);GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);Delay_ms(500);}
}流水灯
#include stm32f10x.h // 包含STM32F10x系列的头文件
#include Delay.h
int main(void) {// 使能GPIOA的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 定义并初始化GPIO结构体GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; // 修正拼写错误GPIO_Mode_OUT_PP - GPIO_Mode_Out_PPGPIO_InitStructure.GPIO_Pin GPIO_Pin_0 |GPIO_Pin_1|GPIO_Pin_2; // 选择引脚0GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; // 设置输出速度为50MHzGPIO_Init(GPIOA,GPIO_InitStructure);// 主循环while (1) {GPIO_Write(GPIOA,~0x0001);Delay_ms(500);GPIO_Write(GPIOA,~0x0002);Delay_ms(500);GPIO_Write(GPIOA,~0x0004);Delay_ms(500);GPIO_Write(GPIOA,~0x0008);Delay_ms(500);GPIO_Write(GPIOA,~0x00010);Delay_ms(500);GPIO_Write(GPIOA,~0x00020);Delay_ms(500);GPIO_Write(GPIOA,~0x00040);Delay_ms(500);GPIO_Write(GPIOA,~0x00080);Delay_ms(500);}
}蜂鸣器
#include stm32f10x.h // 包含STM32F10x系列的头文件
#include Delay.h
int main(void) {// 使能GPIOA的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);// 定义并初始化GPIO结构体GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; // 修正拼写错误GPIO_Mode_OUT_PP - GPIO_Mode_Out_PPGPIO_InitStructure.GPIO_Pin GPIO_Pin_12; // 选择引脚0GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; // 设置输出速度为50MHzGPIO_Init(GPIOA,GPIO_InitStructure);// 主循环while (1) {GPIO_Write(GPIOB,GPIO_Pin_12);Delay_ms(500);GPIO_Write(GPIOB,GPIO_Pin_12);Delay_ms(500);}
}GPIO使用步骤初始化时钟然后定义结构体赋值结构体 GPIO_Mode选择输入输出模式 GPIO_Pin选择引脚 GPIO_Speed选择速度 OLED:有机发光二极管
OLED驱动函数 STM32中断系统 外部中断 定时器 输出比较功能
输出比较Output CompareOC 是定时器Timer的一种功能用于生成精确的时间信号或控制外部设备如PWM信号、脉冲生成等。输出比较功能通过比较定时器的计数器值CNT和捕获/比较寄存器CCR的值来触发特定的事件如翻转输出、产生中断等。 #include stm32f10x.h // Device header
#include Delay.h
#include OLED.h
#include PWM.huint8_t i; //定义在定时器中断里自增的变量int main(void)
{/*模块初始化*/OLED_Init(); //OLED初始化PWM_Init(); //定时中断初始化while (1){for(i0;i100;i){PWM_SetComparel(i);Delay_ms(10);}for(i0;i100;i){PWM_SetComparel(100-i);Delay_ms(10);}
}