求教 学习STM32 GPIO_init底层程序
求教我刚开始学习STM32在看GPIO_init底层程序的时候pinmask=((uint32_t)0x0F)<<pos;tmpreg&=~pinmask;tmpreg|...
求教 我刚开始学习STM32 在看GPIO_init底层程序的时候
pinmask = ((uint32_t)0x0F) << pos;
tmpreg &= ~pinmask;
tmpreg |= (currentmode << pos);
这句话先把要操作的寄存器先清零了 在赋上输出速度的值
那tmpreg这个值的CNFY[1:0]不就一直是0.0(通用推挽输出)吗
那怎么设置其它模式?? 展开
pinmask = ((uint32_t)0x0F) << pos;
tmpreg &= ~pinmask;
tmpreg |= (currentmode << pos);
这句话先把要操作的寄存器先清零了 在赋上输出速度的值
那tmpreg这个值的CNFY[1:0]不就一直是0.0(通用推挽输出)吗
那怎么设置其它模式?? 展开
1个回答
展开全部
用库 GPIO_SetBits(GPIOA,GPIO_Pin_0) \\PA0 = 1
GPIO_ResetBits(GPIOA,GPIO_Pin_0) \\PA0 = 0
简单要更简单用做宏定义
#define PA0(a) if (a) \
GPIO_SetBits(GPIOA,GPIO_Pin_0);\
else \
GPIO_ResetBits(GPIOA,GPIO_Pin_0)
用候
PA0(1) //PA0 = 1
PA0(0) //PA0 = 0
面再加宏定义
#define ON 0
#define OFF 1
用候
PA0(OFF) //PA0 = 1
PA0(ON) //PA0 = 0
看程序都直观!!!
再加初始化 GPIOA口代码
void LED_GPIO_Config(void)
{
/*定义GPIO_InitTypeDef类型结构体*/
GPIO_InitTypeDef GPIO_InitStructure;
/*启GPIOC外设钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
/*选择要控制GPIOA引脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_4 | GPIO_Pin_5;
/*设置引脚模式通用推挽输*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/*设置引脚速率50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*调用库函数初始化GPIOA*/
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
GPIO_ResetBits(GPIOA,GPIO_Pin_0) \\PA0 = 0
简单要更简单用做宏定义
#define PA0(a) if (a) \
GPIO_SetBits(GPIOA,GPIO_Pin_0);\
else \
GPIO_ResetBits(GPIOA,GPIO_Pin_0)
用候
PA0(1) //PA0 = 1
PA0(0) //PA0 = 0
面再加宏定义
#define ON 0
#define OFF 1
用候
PA0(OFF) //PA0 = 1
PA0(ON) //PA0 = 0
看程序都直观!!!
再加初始化 GPIOA口代码
void LED_GPIO_Config(void)
{
/*定义GPIO_InitTypeDef类型结构体*/
GPIO_InitTypeDef GPIO_InitStructure;
/*启GPIOC外设钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
/*选择要控制GPIOA引脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_4 | GPIO_Pin_5;
/*设置引脚模式通用推挽输*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/*设置引脚速率50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*调用库函数初始化GPIOA*/
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询