各位大虾,有客户在用HK32F030MJ4M6-SOP8时,需要用到串口。因为SOP8只有6个IO, 因此需要把SWD调试接口配置成IO来做串口的收发。下面代码就是实现SWD接口用作USART接口的配置:PD5(Tx),PB5(Rx)
void USART_GPIO_Configurature(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOD,GPIO_PinSource5,GPIO_AF_1); //PD5(TX)
RCC_APB1PeriphClockCmd(RCC_APB1Periph_IOMUX,ENABLE); //打开IOMux时钟
//PD5_TX
GPIO_IOMUX_ChangePin(IOMUX_PIN8,IOMUX_PD5_SEL_PD5);//SOP8 PIN8(PD5) set as PD5 IO
//用PB5配置成RX
GPIO_IOMUX_ChangePin(IOMUX_PIN5,IOMUX_PB5_SEL_PB5);//SOP8 PIN5(PB5) set as PB5 IO
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource5,GPIO_AF_1);
} |