stm32f103的I/O口怎么使用重新定义功能
求助各位大侠! stm32f103xx数据手册的引脚定义上有一个重新定义功能,打开GPIO口时怎么编写?看参考资料GPIO部分,有一个叫做AF的,好像是这个玩意来分配的。。。不过Cube自动生成初始化代码,搞定一切,初学者还是多看资料!!! MrJiu 发表于 2018-10-15 13:50
看参考资料GPIO部分,有一个叫做AF的,好像是这个玩意来分配的。。。不过Cube自动生成初始化代码,搞定一切 ...
谢谢!
刚接触单片机不久,看的教程是使用库函数编写的,用“函数GPIO_AFIODeInit”来使用复用功能,手册里面的重定义功能是指的这个函数使用的重映射功能吗? 本帖最后由 stm1024 于 2018-10-15 14:08 编辑
如果是使用标准库,使用GPIO口的替换功能,要打开相应的RCC,例如对于STM32F103VET6:void bxCAN_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_itd;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
//PB8 for CAN RX
GPIO_itd.GPIO_Pin = GPIO_Pin_8;
GPIO_itd.GPIO_Mode = GPIO_Mode_IPU;
GPIO_itd.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_itd);
//PB9 for CAN TX
GPIO_itd.GPIO_Pin = GPIO_Pin_9;
GPIO_itd.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB, &GPIO_itd);
//Pin Remap
GPIO_PinRemapConfig(GPIO_Remap1_CAN1, ENABLE);
}这个示例除了演示使用针脚的AF功能外,还把演示了PIN Remap功能。
knightjie 发表于 2018-10-15 14:01
谢谢!
刚接触单片机不久,看的教程是使用库函数编写的,用“函数GPIO_AFIODeInit”来使用复用功能,手册 ...
对!!!本质上库函数也是在里么设置的寄存器,只是对寄存器的封装罢了!!! 举例:PA8映像第二功能AF_2 TIM1_CH1
GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_2); 如果初学,对MCU还不熟,建议还是用CUBEMX来配置,这样可以避免一些小问题,影响调试 stm1024 发表于 2018-10-15 14:07
如果是使用标准库,使用GPIO口的替换功能,要打开相应的RCC,例如对于STM32F103VET6:这个示例除了演示使用 ...
我理解的是这个代码配置了pin8和9的管脚,打开复用功能和时钟,最后利用GPIO_PinRemap函数使用重定义中的can通讯功能。
butterflyspring 发表于 2018-10-15 15:21
如果初学,对MCU还不熟,建议还是用CUBEMX来配置,这样可以避免一些小问题,影响调试 ...
这个没接触过哦 wenyangzeng 发表于 2018-10-15 15:21
举例:PA8映像第二功能AF_2 TIM1_CH1
GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_2);
谢谢
页:
[1]
2