STM32F103学习之四种点灯方式 |
您所在的位置:网站首页 › 家有儿女初长成剧情分集介绍 › STM32F103学习之四种点灯方式 |
STM32F103学习之四种点灯方式
在古老的传说中有一万种点灯方式,现在咱先学它四种 方法1:SET和RESET方法 //GPIO_SetBits 对IO口置位,输出高电平 void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); //GPIO_ResetBits 对IO口复位,输出低电平 void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);例如 GPIO_SetBits(GPIOA,GPIO_Pin_1); //PA1口输出高电平1 GPIO_ResetBitsGPIOA,GPIO_Pin_1); /PA1口输出高电平0注:个人不怎么喜欢用这种方式(* ̄(oo) ̄) 方法2:利用枚举 void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);//第三个参数是一个枚举 /** * @brief Bit_SET and Bit_RESET enumeration */ typedef enum { Bit_RESET = 0, Bit_SET }BitAction;例如 GPIO_WriteBit(GPIOA,GPIO_Pin_1,(BitAction)(1)); //PA1口输出高电平1// (BitAction)(0) 对应Bit_RESET,将IO输出置0 // (BitAction)(1) 对应Bit_SET,将IO输出置1 //第三个参数可以直接写Bit_RESET或者Bit_SET,但是不建议 方法3:状态反转 和方法2一样,只是进行了取反 //取反PA1 GPIO_WriteBit(GPIOA,GPIO_Pin_1,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_1,)));方法4:直接数值操作 void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);例如 GPIO_Write(GPIOA,0x0001); //GPIOA的第0位写入1,其余写入0 GPIO_Write(GPIOA,0x0000); //GPIOA16位都写入0这种方法大大简化代码,但是很容易出现失误, 此外,当我们需要进行对多个IO口分开进行写0或写1时,建议采用或运算 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |