网站修改数据,网站建设开发软件,网站的标签,过年做哪些网站致富目录 资料
寻址区
2区
TIMx
RTC WWDG IWDG SPI I2S USART I2C USB全速设备寄存器
bxCAN
BKP PWR DAC
ADC
编辑
EXTI
编辑 GPIO AFIO SDIO
DMA CRC
RCC FSMC
USB_OTG
ETH#xff08;以太网#xff09;
7区
配置流程
外部中断
硬件中断
例子
点灯
…目录 资料
寻址区
2区
TIMx
RTC WWDG IWDG SPI I2S USART I2C USB全速设备寄存器
bxCAN
BKP PWR DAC
ADC
编辑
EXTI
编辑 GPIO AFIO SDIO
DMA CRC
RCC FSMC
USB_OTG
ETH以太网
7区
配置流程
外部中断
硬件中断
例子
点灯
闪烁led
流水灯
键控led 资料
STM32F10x-中文参考手册
Cortex M3指南
stm32内核寄存器
寻址区 2区 TIMx RTC WWDG IWDG SPI I2S USART I2C USB全速设备寄存器 bxCAN BKP PWR DAC ADC EXTI GPIO AFIO SDIO DMA CRC RCC FSMC USB_OTG
待定
ETH以太网 7区 配置流程
外部中断
硬件中断
1.配置RCC_APB2ENR使能GPIOxAFIO
2.配置GPIOx_CRL/GPIOx_CRH选择输入上拉或下拉模式和端口速度
3.配置EXTI_IMR选择开放某条线上的中断请求
4.配置AFIO_EVCR选择中断的触发引脚
5.配置AFIO_EXTICRx根据中断引脚和EXTIx线进行配置
6.配置EXTI_RTSR/EXTI_FTSR选择上升沿或下降沿触发
7.配置SCB_AIRCR选择中断分组
8.配置PRI_x中断优先级寄存器阵列根据中断号中断分组和需要配置排队优先级与抢占优先级
9.配置SETENA寄存器族根据中断号使能外部中断
10.读取 ACTIVE寄存器族查看中断标志位 Cortex M3内核最多支持240个中断通道但是STMF103C8T6/C6T6只设计了60个可屏蔽的中断通道。60个中断通道与它们在240个中断通道里的中断号是一样的。 用图表示必要流程 例子
点灯
GPIO13低电平点亮led
#includestdio.h
int main(void){
//配置GPIOC时钟
*(unsigned *) 0x40021018 | (14);
//配置GPIOC为推挽模式输出
*(unsigned *) 0x40011004 ~(0xf20);
*(unsigned *) 0x40011004 | (121);}
1.使能GPIOC RCC时钟配置RCC_APB2ENR RCC_APB2使能寄存器
2.配置GPIOC13为推挽输出模式配置GPIOC_CRH GPIOC端口高位寄存器
闪烁led
GPIO13低电平点亮led
#includestdio.h
int main(void){int i;*(unsigned *) 0x40021012 | (14);*(unsigned *) 0x40011004 ~(0xF20);*(unsigned *) 0x40011004 | (121);while(1){for(i0;i0xfffff;i);*(unsigned *) 0x4001100c ~(*(unsigned *) 0x4001100c);}
}
1.使能GPIOC RCC时钟配置RCC_APB2ENR RCC_APB2使能寄存器
2.配置GPIOC13为推挽输出模式配置GPIOC_CRH GPIOC端口高位寄存器
3.配置GPIOC13输出电平配置GPIOC_ODR GPIOC端口输出数据寄存器
完成配置步骤1、2通过不断改变 GPIOC端口输出数据寄存器 的配置实现led的亮灭
流水灯
B3B4B5高电平点亮三个led
#includestdio.h
int main(void){int i;//配置GPIOB时钟*(unsigned *) 0x40021018 | (13);//初始化GPIOB3GPIOB4GPIOB5*(unsigned *) 0x40010c00 ~(0xFFF000);*(unsigned *) 0x40010c00 | (0x22212);while(1){*(unsigned *) 0x40010c0c 0;*(unsigned *) 0x40010c0c | (13);for(i0;i0xfffff;i);*(unsigned *) 0x40010c0c 0;*(unsigned *) 0x40010c0c | (14);for(i0;i0xfffff;i);*(unsigned *) 0x40010c0c 0;*(unsigned *) 0x40010c0c | (15);for(i0;i0xfffff;i);}
}
1.使能GPIOB RCC时钟配置RCC_APB2ENR RCC_APB2使能寄存器
2.配置B3,B4,B5为推挽输出模式配置GPIOB_CRL GPIOB端口低位寄存器
3.配置B3,B4,B5的输出电平配置GPIOB_ODR GPIOB端口输出数据寄存器
完成配置步骤1、2通过延时改变 GPIOB端口输出数据寄存器 的配置实现led的轮流亮灭
键控led
#includestdio.h
int main(void){int i;//配置GPIOBGPIOC的时钟*(unsigned *) 0x40021018 | (33);//初始化GPIOC*(unsigned *) 0x40011004 ~(0xf20);*(unsigned *) 0x40011004 | (121);//初始化GPIOB*(unsigned *) 0x40010c00 ~(0xf12);*(unsigned *) 0x40010c00 | (812);while(1){if((*(unsigned *) 0x40010c08 (13))0){for(i0;i1000;i)if((*(unsigned *) 0x40010c08 (13))0){*(unsigned *) 0x4001100c ~(*(unsigned *) 0x4001100c);}}}}
1.使能GPIOBGPIOC RCC时钟配置RCC_APB2ENR RCC_APB2使能寄存器
2.配置GPIOC为推挽输出模式配置GPIOC_CRH GPIOC端口高位寄存器
3.配置PB3为上拉输入模式配置GPIOB_CRL GPIOB端口低位寄存器
4.配置GPIOC13输出电平配置GPIOC_ODR GPIOC端口输出数据寄存器
完成配置步骤1、2、3通过判断GPIOB端口输出的是否为低电平控制灯的亮灭