你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F030F4的USART2有谁用过?还有USART1用了就不能使用I2C了?

[复制链接]
SunnyD 提问时间:2016-7-13 17:53 /
我USART1配置好了能通信,但是按同样方式配置USART2就不能通信?不知道是什么问题。还有个问题如果串口USART1占用了 I2C1是不是就不能用了 引文都在PA9 和PA10上。
代码下面:
void USART1_uConfiguration(void)
{
        GPIO_InitTypeDef   GPIO_uInitStructure;
        USART_InitTypeDef  USART_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);
        }
}

收藏 1 评论5 发布时间:2016-7-13 17:53

举报

5个回答
SunnyD 回答时间:2016-7-13 17:54:54
自己顶一下  在网上搜  感觉没人用过stm32f030f4的USART2一样,搜不到。搞了一下午老火的
SunnyD 回答时间:2016-7-13 18:03:13
上图是手册上的
QQ图片20160713180021.png
QQ图片20160713180111.png
yklstudent 回答时间:2016-7-13 22:07:01
看资料不认真,你用的STM32F030F4芯片PA2和PA3压根就没有USART2功能

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 赞一个!

查看全部评分

sting 回答时间:2016-7-15 10:57:01
楼上说的对
Snap1.jpg

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

Glenxu 回答时间:2020-3-31 14:08:57
我用HAL生成IIIC1和USART1的配置,结果USART1根本没有初始化内容,PA2/PA3的相关PIO配置都没有,所以根本编译不过!更不用说USART2了。
STM32F030F4的确不存在USART2.
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版