OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2852|回复: 1

关于stm32串口不能同时进行收发

[复制链接]

7

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2015-12-26
在线时间
56 小时
发表于 2016-9-20 17:40:58 | 显示全部楼层 |阅读模式
1金钱
我的串口基本配置是这样的:
void My_WIFI_UART2_Init(u32 bound)
{

    USART_InitTypeDef USART_InitStructure;

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);        //使能USART2时钟

    //USART 初始化设置

    USART_InitStructure.USART_BaudRate = bound;//串口波特率
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式
    USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位
    USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;        //收发模式

    USART_Init(USART2, &USART_InitStructure); //初始化串口4
    USART_ClearFlag(USART2, USART_FLAG_RXNE);//防止配置完就进入中断
    USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//开启串口接受中断
    USART_Cmd(USART2, ENABLE);                    //使能串口4
}


串口发送函数我是这样写的:
/**************************************
串口发送单个字节
***************************************/
void My_WIFIUART2_SendByte(uint8_t ByteSent)
{
    USART_SendData(USART2,ByteSent);
    while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)!=SET);//等待发送结束
}


中断函数是这样的:
void USART2_IRQHandler(void)
{
    if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)
    {
        /*内容*/




现在问题是这样子的,如果我在主循环里不断的通过串口发送数据
while(1)
{
sendTo_server(tmp,0,2);//调用了串口发送函数
//        
//        BEEP_Voice_Volume(0);
        delay_ms(20);

}

同时又通过串口调试助手给单片机发送数据  就会导致单片机重启

如果只进行串口发送数据或者是串口接收数据,是没有问题的  
stm32的串口不是说是全双工,异步通讯的吗??
怎么



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

219

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2014-4-14
在线时间
76 小时
发表于 2016-9-20 19:11:17 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 06:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表