STM32程序解读,这段程序啥意思啊 能给我解释一下么
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32程序解读,这段程序啥意思啊 能给我解释一下么相关的知识,希望对你有一定的参考价值。
#include "led.h"
void led_init(void)
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOG, ENABLE);
GPIOE_MODER &= ~((3 << 6) | (3 << 8));
GPIOE_MODER |= ((1 << 6) | (1 << 8));
GPIOE_OTYPER &= ~((1 << 3) | (1 << 4));
GPIOE_OSPEEDR &= ~((3 << 6) | (3 << 8));
GPIOE_OSPEEDR |= ((2 << 6) | (2 << 8));
GPIOE_PUPDR &= ~((3 << 6) | (3 << 8));
GPIOE_ODR |= ((1 << 3) | (1 << 4));
GPIOG_MODER &= ~(3 << 18);
GPIOG_MODER |= (1 << 18);
GPIOG_OTYPER &= ~(1 << 9);
GPIOG_OSPEEDR &= ~(3 << 18);
GPIOG_OSPEEDR |= (2 << 18);
GPIOG_PUPDR &= ~(3 << 18);
GPIOG_ODR |= (1 << 9);
void led_on(int nu)
switch(nu)
case 0: GPIOG_ODR &= ~(1 << 9); break;
case 1: GPIOE_ODR &= ~(1 << 4); break;
case 2: GPIOE_ODR &= ~(1 << 3); break;
void led_off(int nu)
switch(nu)
case 0: GPIOG_ODR |= (1 << 9); break;
case 1: GPIOE_ODR |= (1 << 4); break;
case 2: GPIOE_ODR |= (1 << 3); break;
先把A口的时钟使能,再将其失能。这样A口就不能用了。
通常我们初始化也会这么写:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB
|RCC_APB2Periph_GPIOC |RCC_APB2Periph_GPIOD ,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_Init(GPIOD, &GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB
|RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD , DISABLE);
比你的句子多一个端口模式的配置 。
在keil Debug时你会从GPIO的寄存器看到,没有用到的IO都是这里初始化设置的模式。可见在你再次改动配置之前,IO都是按照上次的配置执行的。所以端口的模式我们也是有必要进行初始化的。
以上是关于STM32程序解读,这段程序啥意思啊 能给我解释一下么的主要内容,如果未能解决你的问题,请参考以下文章
麻烦您能给我解释一下正则表达式REGEXP_REPLACE函数后面的'\1/\2/\3'是啥意思,前面的都能看懂,谢谢
在MDK中 写基于STM32的程序是有 ErrorStatus HSEStartUpStatus; u8 count=0; 这么两个语句 啥意思