这个原理图中MCU_SWIM是烧录脚,但是和一个按键的输入IO口复用,然后我在stm8s_gpio.h和stm8s.h中均没有对复用功能的函数,然后应该怎么去定义这些复用功能,像STM32在stm32f10x.c中有定义 void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState){ uint32_t tmp = 0x00, tmp1 = 0x00, tmpreg = 0x00, tmpmask = 0x00; /* Check the parameters */ assert_param(IS_GPIO_REMAP(GPIO_Remap)); assert_param(IS_FUNCTIONAL_STATE(NewState)); if((GPIO_Remap & 0x80000000) == 0x80000000) { tmpreg = AFIO->MAPR2; } else { tmpreg = AFIO->MAPR; } tmpmask = (GPIO_Remap & DBGAFR_POSITION_MASK) >> 0x10; tmp = GPIO_Remap & LSB_MASK; if ((GPIO_Remap & (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) == (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) { tmpreg &= DBGAFR_SWJCFG_MASK; AFIO->MAPR &= DBGAFR_SWJCFG_MASK; } else if ((GPIO_Remap & DBGAFR_NUMBITS_MASK) == DBGAFR_NUMBITS_MASK) { tmp1 = ((uint32_t)0x03) << tmpmask; tmpreg &= ~tmp1; tmpreg |= ~DBGAFR_SWJCFG_MASK; } else { tmpreg &= ~(tmp << ((GPIO_Remap >> 0x15)*0x10)); tmpreg |= ~DBGAFR_SWJCFG_MASK; } if (NewState != DISABLE) { tmpreg |= (tmp << ((GPIO_Remap >> 0x15)*0x10)); } if((GPIO_Remap & 0x80000000) == 0x80000000) { AFIO->MAPR2 = tmpreg; } else { AFIO->MAPR = tmpreg; } } 但是STM8S里面的标准库里面没有这样的复用功能重映射的函数定义改如何解?各位有没有遇到过这样的问题的? |
STMS005K6T6 如何采集内部参考电压。
stm8s003 adc中断和通道切换的问题
adc施密特触发器stm8
stm8l051f3 TSSOP20 封装,待机模式下,2天后,电流突然增加到140UA
STM8S用STVP烧录怎么加密?
如何使用ST官网例程_LIN总线通讯_STM8AF
STM8 LIN
IAR代码编辑太费劲了,想问一下有没有好的方法,试了VScode但是头文件老是报错,调了很久也没调好,想换个方法了。
想问一下各位大佬,IAR下载调试代码时出现 warning: is an illegal data sample expression IAR是什么意思啊?
STM8S标准库TIM1编码器功能不计数,请大师帮我看看
我用的编译器是IAR,不是ST的
当全局配置寄存器的SWD的bit位置1时,烧录口的引脚成为GPIO。版主英文功底之深,佩服。多谢指点迷津