牛卧堂MCU技术交流
标题:
请教新唐N76E003串口接收识别问题
[打印本页]
作者:
momodejiqing
时间:
2017-5-10 09:10
标题:
请教新唐N76E003串口接收识别问题
想用N76E003识别电脑的串口指令OPEN、CLOSE,作出LED-P12灯亮灭的响应目前用BSP里面的源码,只收正常收到电脑发过来的一个字节,超过一个字节就乱码了
#include <stdio.h>
#include "N76E003.h"
#include "SFR_Macro.h"
#include "Common.h"
#include "Delay.h"
#include "Function_Define.h"
#define BUFFER_SIZE 16
UINT8 UART_BUFFER[BUFFER_SIZE],temp;
UINT16 u16CNT=0,u16CNT1=0;
bit riflag;
/**
* FUNCTION_PURPOSE: serial interrupt, echo received data.
* FUNCTION_INPUTS: P3.0(RXD) serial input
* FUNCTION_OUTPUTS: P3.1(TXD) serial output
*/
void serial_IT(void) interrupt 4
{
if (RI)
{ /* if reception occur */
clr_RI; /* clear reception flag for next reception */
UART_BUFFER[u16CNT] = SBUF;
u16CNT ++;
riflag =1;
}
if(TI)
{
clr_TI; /* if emission occur */
}
}
/************************************************************************************************************
* Main function
************************************************************************************************************/
void main (void)
{
P06_Quasi_Mode; //Set UART GPIO are Quasi Mode
P07_Quasi_Mode;
InitialUART0_Timer1(115200); /* 115200 Baud Rate from timer1*/
SCON = 0xD2; // Special setting the mode 3
set_ES; //enable UART interrupt
set_EA; //enable global interrupt
clr_TB8;
Send_Data_To_UART0(0x53); //Send "start" ascii code show reset initial status
Send_Data_To_UART0(0x74);
Send_Data_To_UART0(0x61);
Send_Data_To_UART0(0x72);
Send_Data_To_UART0(0x74);
while(1)
{
if (riflag)
{
temp = SBUF; //This part send the receive data from RXD to TXD
Send_Data_To_UART0(temp);
riflag = 0;
}
}
}
作者:
a_ziliu
时间:
2017-5-10 17:28
要看你送過來的波形,你要收到波形應該是1收1發。
連續的波形在收的話,有可能是錯的。
作者:
helanjin
时间:
2017-12-5 18:19
这个是8位机,只能一个一个接收,收到之后要保存下来去判断!
作者:
匿名
时间:
2018-5-9 17:04
先定义
#ifndef FOSC_160000//定义成16mhz
#define FOSC_160000
#endif
然后波特率改成9600
作者:
匿名
时间:
2018-6-11 21:26
请问问题解决了吗
作者:
caoqing
时间:
2018-6-26 22:20
我也遇见这个问题,不知如何解决?
欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/)
Powered by Discuz! X3.2