3090|4

5

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

mage32 串口USART 数据收和发异常,求助 [复制链接]

各位大侠好,本人使用AVR Mage32,收和发数据有点问题,求助。一、初始化配置USART代码见下,void uart0_init(void)  //初始化COM0
{
   UCSRC = (1<
   UBRRH = 0x00;
   UBRRL = 0x06; // 6.5  for 1M RC  U2X = 0 //内部1M RC 熔丝设置

   UCSRB = (1< }
void Sci0Write(uint8 *pstart, uint16 u16length)  // 间隔500ms发送,非中断
{
           uint16 i;
        uint8 *pData;

        pData = pstart;

        DIS_RX;
       
        for(i = 0;i < u16length;i++)
        {
                while (!(UCSRA & (1<                
                UDR = *pData;   
               
                CLR_TXC_F; // when TX finished , TXC is "1", then Set "1" to Clear TXC Flag , or  int to clear

        ++pData;

                //LED_D6_TEST;
        }

        ENB_RX;       
}


uint8 sQDataIn(QUEUE *pq, uint8 u8data) //在接收中断中保存数据至队列,保存数据在间隔500ms中被读出来
{
        if(pq->u16length == pq->u16size)
        {
                return(con_QBufFull);
        }
        else
        {
                *(pq->pIn) = u8data;
                pq->u16length++;
               
                if(pq->pIn == (pq->pStart + pq->u16size - 1))
                {
                        pq->pIn = pq->pStart;
                }
                else
                {
                        pq->pIn++;
                }
                return(con_QBufNormal);
        }

}
二,问题如下

发固定数据:
1.初始化发送0-9, 接收:00 01 02 03 04 05 06 07 08 09 ,OK
2.初始化发送0-9,:0x81 0xA0 0x84 0xC1  04 05 06 07 08 09, 接收:01 40 04 81 00 11 06 9F 00 00 ,为什么?


接收数据发送:
1.  接收数据: 00 01 02 03 04 05 06 07 08 09 (电脑发送)
    发送数据:00 80 40 04 81 90 08 82 00 00 (电脑接收)  为什么?




最新回复

你的接收中断程序在哪?  详情 回复 发表于 2015-8-31 23:19
点赞 关注
 

回复
举报

1891

帖子

2

TA的资源

纯净的硅(中级)

沙发
 
其实我是看了一会儿,然后本来想在atmel 的MCU上试试,,可是木有这款。。。
楼主还是用ASF的demo研究一下,,然后在看看数据手册,,
要不然坐等,得到答案的概率不大,,除非有人也做过 这个串口的。
 
个人签名
分享铸就美好未来。。。




 
 

回复

524

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
avr的没用过,建议利用asf的库试一下先,如果asf库的例程是可以的,可以比照着分析,如果不信,可以更新asf库,或使用以前的版本再试试
 
 
 

回复

1万

帖子

25

TA的资源

版主

4
 
你的接收中断程序在哪?
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

5
 
一、问:ASF库在那里有,能否提供下,谢谢,另用编译工具是AVR Studio 4

二、
ISR(USART_RXC_vect)  //#define  _VECTOR(N)    __vector_   ## N
//ISR(USART_RX_vect)    // No has  
{      
    uint8 u8data;   
    QUEUE *pq;

   pq = &Sci0Que;

    u8data = UDR;
       
   sQDataIn(pq, u8data);


}
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表