打印
[技术问答]

N76E003收发串口问题

[复制链接]
3909|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
做项目需要用到新塘N76E003,用来接收时发现有时候接收不了,做了一个N76E003的发送测试,发现发送出错这是什么问题
沙发
wxfyyzy520|  楼主 | 2017-9-28 15:42 | 只看该作者
如图

无标题.png (190.77 KB )

如图

如图

使用特权

评论回复
板凳
wxfyyzy520|  楼主 | 2017-9-28 15:48 | 只看该作者
{ int a=0;
Set_All_GPIO_Quasi_Mode;
InitialUART0_Timer3_Int(115200);

  while (1)
  {
    UART0_putc(a++);
  }
}

使用特权

评论回复
地板
yiyigirl2014| | 2017-9-28 15:53 | 只看该作者
代码全是自己写的?

使用特权

评论回复
5
yiyigirl2014| | 2017-9-28 15:53 | 只看该作者
下载官方的BSP了吗,里面有收发例子,参考一下,看看你哪儿漏了。

使用特权

评论回复
6
wxfyyzy520|  楼主 | 2017-9-28 15:53 | 只看该作者
每个上升沿的前面是什么

捕获.PNG (7.96 KB )

捕获.PNG

使用特权

评论回复
7
yiyigirl2014| | 2017-9-28 15:55 | 只看该作者
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2015 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/

//***********************************************************************************************************
//  Nuvoton Technoledge Corp.
//  Website: http://www.nuvoton.com
//  E-Mail : MicroC-8bit@nuvoton.com
//  Date   : Apr/21/2016
//***********************************************************************************************************

//***********************************************************************************************************
//  File Function: N76E003 UART-0 Mode1 demo code
//***********************************************************************************************************

#include <stdio.h>
#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_Define.h"

/******************************************************************************
* FUNCTION_PURPOSE: Serial interrupt, echo received data.
* FUNCTION_INPUTS : P0.7(RXD) serial input
* FUNCTION_OUTPUTS: P0.6(TXD) serial output
* Following setting in Common.c
******************************************************************************/
#if 0
//void InitialUART0_Timer1(UINT32 u32Baudrate)    //T1M = 1, SMOD = 1
//{
//                P06_Quasi_Mode;               
//                P07_Quasi_Mode;
//       
//    SCON = 0x52;     //UART0 Mode1,REN=1,TI=1
//    TMOD |= 0x20;    //Timer1 Mode1
//   
//    set_SMOD;        //UART0 Double Rate Enable
//    set_T1M;
//    clr_BRCK;        //Serial port 0 baud rate clock source = Timer1

//
//#ifdef FOSC_160000
//    TH1 = 256 - (1000000/u32Baudrate+1);               /*16 MHz */
//#endif           
//    set_TR1;
//}
////---------------------------------------------------------------
//void InitialUART0_Timer3(UINT32 u32Baudrate) //use timer3 as Baudrate generator
//{
//                P06_Quasi_Mode;
//                P07_Quasi_Mode;       
//       
//    SCON = 0x52;     //UART0 Mode1,REN=1,TI=1
//    set_SMOD;        //UART0 Double Rate Enable
//    T3CON &= 0xF8;   //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1)
//    set_BRCK;        //UART0 baud rate clock source = Timer3

//#ifdef FOSC_160000
//        RH3    = HIBYTE(65536 - (1000000/u32Baudrate)-1);                  /*16 MHz */
//  RL3    = LOBYTE(65536 - (1000000/u32Baudrate)-1);                        /*16 MHz */
//#endif
//    set_TR3;         //Trigger Timer3
//}
#endif

/*******************************************************************************
* FUNCTION_PURPOSE: Main function
******************************************************************************/
void main (void)
{

#if 0       
    InitialUART0_Timer1(9600);                                                //UART0 Baudrate from Timer1
    while(1)
    Send_Data_To_UART0(0x55);
#else
                InitialUART0_Timer3(115200);                                        //UART0 Baudrate from Timer3
    while(1)
    Send_Data_To_UART0(0x55);
#endif
                       

               
               
}
  

使用特权

评论回复
8
wxfyyzy520|  楼主 | 2017-9-28 16:20 | 只看该作者
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2016 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/

//***********************************************************************************************************
//  Nuvoton Technoledge Corp.

//  Date   : Apr/21/2016
//***********************************************************************************************************

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

//----------------------------------------------------------------------------------
// UART0 baud rate initial setting
//----------------------------------------------------------------------------------
void InitialUART0_Timer1(UINT32 u32Baudrate)    //T1M = 1, SMOD = 1
{

使用特权

评论回复
9
wxfyyzy520|  楼主 | 2017-9-28 16:20 | 只看该作者

我的 SCON = 0x50;     //UART0 Mode1,REN=1,TI=1
    set_SMOD;        //UART0 Double Rate Enable
    T3CON &= 0xF8;   //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1)
和你的0x52有点区别啊

使用特权

评论回复
10
wxfyyzy520|  楼主 | 2017-9-28 17:00 | 只看该作者
会不会是晶振频率的问题?

使用特权

评论回复
11
yiyigirl2014| | 2017-9-28 17:23 | 只看该作者
wxfyyzy520 发表于 2017-9-28 17:00
会不会是晶振频率的问题?

也有可能是晶振问题吧,这个带内部振荡器不,试试内部的。

使用特权

评论回复
12
wxfyyzy520|  楼主 | 2017-9-28 17:31 | 只看该作者
默认一个16.67Mhz   一个10K的显示为9.56KHZ

使用特权

评论回复
13
wxfyyzy520|  楼主 | 2017-9-28 17:40 | 只看该作者
115200的频率应该为 8.68   我的为8.19   

使用特权

评论回复
14
座机呀| | 2017-10-1 13:16 | 只看该作者
单片机写代码不同于纯软件,没有硬件基础,有的时候出了问题都无从下手

使用特权

评论回复
15
山东电子小菜鸟| | 2017-10-1 14:36 | 只看该作者
感谢分享

使用特权

评论回复
16
wahahaheihei| | 2017-10-2 21:45 | 只看该作者
最后确定是晶振问题吗?

使用特权

评论回复
17
cabbageybc| | 2018-1-6 09:41 | 只看该作者
感觉N76E003的串口有BUG 要么就是官方资料没有描述清楚,已经调整内部16.6M 依然出现过高的误码率,第一次遇到这么恶心的,16M了 跑个115200波特率还这么高误码率

使用特权

评论回复
18
smilefenfen| | 2018-4-18 19:08 | 只看该作者
你们测试N76E003串口都是用的什么软件啊,我用串口助手怎么什么也没有呢

使用特权

评论回复
19
xuanhuanzi| | 2018-4-20 22:33 | 只看该作者
逻辑分析仪?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

18

帖子

0

粉丝