单片机串口写入数组失败的原因是串口接收程序中的变量 a 是局部变量,每次调用这个子程序时,a 都是重新赋值为0,就不能给数组赋值。正确写法,应该声明变量 a 为
static u16 a;
改法如下
void co_2(void)
{ static u16 a;
if(RI==1)
{
RI = 0;
CO2data[a] = SBUF;
a++; if(a == 10)
a = 0;
}
其实变量a声明成8位无符号数就行,
static unsigned char a;
不必声明成16位(u16是用#define定义过的吧)。
1、写片器也较编程器故障。\x0d\x0a2、写片器和PC通信故障。\x0d\x0a3、单片机芯片故障。\x0d\x0a4、写片器驱动程序不正确。\x0d\x0a5、烧录程序选择的单片机型号不正确。\x0d\x0a6、程序编译如果不正确,即使烧录进单片机,也不能正常工作。\x0d\x0a \x0d\x0a先缩小失败的范围,再进一步分析其原因。
经常看见这种提问,普中板子,普中烧录软件,烧录程序失败。普中就是做实验板的,写不了烧录软件。你用STC单片机,去STC官网下载STC单片机正宗的烧录软件: STC-ISP,是最新版本的软件包,里面还有USB转串口的驱动程序。解压后,烧录软件直接运行,不用安装。
单片机写数据失败的介绍到此就结束了,感谢您耐心阅读,谢谢。
本文标签:单片机写数据失败