搜索
bottom↓
回复: 1

R8C串口通信憋死人求帮忙

[复制链接]

出0入0汤圆

发表于 2012-10-9 11:27:37 | 显示全部楼层 |阅读模式
代码如下:用串口调试助手就是没反应。不知道为什么,求高手解答,用的是R5F211B4


/***********************************************************************/
/*                                                                     */
/*  FILE        :URAT1.c                                               */
/*  DATE        :Mon, Sep 24, 2012                                     */
/*  DESCRIPTION :main program file.                                    */
/*  CPU GROUP   :1B                                                    */
/*                                                                     */
/*  This file is generated by Renesas Project Generator (Ver.4.19).    */
/*  NOTE:THIS IS A TYPICAL EXAMPLE.                                    */
/***********************************************************************/

#include "sfr_r81b.h"
#include "urat1.h"
//#include "var_def.h"

//unsigned char UART1_SEND_TAB[] = "Oh,Succeed!\n";

void main(void);

void main(void)
{
        unsigned  int data;

           UART1_Init();
           while(1)       
           {  
              UART1_SendByte(2);                            // 发送数据
                data = UART1_RcvByte();                    // 等待PC发送数据
           }
}

//*********************************************************************
//
//函数名:void UART1Init(unsigned int BPS);
//功能:初始化UART1包括,设置波特率数据位长度,停止位,奇偶校验
//      默认设置位8位数据位,1位停止位,无奇偶校验
//入口参数:BPS(波特率)
//出口参数:无
//
//*********************************************************************

void UART1_Init(void)
{
        te_u1c1 = 0;                //禁止发送
        re_u1c1 = 0;                //禁止接受
       
        p3_7 = 1;                   //设置p3_7为输出高电平
        pd3_7 = 1;                  //设置TXD1为输出
        pd4_5 = 0;                  //设置RXD0为输入
       
       
        u1sel0 = 1;                 //管脚设置为串口
        u1sel1 = 1;
       
        prc0 = 1;                   //打开寄存器写保护
        //u1mr = 0x05;                //设置传送数据位8位
                                                                //使用内部时钟、1个停止位、无校验
        ckdir_u1mr = 0;
        smd0_u1mr = 0;
        smd1_u1mr = 1;
        smd2_u1mr = 1;
       
        //u1c0 &= 0x14;               //选择f1、TXD1为COMS输出、先传低位
       
        clk0_u1c0 = 0;                //选择f1位计数源
        clk1_u1c0 = 0;
       
        txept_u1c0 = 1;               //发送寄存器空标志
        nch_u1c0 = 0;                 //TXD1管脚为COMS输出
        ckpol_u1c0 = 0;               //在传送时钟的下降沿输出发送数据,在上升沿输入接收数据
        uform_u1c0 = 0;               //选择低位先传
       
       
        //u1brg = 0x40;               //设置波特率位9600
        u1brg = 0x40;
        prc0 = 0;
       
        te_u1c1 = 1;                //使能发送
        re_u1c1 = 1;                //使能接受
       
}

//*********************************************************************
//
//函数名:void UART1SendByte(unsigned int data)
//功能:发送1字节数据并等待发送完毕  
//入口参数:data等待发送的数据
//出口参数:无
//
//*********************************************************************

/*void UART1_SendByte(unsigned int dat)
{
        unsigned long int i ;
        unsigned int temp1 = 2;
        temp1 = ri_u1c1;
        //ti_u1c1 = 0;
        u1tbl = dat;
        //for(i = 1000;i > 0; i--);
        while(!ti_u1c1);//ti_u1c1 = 0则发送寄存器有数据,否则为空
        u1tbl = dat;       
}
*/

void UART1_SendByte(unsigned int dat)
{
        while(!ti_u1c1);//ti_u1c1 = 0则发送寄存器有数据,1为空
        u1tbl = dat;       
}

//*********************************************************************
//
//函 数 名:unsigned int UART1RcvByte(void)
//功    能:接收1字节数据并等待发送完毕  
//入 口 参: 无
//出口参数:等待接收1字数:无节数据
//
//*********************************************************************

unsigned int UART1_RcvByte(void)
{
        unsigned  int buf;

        while(!ri_u1c1);//寄存器中有数据,ri_u1c1 = 0有数据
        buf = u1rbl;
        return buf;       
}
















阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-27 07:17

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

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