STMCU小助手
发布时间:2022-6-26 12:35
|
复用 STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。 " a9 M7 A- L2 ~- u9 L2 E 哪些端口可以复用为什么,这个查表就可以了
2,如何进行端口复用?
比如AF1要复用到TIM1;; W' {& F+ X9 `8 p+ L% Z3 ^ 通过设置AFRL寄存器和AFRH寄存器 就可以AF1----->TIM1;) c2 J) v# X7 J4 c( r 一组IO口有16个 GPIOAF0~15 AFRL负责低八位IO) Z$ |/ r& f& v1 V. L7 C AFRH负责高八位IO
举例8 N& C4 I0 l2 O) ?) J
" t* h% ~6 ]. W 除了ADC或者DAC配置为模拟之外,其他外设都要配置为复用 $ ~, V1 ]- d6 |5 m5 r
4 l9 r0 c Q) E9 r( v3 l% s+ Z/ H
//完整版 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9,10 GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1); GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1); , q8 ]! t2 \& ]7 v
|* ]6 x$ A- |; O: _; m0 V GPIOA5 复用为ADC1通道5 IO口
8 t; O8 `1 \" n6 L * X5 `: j3 k8 Z
//先初始化ADC1通道5 IO口 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//PA5 通道5 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//模拟输入 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//不带上下拉 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化 , k5 |( c% Q1 a* q) @# b |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版