|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
还是记录在网上比较好找一些
IO分配A、B、C、D、E几组,每组16个点,既可作为输入也可作为输出
用到哪个IO,先要对其进行配置,配置格式固定
配置时还要同时开启对应的时钟
使用每个芯片内装置都用启用对应的时钟,比如IO,串口,总线,中断,各自有各自的时钟。
void GPIO_Set(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //声明结构体变量
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //每组IO都有对应的时钟,这个是GPIOB组的时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; //同一组内想要设置的具体针脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO频率
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //工作模式选择,输入还是输出,输入方式与输出方式
GPIO_Init(GPIOB, &GPIO_InitStructure); //把设置的参数输入芯片控制器
}
单个IO控制命令
GPIO_SetBits(GPIOB, GPIO_Pin_6); //把B组6号设置为1
GPIO_ResetBits(GPIOB, GPIO_Pin_3); //把B组3号设置为0
在网上找的1ms延时,时间不准,但是差不多
void Delayms(u16 ms)
{
u16 i,j;
u8 k;
for(i=0;i<ms;i++)
for(j=0;j<0x0500;j++) k++;
}
闪灯程序
#include "stm32f10x.h"
int main(void)
{
GPIO_Set() ; //配置IO,配置完就可以用了
while(1)
{
GPIO_SetBits(GPIOB, GPIO_Pin_6);
Delayms(1000); //1秒延时
GPIO_ResetBits(GPIOB, GPIO_Pin_6);
Delayms(1000);
}
}
|
打赏
-
查看全部打赏
|