OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9114|回复: 8

关于串口实验

[复制链接]

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2012-7-26
在线时间
1 小时
发表于 2012-8-4 14:19:19 | 显示全部楼层 |阅读模式
原子大哥和各位大侠,帮帮小弟,我把论坛里的关于这个的都看了,还是不明白,程序中的0x80,0x40,0x3f是通过什么得出的。
以及if((USART_RX_STA&0x80)==0)为什么能判断是接收未完成。

 
void USART1_IRQHandler(void)
{
  u8 res;      
 if(USART1->SR&(1<<5))//接收到数据
 {  
  res=USART1->DR; 
  if((USART_RX_STA&0x80)==0)//接收未完成
  {
   if(USART_RX_STA&0x40)//接收到了0x0d
   {
    if(res!=0x0a)USART_RX_STA=0;//接收错误,重新开始
    else USART_RX_STA|=0x80; //接收完成了 
   }else //还没收到 0X0D
   { 
    if(res==0x0d)USART_RX_STA|=0x40;
    else
    {
     USART_RX_BUF[USART_RX_STA&0X3F]=res;
     USART_RX_STA++;
     if(USART_RX_STA>63)USART_RX_STA=0;//接收数据错误重新接收 
    
    }   
   }
  }                   
 }              
}
有想法没行动等于白日梦。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-8-4 20:21:23 | 显示全部楼层
回复【楼主位】mosquito:
---------------------------------
0X80,0X40,0X3F,这个都是人为定义的.
我指定USART_RX_STA这个变量的指定位为指定功能,从而实现我要达到的目的.
这个在usart.c里面有注释的.
相当于人为定义了一个"寄存器".
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2012-7-26
在线时间
1 小时
 楼主| 发表于 2012-8-5 10:42:40 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子大哥,是不是相当于位运算,检测USART_RX_STA指定位是否收到数据
有想法没行动等于白日梦。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-8-5 11:17:12 | 显示全部楼层
就是类似一个寄存器了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2012-7-26
在线时间
1 小时
 楼主| 发表于 2012-8-5 18:00:17 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
今天我在做中断的时候遇到一个很郁闷的事情,我在中断程序后编译一直有错误,我对照着手册一句句的对照,
发现一样的,就是编译不过。后来我把中断程序的文件卸了重新添加一遍就通过编译了。这是怎么回事。就这个
搞了我将近2个小时。
有想法没行动等于白日梦。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-8-5 19:36:09 | 显示全部楼层
回复【5楼】mosquito:
---------------------------------
报什么错?这个很关键.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2012-7-26
在线时间
1 小时
 楼主| 发表于 2012-8-6 15:15:01 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
main.o出错,但是就和我说的把main.c文件重新添加一次就能通过了
有想法没行动等于白日梦。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-8-6 15:48:39 | 显示全部楼层
回复【7楼】mosquito:
---------------------------------
没遇到过这种情况.
关键要看报错的内容.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2012-7-26
在线时间
1 小时
 楼主| 发表于 2012-8-7 13:59:00 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
哦,如果下次遇到的话我注意下完整的报错内容
有想法没行动等于白日梦。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 04:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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