SunnyD 发表于 2016-7-13 17:53:33

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);
      }
}

SunnyD 发表于 2016-7-13 17:54:54

自己顶一下在网上搜感觉没人用过stm32f030f4的USART2一样,搜不到。搞了一下午老火的

SunnyD 发表于 2016-7-13 18:03:13

上图是手册上的

yklstudent-1794 发表于 2016-7-13 22:07:01

看资料不认真,你用的STM32F030F4芯片PA2和PA3压根就没有USART2功能

sting 发表于 2016-7-15 10:57:01

楼上说的对

glenxu 发表于 2020-3-31 14:08:57

我用HAL生成IIIC1和USART1的配置,结果USART1根本没有初始化内容,PA2/PA3的相关PIO配置都没有,所以根本编译不过!更不用说USART2了。
STM32F030F4的确不存在USART2.
页: [1]
查看完整版本: STM32F030F4的USART2有谁用过?还有USART1用了就不能使用I2C了?