2019-07-20 15:52发布
yklstudent 发表于 2017-3-22 10:12 你这是发送代码,用于USART1发送没什么问题
linzhijiang_sz 发表于 2017-3-22 11:26 首先,先配置串口1和串口3. 先在USART3那里接受数据,接受到的数据存放到数组USART3_RX_BUF[]
咎落 发表于 2017-3-22 13:27 我不太了解查询的方式,我想问这条语句 while(UART1GetByte(&i))是等待USART1接受字符么?
linzhijiang_sz 发表于 2017-3-22 14:23 不好意思,while循环的判断写错了! void UART1Test(void) {
最多设置5个标签!
帮我看看这串代码可行不?
先在USART3那里接受数据,接受到的数据存放到数组USART3_RX_BUF[]
unsigned char UART3GetByte(unsigned char* GetData)
{
if(USART_GetFlagStatus(USART3, USART_FLAG_RXNE) == RESET)
{ return 0;//没有接收到数据
}
*GetData = USART_ReceiveData(USART1);
return 1;//收到数据
}
我使用的是查询的方式。没有开中断。
void UART1Test(void)
{
unsigned char i = 0;
while(1)
{
while(UART1GetByte(&i))
{
USART_SendData(USART1,i); 把数据发出去
}
}
}
UART1Test()你可以放到主循环中
我不太了解查询的方式,我想问这条语句 while(UART1GetByte(&i))是等待USART1接受字符么?
不好意思,while循环的判断写错了!
void UART1Test(void)
{
unsigned char i = 0;
while(1)
{
while(UART3GetByte(&i))
{
USART_SendData(USART1,i); 把数据发出去
}
}
}
改成while(UART3GetByte(&i))才对
还请大神帮我看一下主函数的程序,十分感谢,对于有些低级错误还请包涵!
int main(void)
{
u8 i;
u8 ch[5]={0x68,0x04,0x00,0x04,0x08};
u8 USART_RX_BUF[200];
delay_init(168);
UART13_Init(9600);
LED_Init();
while(1)
{
for(i=0;i<6;i++)
{
while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET);
USART_SendData(USART3,ch);
}
if(USART_ReceiveData(USART3))
{
LED1=!LED1;
delay_ms(30);
}
UART3GetByte(USART_RX_BUF[200]);
UART1Test();
}
}
一周热门 更多>