STM32F030F4的USART2有谁用过?还有USART1用了就不能使用I2C了?
我USART1配置好了能通信,但是按同样方式配置USART2就不能通信?不知道是什么问题。还有个问题如果串口USART1占用了 I2C1是不是就不能用了 引文都在PA9 和PA10上。代码下面:
void USART1_uConfiguration(void)
{
GPIO_InitTypeDef GPIO_uInitStructure;
USART_InitTypeDefUSART_uInitStructure;
// USART1_TX -> PA9
// USART1_RX -> PA10
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_1);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_1);
GPIO_uInitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
GPIO_uInitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_uInitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_uInitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_uInitStructure.GPIO_Speed = GPIO_Speed_50MHz;// 50M
GPIO_Init(GPIOA,&GPIO_uInitStructure);
USART_uInitStructure.USART_BaudRate = 115200;
USART_uInitStructure.USART_Parity = USART_Parity_No;
USART_uInitStructure.USART_StopBits = USART_StopBits_1;
USART_uInitStructure.USART_WordLength = USART_WordLength_8b;
USART_uInitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_uInitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_Init(USART2,&USART_uInitStructure);
USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
USART_Cmd(USART2,ENABLE);
}
void NVIC_uConfiguration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void USART1_RecTask(void)
{
INT8U ubTemp = 0;
if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)
{
ubTemp = USART_ReceiveData(USART2);
USART_SendData(USART2,ubTemp);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC) != SET);
}
}
自己顶一下在网上搜感觉没人用过stm32f030f4的USART2一样,搜不到。搞了一下午老火的 上图是手册上的
看资料不认真,你用的STM32F030F4芯片PA2和PA3压根就没有USART2功能 楼上说的对
我用HAL生成IIIC1和USART1的配置,结果USART1根本没有初始化内容,PA2/PA3的相关PIO配置都没有,所以根本编译不过!更不用说USART2了。
STM32F030F4的确不存在USART2.
页:
[1]