搜索
bottom↓
回复: 7

求助,有人能帮小弟写一个简单的接收一个字节和多个字节的串口通讯代码?

[复制链接]

出0入0汤圆

发表于 2008-9-12 15:13:49 | 显示全部楼层 |阅读模式
我写了这个代码接收到的数据经常会变成FF不是我要接收的数据.友人能帮我写一个很简单的例子谢谢.
#pragma interrupt   INTSR6 uart_rxdend
void uart_rxdend()
{
  TADE=RXB6;
   while(!SBRF6);}
接收到的数据怎么是FF大家帮忙看看

出0入0汤圆

 楼主| 发表于 2008-9-12 15:14:29 | 显示全部楼层
用的是9234的片子

出0入0汤圆

发表于 2008-9-12 15:32:23 | 显示全部楼层
随便找本AVR书上面就有.

出0入0汤圆

发表于 2008-9-12 15:40:18 | 显示全部楼层
看我前面的 串口 程序 帖子9234的

出0入0汤圆

发表于 2008-9-12 15:41:36 | 显示全部楼层
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=1427477&bbs_page_no=1&bbs_id=3013

出0入0汤圆

 楼主| 发表于 2008-9-12 16:19:03 | 显示全部楼层
这个程序里面只有发送的,没有接收的,发送的没有问题

出0入0汤圆

发表于 2008-9-14 00:24:39 | 显示全部楼层
/*
*******************************************************************************
**        daxinganling@hotmail.com
**  Filename :        Receive And Send Uart6 in interrupt mode
**  Abstract :        This file implements main function.
**  APIlib :        NEC78K0SKX1+.lib V1.70 [7 Dec. 2006]
**
**  Device :        uPD78F9234
**
**  Compiler :        NEC/CC78K0
**
*******************************************************************************
*/
#pragma        interrupt        INTSR6        MD_INTSR6
#pragma        interrupt        INTST6        MD_INTST6

#include "macrodriver.h"
#include "system.h"


/*
*******************************************************************************
**  MacroDefine
*******************************************************************************
*/
/*
**---------------------------------------------------------------------------
**
**  Abstract:
**        This function implements main function.
**
**  Parameters:
**        None
**
**  Returns:
**        None
**
**---------------------------------------------------------------------------
*/

extern void hdwinit(void);

bit rx_flag;
bit sd_flag;

unsigned char TEMP;

void UART6_Init( void )
{
        ASIM6 = 1;                                        /* ENABLE INTERNAL CLOCK OPERATION*/

        SetIORBit(P4, 0x08);                /* port setting in transmit/receive mode */
        ClrIORBit(PM4, 0x08);
        SetIORBit(PM4, 0x10);
        
        SetIORBit(ASIM6, 0x04);                /* data length 8 bits */
        SetIORBit(ASIM6, 0x10);                /* odd bits */
        ClrIORBit(ASIM6, 0x02);                /* stop length 1 bit */
        
        SetIORBit(ASICL6, 0x02);        /* LSB-first transfer */

        CKSR6 = 0x1;                    /* baudrate selection 9600*/
        BRGC6 = 0xd0;

        ClrIORBit(IF1, 0x60);
        ClrIORBit(MK1, 0x60);                /* UART6 transmit/receive end interrupt enable */
        SetIORBit(ASIM6, 0x80);
        SetIORBit(ASIM6, 0x60);                /* UART6 transmit/receive mode */
}

bit SENDCHAR(UCHAR TEMP)
{
   sd_flag = 0;
   TXB6 = TEMP;
   while(!sd_flag);   
   return 1;
}


bit SENDSTRING(UCHAR *databuf, UCHAR txnum,UCHAR format)
{
        UCHAR i = 0;
        for(i=0;i<txnum;i++)
        {
                TEMP = *(databuf+i);
                SENDCHAR(TEMP);
        }
        if(format)
        {
                TEMP ='\n';
                SENDCHAR(TEMP);        
        }
        return 1;
}

__interrupt void MD_INTST6( void )
{
        sd_flag = 1;
}

__interrupt void MD_INTSR6( void )
{
        rx_flag = 1;
}

void delay(int ms)
{
        while(ms--);        
}
        
void main( void )
{
        hdwinit();
        
        UART6_Init();
        
        SENDSTRING("HELLO BOY",9,1);
        
        while(1)
        {
                while(rx_flag)//表示有数据收到标志
                {
                        rx_flag = 0;
                        SENDSTRING("RECEIVE DATA:",13,0);
                        SENDCHAR(RXB6);//发送收到的数据
                        SENDCHAR('\n');
                }
        }

}

出0入0汤圆

发表于 2008-9-14 00:25:04 | 显示全部楼层
这样说明该明白了吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-3 01:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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