最近在看关于串口通信,困扰了我好几天的问题,对于串口通信这个概念还是很模糊,看了很多帖子还是没搞明白1.单片机每次进入中断接收的一组数据是一个字节吗?
2.用XCOM给单片机发送数据它是自动给数据加上0x0d0x0a结尾标志吗?单片机是怎样开始接收这组数据的?
3.我用原子的串口例程改编,想实现如下功能
1. XCOM发送 ‘1’ LED0开 ,发送‘2’ LED0关
我的过程
我在中断服务函数里面判断接收到的是“1”,or '2'。 定义了两个变量如果是‘1’ flag0=1.如果是‘2’ flag1=1.
在主函数里面判断flag0 flag1的值,然后flag0 flag1置零,并对相应的引脚拉高拉低电平
发现灯没反应,请问这是我的方法不对还是哪里出了问题
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
printf(" 您发送的消息为:");
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]); //向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
if(USART_RX_BUF[0]=='1')
{
printf(" LED1亮 ");
LED1=0;
}
嗯嗯 谢谢
嗯嗯,谢谢你写了这么多,看了你的解释,还是明白了一些东西,对于初学者我来说,或许一个非常简单的问题都要搞好久才能明白,感谢前辈些不吝赐教
一周热门 更多>