野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 338|回复: 0

USART串口如何同时收发数据(在发送同时接收)

[复制链接]
发表于 2019-9-8 09:10:07 | 显示全部楼层 |阅读模式
[mw_shl_code=c,true]        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;        //收发模式[/mw_shl_code]

默认配置就是全双工的吗?全双工的意思是既能接收也能发送,还是在能发送的同时也能接收?

现在程序的USART初始化结构体如上,只能单独的接收和发送,不能在发送的同时接收数据,请问是我中断接收函数写的有问题还是需要调用其它库函数?

[mw_shl_code=c,true]void USART1_IRQHandler(void)                                                                //串口2中断服务程序
{
        u8 inByte;
        u8 i;
        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)                          //接收中断
        inByte = USART_ReceiveData(USART1);                                                                //读取接收到的数据
    if(inByte!=0x0A)
    {
                        USARTBuff1[USART_RC1]=inByte;
                        USART_RC1++;       
                        if(USART_RC1>99)
                        {
                                USART_RC1 = 0;
                        }                               
    }
    else
    {
                USARTBuff1[USART_RC1]=inByte;        //传输0x0A到队列尾部
                if(USARTBuff1[0]=='S'&&USARTBuff1[1]=='T'&&USARTBuff1[2]=='A'&&USARTBuff1[3]=='R'&&USARTBuff1[4]=='T')
                {
LED_G_TOGGLE;                                                                                  //这个用于检验串口是否在发送的时候接收到了数据,串口不在发送的时候,接收数据灯是会亮的,串口发送的时候无法接收数据,灯不亮
                                }[/mw_shl_code]

部分中断接收代码。
回复

使用道具 举报

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

本版积分规则

联系站长|手机版|站点地图|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号-2 ) 大学生ARM嵌入式2群

GMT+8, 2020-8-8 05:56 , Processed in 0.137555 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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