单片机学习小组
直播中

李艺银

7年用户 1007经验值
私信 关注

如何对N76E003的串口进行调试呢

如何对N76E003的串口进行调试呢?

回帖(1)

李贤杰

2022-1-27 09:10:52
IAR新唐N76E003串口调试(串口0发送,串口1接收)

本人菜鸟,入职让写串口程序,串口0发送数据,串口1接收数据。写了两周,才初步完成功能,欢迎大家指正错误,遇到了很多问题,大概都解决了…吧,话不多说,上代码!

/*
* @file name:   UART
* @decrption:   串口0的数据转发的串口1,注意发送时间间隔,缓存数组自定义大小再使用哦
* @author:      1027朵玫瑰花
* @date:        2020-4-30
* @history:   
*/


#include "N76E003_iar.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"


#define BUFFER_SIZE                16
#define UART0_BAUD         115200
#define UART1_BAUD        115200


UINT8  UART_BUFFER[BUFFER_SIZE];
UINT8  riflag;                     //判断标志位
UINT8  flag;                       //检验标志位
UINT8  buffer[40] = {0};          //缓存数组
UINT8  i = 0;


void main (void)
{
    P15_PushPull_Mode;                // For I/O toggle display
    InitialUART0_Timer1(UART0_BAUD);//初始化
    InitialUART1_Timer3(UART1_BAUD);       
        printf_UART("lun");      //个人小标记
        set_ES;                                        //For interrupt enable
        set_EA;


    while (1)
    {
        if (flag != 0)
        {
            riflag = flag;
            Timer0_Delay1ms(100);                                     //发送的一个行为结束
            P15 = ~P15;                                               //呼吸灯指示
            while (riflag = flag)                                    //开始转发
            {
                for(i=0; i < flag; i++)
                {
                    SBUF_1 = buffer;
                    while (!TI_1);
                    clr_TI_1;
                }  
                i = 0;                           
                flag = 0;
                riflag = 0;
            }            
          }
        
    }
}
  
#pragma vector = 0x23
__interrupt void SerialPort_ISR (void)
{
    if (RI)
    {        
        buffer = SBUF;
        clr_RI;
        i++;
        flag++;
    }
}
举报

更多回帖

×
20
完善资料,
赚取积分