2019-07-14 14:43发布
60user135 发表于 2019-1-9 08:00 PCout的宏定义也要发出来看看
liangxxxxx 发表于 2019-1-9 07:12 兄弟,main函数里面没有配置系统时钟,看看配置一下结果如何; 你现在学习的话,最好学习HAL库,使用用STM32CubeMX软件
最多设置5个标签!
//IO口操作,只对单一的IO口!
//确保n的值小于16!
#define PAout(n) BIT_ADDR(GPIOA_ODR_Addr,n) //输出
#define PAin(n) BIT_ADDR(GPIOA_IDR_Addr,n) //输入
#define PBout(n) BIT_ADDR(GPIOB_ODR_Addr,n) //输出
#define PBin(n) BIT_ADDR(GPIOB_IDR_Addr,n) //输入
#define PCout(n) BIT_ADDR(GPIOC_ODR_Addr,n) //输出
#define PCin(n) BIT_ADDR(GPIOC_IDR_Addr,n) //输入
#define PDout(n) BIT_ADDR(GPIOD_ODR_Addr,n) //输出
#define PDin(n) BIT_ADDR(GPIOD_IDR_Addr,n) //输入
#define PEout(n) BIT_ADDR(GPIOE_ODR_Addr,n) //输出
#define PEin(n) BIT_ADDR(GPIOE_IDR_Addr,n) //输入
#define PFout(n) BIT_ADDR(GPIOF_ODR_Addr,n) //输出
#define PFin(n) BIT_ADDR(GPIOF_IDR_Addr,n) //输入
#define PGout(n) BIT_ADDR(GPIOG_ODR_Addr,n) //输出
#define PGin(n) BIT_ADDR(GPIOG_IDR_Addr,n) //输入
#define PHout(n) BIT_ADDR(GPIOH_ODR_Addr,n) //输出
#define PHin(n) BIT_ADDR(GPIOH_IDR_Addr,n) //输入
#define PIout(n) BIT_ADDR(GPIOI_ODR_Addr,n) //输出
#define PIin(n) BIT_ADDR(GPIOI_IDR_Addr,n) //输入
#include "sys.h"
#include "delay.h"
#include "usart.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); //时钟使能
//GPIO C0,C6初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_6 ; //LED0 -- PC0 LED1 -- PC6
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //普通输出模式
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉
GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化GPIO
GPIO_SetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_6); //GPIO C0,C6设置为高
}
int main(void)
{
delay_init(168); //初始化延时函数
LED_Init(); //初始化LED端口
/**下面是通过直接操作库函数的方式实现IO控制**/
while(1)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_6); //GPIO C0,C6设置为低
delay_ms(500); //延时500ms
GPIO_SetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_6); //GPIO C0,C6设置为高
delay_ms(500); //延时500ms
}
}
改成这样呢
一周热门 更多>