基本信息
源码名称:STM32F103C8T6串口1收到数据转回串口1转发串口2和送PB口低8位
源码大小:2.82M
文件格式:.rar
开发语言:C/C++
更新时间:2021-02-08
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

串口1收到数据,转回串口1,同时从串口2输出,并送PB口低8位


/**************************************************************************************
 * 描  述 : USART1发送函数
 * 入  参 : 单个字符
 * 返回值 : 无
 **************************************************************************************/
void USART1_SendByte(u8 byte)
{
    while(USART_GetFlagStatus(USART1,USART_FLAG_TC) != SET);
    USART_SendData(USART1, byte);
    USART_SendData(USART2, byte);    //通过串口1发的数据同时也从串口2发送一份
}

/**************************************************************************************
 * 描  述 : USART1接收到数据后串口发送出去
 * 入  参 : 无
 * 返回值 : 无
 **************************************************************************************/
void USART1_Tx_Puts(void)
{
  if(Flag)      //有新数据通过串口被接收到
    {
    USART1_SendByte(Rx232buffer);  //发送字符
    //USART1_SendByte(0x0D);    //发送换行符
    //USART1_SendByte(0x0A);    //发送换行符    
        Flag=FALSE;     //清除接收标识符
  }
}

/**************************************************************************************
 * 描  述 : USART1全局中断服务
 * 入  参 : 无
 * 返回值 : 无
 **************************************************************************************/
void USART1_IRQHandler(void)
{  
  if(USART_GetITStatus(USART1,USART_IT_RXNE)!= RESET)  //接收中断
  {  
    Rx232buffer= USART_ReceiveData(USART1);     //通过外设USART1接收数据
        Flag=TRUE;                                     //接收到数据,接收标识符有效
    USART_ClearITPendingBit(USART1, USART_IT_RXNE);  //清除USART1的中断待处理位
        USART1_Tx_Puts();   //串口接收到一个字符后返回该字符
    PortValue[1]=PortValue[0]<<4;   //新加的,收到数据后发送到PB(低8位),高8位不用
        PortValue[0]=Rx232buffer&0x0f;   //如依次输入"4"、"7"(34H、37H),则PortValue[0]=07H,PortValue[1]=40H
    GPIO_Write(GPIOB , PortValue[1]|PortValue[0] )    ;  //向PB送0047H,此处高8位暂不用,同时写16位见数码管扫描程序
  }  
}