一、实验原理
STM32F103C8T6简介
STM32F103C8T6是一款由意法半导体公司推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列。
二、接线图
耗材准备:八个led灯,一块stm32F103C8T6核心板,STLINK驱动以及几根电源地线
led正极插到正极供电孔负极依次插到PA0-PA7的端口
实物图:
三、GPIO初始化设置
1,根据芯片手册查询端口地址
如上图所示,GPIOA的地址在0x40010800-0x40010BFF之间,GPIOB、GPIOC均可查询得到
2,GPIO端口初始化配置
1.打开GPIOA时钟
RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA, ENABLE);
2.初始化端口
这里我们选用的流水灯是GPIOA的0到7端口,在编写代码时,在端口处添加GPIO_Pin_1以及Pin2直至八个引脚都选上,可直接替换成 GPIO_Pin_AII 原因:将十六进制转换为二进制为 0xFFFF 也就是所有位都为1,选中所有引脚,直接将16个端口设置为推挽输出。
或
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2.......;
3.主循环
1.为了同时控制16个端口,使用
参数1:GPIOx
参数2:指定写到输出数据寄存器的值,对应PA0-PA15,总共16个端口
GPIO_Write (GPIOA,~0x0001);
4.延时函数
Delay_ms(500); 可自定义延时时间
5.复制
GPIO_Write (GPIOA,~0x0001);
Delay_ms(500);
依次改为 01,02,04,08,10,20,40,80
四、功能实现
由于不能插入视频,所以这里就不做演示了,大家可以实现流水灯就行。