脚本宝典收集整理的这篇文章主要介绍了STM32学习日记 DAY2,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
软硬件继续沿用。 .c和.h的区分:.c文件是程序文件,内含函数实现,变量定义等内容;.h文件是头文件,内含函数声明、宏定义、结构体定义等内容。 今天学习内容,将1<<?移位置1复0的操作进行优化,增加可读性。
#ifndef __STM32F10X_GPIO_H //当文件会被多个调用的时候,使用该方法不会因为重复定义报错(如果未定义,那么进行定义,如果定义了,则end)
#define __STM32F10X_GPIO_H
#include "stm32f10x.h"
#define GPIO_Pin_0 ((uint16_t)(1<<0))
#define GPIO_Pin_1 ((uint16_t)(1<<1))
#define GPIO_Pin_2 ((uint16_t)(1<<2))
#define GPIO_Pin_3 ((uint16_t)(1<<3))
#define GPIO_Pin_4 ((uint16_t)(1<<4))
#define GPIO_Pin_5 ((uint16_t)(1<<5))
#define GPIO_Pin_6 ((uint16_t)(1<<6))
#define GPIO_Pin_7 ((uint16_t)(1<<7))
#define GPIO_Pin_8 ((uint16_t)(1<<8))
#define GPIO_Pin_9 ((uint16_t)(1<<9))
#define GPIO_Pin_10 ((uint16_t)(1<<10))
#define GPIO_Pin_11 ((uint16_t)(1<<11))
#define GPIO_Pin_12 ((uint16_t)(1<<12))
#define GPIO_Pin_13 ((uint16_t)(1<<13))
#define GPIO_Pin_14 ((uint16_t)(1<<14))
#define GPIO_Pin_15 (uint16_t)(1<<15))
#define GPIO_Pin_A11 ((uint16_t)0xffff)
void GPIO_SetBits(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin);
void GPIO_RetsetBits(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin);
#endif //__STM32F10X_GPIO_H
#include "stm32f10x_gpio.h"
void GPIO_SetBits(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
{
GPIOx->BSRR = GPIO_Pin;
}
void GPIO_RetsetBits(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
{
GPIOx->BRR = GPIO_Pin;
}
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
void delay( unsigned int count )
{
for(; count!=0; count--);
}
int main(void)
{
*(unsigned int *)0X40021018 |= (1<<5);
GPIOD->CRL |= (1<<8);
while(1)
{
GPIO_RetsetBits(GPIOD,GPIO_Pin_2);
delay(0xfffff);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
delay(0xfffff);
}
}
void SystemInit(void)
{
}
以上是脚本宝典为你收集整理的STM32学习日记 DAY2全部内容,希望文章能够帮你解决STM32学习日记 DAY2所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。