主函数如下
#include <STC8A8K64D4.H>
#include <intrins.h>
#include <absacc.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include "uart.h"
sbit TX = P3^0;
sbit RX = P3^1;
#define uchar unsigned char
#define uint unsigned int
int date1,date2;
uchar xdata buf[64];
void UartInit(void)
{
PCON &= 0x7F;
SCON = 0x50;
AUXR |= 0x40;
AUXR &= 0xFE;
TMOD &= 0x0F;
TMOD |= 0x20;
TL1 = 0xDC;
TH1 = 0xDC;
ET1 = 0;
TR1 = 1;
}
void UART_Send_Byte(unsigned char mydata)
{
ES=0;
TI=0;
SBUF=mydata;
while(!TI);
TI=0;
ES=1;
}
void UART_Send_Str(char *s)
{
int i=0;
while(s[i]!=0)
{
UART_Send_Byte(s[i]);
i++;
}
}
void UART_Send_END(void)
{
UART_Send_Byte(0xFF);
UART_Send_Byte(0xFF);
UART_Send_Byte(0xFF);
}
void Delay100ms()
{
unsigned char data i, j, k;
_nop_();
_nop_();
i = 5;
j = 52;
k = 195;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main(void)
{
uint s=0;
P0M0 = 0x00; P0M1 = 0x00;
P1M0 = 0x00; P1M1 = 0x00;
P2M0 = 0x00; P2M1 = 0x00;
P3M0 = 0xff; P3M1 = 0x00;
P4M0 = 0x00; P4M1 = 0x00;
P5M0 &= ~0x0c; P5M1 &= ~0x0c;
P6M0 = 0x00; P6M1 = 0x00;
P7M0 = 0x00; P7M1 = 0x00;
P_SW1 = 0x00;
UART_Init();
Delay100ms();
UART_Send_END();
UART_Send_Str("page0");
UART_Send_END();
Delay100ms();
Delay100ms();
Delay100ms();
Delay100ms();
Delay100ms();
while(1)
{
date1=1234,date2=5678;
Delay100ms();
UART_Send_END();
sprintf(buf,"n0.val=%d",date1);
UART_Send_Str(buf);
UART_Send_END();
UART_Send_END();
sprintf(buf,"n1.val=%d",date2);
UART_Send_Str(buf);
UART_Send_END();
}
}
uart文件中函数如下:
#ifndef __UART_H__
#define __UART_H__
void UART_Init();
void UART_Send_Byte(unsigned char mydata);
void UART_Send_Str(char *s);
void UART_Send_Enter();
void u32tostr(unsigned long dat,char *str);
unsigned long strtou32(char *str);
void UART_Put_Num(unsigned long dat);
void UART_Put_Inf(char *inf,unsigned long dat);
void binary(unsigned char dat);
#endif
线路连接无误,波特率一致,为什么运行该代码时,淘晶驰的串口屏TJC3224T024_011上未显示结果?
引用GPT回答:
如果您已经确认上述问题都没有出现,但串口屏仍未显示结果,请尝试以下方法:
从你提供的代码中,我注意到你在使用串口通信时,使用了波特率 9600(在 UART_Init 函数中初始化波特率为 9600),但你没有指定数据位、校验位和停止位等其他串口参数。在使用串口通信时,确保配置正确的波特率以及其他必要的串口参数,这样才能确保通信正常。
另外,你的代码中使用了淘晶驰的串口屏 TJC3224T024_011,并且在代码中通过 UART_Send_Str 函数发送了一些字符串数据和数字数据。请确保你在 TJC3224T024_011 的配置中设置了正确的波特率和串口参数,以便与你的代码进行通信。
以下是一些可能导致通信失败的问题和解决方案:
波特率设置: 确保你的代码和 TJC3224T024_011 上的波特率设置一致,例如都是 9600。
数据位、校验位和停止位设置: 确保你的代码和 TJC3224T024_011 上的数据位、校验位和停止位设置一致。
引脚连接: 确保你的串口引脚连接正确,TX 和 RX 引脚连接正确,并且没有短路或接触不良。
配置文件检查: 确保 TJC3224T024_011 上的配置文件没有问题,特别是关于串口通信设置的部分。
调试信息: 可以在代码中加入一些调试信息,如在发送数据之前打印一些调试信息,以确保代码执行到正确的地方,并且发送数据成功。
如果你尝试了以上解决方案后,仍然无法解决问题,建议查阅 TJC3224T024_011 的官方文档或技术支持,获取更具体的帮助和支持。他们可能会对该串口屏的配置和通信有更深入的了解,并提供更专业的技术支持。