此版代码由IO口PB0 PB1 PB5 PB6输出 想更丰富,只需照源码更改
不懂可以联系我 !!!不懂可以联系我 !!!不懂可以联系我 !!!
新人 多多关照
GPIO寄存器描述 《STM32参考手册中文-p75》
1、端口配置低寄存器(GPIOx_CRL)(x = A...E)
2、端口配置高寄存器(GPIOx_CRH)(x = A...E)
3、端口输入数据寄存器(GPIOx_IDR)(x = A...E)
这些位为只读并只能以字(16位)的形式读出。读出的值为对应I/O口的状态。
4、端口输出数据寄存器(GPIOx_ODR)(x = A...E)
只能以字(16bit)的形式操作,复位值全是0。写0即输出0,写1即输出1。
5、端口位设置/清除寄存器(GPIOx_BSRR)(x = A...E)
高16bit写1用于清0,低16bit写1用于置位,同时写1的话低16bi有效。
6、端口位清除寄存器(GPIOx_BRR)(x = A...E)
低16位写1用于置位。
7、端口配置锁定寄存器(GPIOx_LCKR)(x = A...E)
GPIO八种模式
typedef enum
{ GPIO_Mode_AIN = 0x0, /* 模拟输入 */
GPIO_Mode_IN_FLOATING = 0x04, /* 浮空输入,复位后的状态 */
GPIO_Mode_IPD = 0x28, /* 下拉输入 */
GPIO_Mode_IPU = 0x48, /* 上拉输入 */
GPIO_Mode_Out_OD = 0x14, /* 开漏输出 */
GPIO_Mode_Out_PP = 0x10, /* 推挽输出 */
GPIO_Mode_AF_OD = 0x1C, /* 复用开漏输出 */
GPIO_Mode_AF_PP = 0x18 /* 复用推挽输出 */
}GPIOMode_TypeDef;
单片机源程序如下:
- #include "stm32f10x.h"
- #include "bsp_led.h"
- #define SOFT_DELAY Delay(0x0FFFFF);
- void Delay(__IO u32 nCount);
- /**
- * @brief 主函数
- * @param 无
- * @retval 无
- */
- int main(void)
- {
- /* LED 端口初始化 */
- LED_GPIO_Config();
- while (1)
- {
- LED1_ON; // 亮
- SOFT_DELAY;
- LED1_OFF; // 灭
- LED2_ON; // 亮
- SOFT_DELAY;
- LED2_OFF; // 灭
- LED3_ON; // 亮
- SOFT_DELAY;
- LED3_OFF; // 灭
- LED4_ON; // 亮
- SOFT_DELAY;
- LED4_OFF; // 灭
- /*轮流显示 红绿蓝黄紫青白 颜色*/
- LED_A;
- SOFT_DELAY;
-
- LED_B;
- SOFT_DELAY;
-
- LED_C;
- SOFT_DELAY;
-
- LED_D;
- SOFT_DELAY;
-
- LED_E;
- SOFT_DELAY;
-
- LED_F;
- SOFT_DELAY;
-
- LED_G;
- SOFT_DELAY;
-
- LED_H;
- SOFT_DELAY;
-
- LED_I;
- SOFT_DELAY;
-
- LED_J;
- SOFT_DELAY;
- LED_K;
- SOFT_DELAY;
-
- LED_L;
- SOFT_DELAY;
-
- LED_M;
- SOFT_DELAY;
-
- LED_N;
- SOFT_DELAY;
-
- LED_O;
- SOFT_DELAY;
-
- LED_P;
- SOFT_DELAY;
- }
- }
- void Delay(__IO uint32_t nCount) //简单的延时函数
- {
- for(; nCount != 0; nCount--);
- }
- /*********************************************END OF FILE**********************/
复制代码
所有资料51hei提供下载:
Fwlib-流水灯 - 副本.7z
(180.59 KB, 下载次数: 78)
|