目前用STM8S208C8芯片,发现初始化GPIOC.4管脚为推挽输出,程序运行出错提示:error:gdi-error[40127]:flash memory not accessible while core is running.
把GPIOC.4管脚设置为上拉输出,程序运行部报错,但是输出不了高电平;
把GPIOC.4管脚设置为推挽输出,去掉外围电路,又正常了
代码:
GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT_PP_HIGH_FAST;//GPIO_MODE_OUT_OD_LOW_FAST;//
GPIO_InitStructure.GPIO_Pin = GPIO_PC4;
GPIO_Init(GPIOC, &GPIO_InitStructure);
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_Init_TypeDef* GPIO_InitStruct)
{
/*----------------------*/
/* Check the parameters */
/*----------------------*/
assert_param(IS_GPIO_MODE_OK(GPIO_InitStruct->GPIO_Mode));
assert_param(IS_GPIO_PIN_OK(GPIO_InitStruct->GPIO_Pin));
/*-----------------------------*/
/* Input/Output mode selection */
/*-----------------------------*/
if ((((u8)(GPIO_InitStruct->GPIO_Mode)) & (u8)0x80) != (u8)0x00) /* Output mode */
{
if ((((u8)(GPIO_InitStruct->GPIO_Mode)) & (u8)0x10) != (u8)0x00) /* High level */
{
GPIOx->ODR |= GPIO_InitStruct->GPIO_Pin;
}
else /* Low level */
{
GPIOx->ODR &= (u8)(~(GPIO_InitStruct->GPIO_Pin));
}
/* Set Output mode */
GPIOx->DDR |= GPIO_InitStruct->GPIO_Pin;
}
else /* Input mode */
{
/* Set Input mode */
GPIOx->DDR &= (u8)(~(GPIO_InitStruct->GPIO_Pin));
}
/*------------------------------------------------------------------------*/
/* Pull-Up/Float (Input) or Push-Pull/Open-Drain (Output) modes selection */
/*------------------------------------------------------------------------*/
if ((((u8)(GPIO_InitStruct->GPIO_Mode)) & (u8)0x40) != (u8)0x00) /* Pull-Up or Push-Pull */
{
GPIOx->CR1 |= GPIO_InitStruct->GPIO_Pin;
}
else /* Float or Open-Drain */
{
GPIOx->CR1 &= (u8)(~(GPIO_InitStruct->GPIO_Pin));
}
/*-----------------------------------------------------*/
/* Interrupt (Input) or Slope (Output) modes selection */
/*-----------------------------------------------------*/
if ((((u8)(GPIO_InitStruct->GPIO_Mode)) & (u8)0x20) != (u8)0x00) /* Interrupt or Slow slope */
{
GPIOx->CR2 |= GPIO_InitStruct->GPIO_Pin;
}
else /* No external interrupt or No slope control */
{
GPIOx->CR2 &= (u8)(~(GPIO_InitStruct->GPIO_Pin));
}
}
出错代码:GPIOx->CR1 |= GPIO_InitStruct->GPIO_Pin;
电路: |