N76E003 串口接收字符串,完整输出

发布者:zonheny最新更新时间:2022-07-11 来源: csdn关键字:N76E003  串口  接收字符串 手机看文章 扫描二维码
随时随地手机看文章

最近调试新唐的N76E003单片机的串口收发,官方及网上对单字节的收发的城西都有,很简单就完成了。


问题是比如:N76E003串口,接收连续数据不完整怎么解决,N76E003串口接收不定长的字符串怎么解决?


这里提供一个方案解决这个问题,采用中断方式完成串口接收,波特率 9600到115200 都没有问题:


参考官方案例为基础,这里不上多余的代码,请自行参考网络。


使用串口调试工具测试,需要注意的一点是,调试工具发送选择,请选中“加回车换行”


bit rcvFlg;

 

UINT16 recvCnt=0;

 

static UINT8 state=0;

 

#define UARTRCBUFSIZE  128

UINT8  UART_BUFFER[UARTRCBUFSIZE];

 

void main()

 

{

 

        InitialUART0_Timer3(115200);

        set_ES;           //enable UART interrupt 启用串口中断

        set_EA;           //enable global interrupt 启用全局中断

 

      while(1)                        

      { 

 

                if (rcvFlg)

                {

 

                        Uart0_SendString(UART_BUFFER);

 

                        set_ES;            //enable UART interrupt

                        SCON = 0x50;      //UART0 Mode1,REN=1,TI=1

                        rcvFlg= 0;

     

                    }

 

 

   }

 

}

 

void serial_IT(void) interrupt 4 

{

   

   if (RI) 

    {     

            UART_BUFFER[recvCnt++] = SBUF;                                  /* if reception occur */

            clr_RI;       /* clear reception flag for next reception */

            if((SBUF == '')||(SBUF == 'n'))  

            {

                 UART_BUFFER[recvCnt]='';

                 state = 1;

            }                

       

    }

        if(TI)

        {

            clr_TI;                             /* if emission occur */

        }

 

        if(state)

        {

            state = 0;

            UART_BUFFER[recvCnt]='';

            clr_ES;

            SCON=0x40; 

            rcvFlg =1;            

            recvCnt = 0;

        } 

 

}

关键字:N76E003  串口  接收字符串 引用地址:N76E003 串口接收字符串,完整输出

上一篇:N76E003AT20单片机串口0调试
下一篇:N76E003低功耗模式(+中断唤醒)

推荐阅读最新更新时间:2024-10-28 13:42

串口光猫将售饭机的485接口转换成光纤接口进行数据通信
售饭系统由于其干净卫生,结算方便等优点迅速取代了餐票等食堂结算方式得到了广泛的应用,由于售饭系统采用磁卡,射频卡等各种卡片作为结算支付方式,避免了使用餐票,钱币在使用过程中的细菌交叉传染,食堂人员私自截留,丢失伪造等缺点,采用系统进行统一管理,能够使得后勤管理电子化,减少管理人员,降低管理成本。 售饭系统由消费机,通信网络和管理主机三个部分组成。由于一个售饭系统必须具有多个消费机进行同时运行,即一个管理主机管理多台消费机的情况,在通信方式上是基于一主多从的通信方式,485总线由于其支持一主多从的通信方式,布线简单,成本相对低廉而使之成为售饭系统的标准通信网络,大多售饭系统都是带有RS-485接口。485总线通信距离为1200米,对
[嵌入式]
模拟串口硬件机制写的程序
本程序是模拟串口硬件机制写的,使用时可设一定时中断,时间间隔为1/4波特率,每中断一次调用一次接收函数, 每中断4次调用一次发送函数,不过.对 单片机 来说时钟并须要快.要知道9600的波特率的每个BIT的时间间隔是104us.而单片机中断一次压栈出栈一次的时间是20us左右(标准的51核12M晶体)这样处理时间就要考虑清楚了.呵呵.以下程序是放在定时器中断程序函数内的 //接收部分 sbit JieShou_D= ;//定义接收端口 uint8 DingShiJiShu,JieShou_h;//定时计数,接收 缓冲器 uint16 JieShou_T;//接收临时寄存器 bit KaiShi,JieShou_b;/
[单片机]
stm32串口通信程序之UART2(TTL)
一、硬件连接 二、串口助手设置: 三、keil下编程 1.要添加的工程文件 二要编写的user文件 1.main.c #include printf.h int main() { printf_init(); printf( luoyiran is a nice boyn ); printf( xixin ); printf( serial communications is so mystical and interesting!n ); printf( keep striving!n ); } 2.printf.c #include p
[单片机]
stm32<font color='red'>串口</font>通信程序之UART2(TTL)
lPC1788的串口通讯
#ifndef __DEBUGSERIAL_H_ #define __DEBUGSERIAL_H_ #include sys.h #include stdio.h extern u8 serialBuffer ; extern u16 serialStatus; //ڰ void Debug_Serial_Init(u32 baud); void Debug_Serial_Send_Byte(u8 dat); void Debug_Serial_Send_Buffer(u8 length,u8* buffer); #endif #include debugSerial.h //加
[单片机]
PIC单片机上串口测试模块
****************************************main.c********************************* #include #include uart.h #include iocfg.h uchar com_tx_buffer; void main( ) { OSCCON=0x7a;//内部晶振16MHz io_init( );//GPIO口初始化 uart_init(9600);//波特率9600 INTCON=0xe0;//允许终端 while(1) { com_tx_buffer=0x55;//发送缓存写入0x55 } } ********************
[单片机]
我的电脑串口控制继电器,终于成功了!
电脑串口控制继电器,顾名思义:就是利用电脑的串口对继电器进行 吸和 , 断开 的控制。进而利用继电器的常开或者常闭触点去控制各种用电器,设备的 开 与 关 。它分为上位机和下位机。上位机就是,电脑用来控制和利用串口与下位机通信的专用软件。这种软件通常用VB编写。下位机就是,利用单片机以及它外围的一些电路(电源电路,串口通信电路,继电器驱动电路,等等)共同构成了下位机。也就是说,上位机是软件,下位机是硬件。 我做的这个电脑串口控制继电器,主控芯片是AVR的单片机,型号为ATtiny2313。此外还有,74LS373,ULN2003,MAX232。这个东西我用了一个多星期的时间才把它给完全搞好。期间经历了很多次失败,但每
[单片机]
我的电脑<font color='red'>串口</font>控制继电器,终于成功了!
STM8 I口模拟串口通信
使用普通的IO口,模拟串口协议, 和PC端串口调试软件实现通信。 网上找了很多资料,有很多网友有些程序,但是感觉都不是很完整,无意间看到ST官方居然有实现,直接下载代码开始用。 针对官方的IO口模拟串口软件,简单介绍下用到资源。 由于模拟的串口RX脚,对于电平的输入判断用到定时器的输入捕获功能,所以官方用的是定时器3的通道2。 我自己在STM8S003F3P6最小系统上,移植到了TIM2的CH1即PD4用来做串口的RX脚,和PC端串口调试器的TX脚连接。 模拟串口的TX脚没有特殊要求,我这里用的PD3。。。。 修改了MAIN里面的函数,实现模拟串口直接发送接收到的数据。 PPS,关于串口波特率的配置,
[单片机]
高速DSP与PC实现串口通信的方法
  数字信号处理器(Digital Signal Processor,DSP)在图形图像处理、高精度测量控制、高性能仪器仪表等众多领域得到越来越广泛的应用,实际运用中,通常须将DSP采集处理后的数据传送到PC机,然后进行存储和处理。   TI公司的TMS320VC33微处理器具有性价比高,同时,该芯片的I/O电平、字长、运行速度、串口功能具有大多数DSP的共同特点。本文针对TMS320VC33与PC RS-232的通讯,分析三种具体的接口电路和软件设计方法,实现高速DSP与低速设备的通讯:①通过TMS320VC33的通用I/O口实现通信;②通过TMS320VC33中可设置为通用I/O的串行引脚实现通信;③直接利用TMS320VC
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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