嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在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位见数码管扫描程序
}
}