xiao_bai_cai_555 2020-12-30 21:57 采纳率: 50%
浏览 326

c51在keil编程,全局变量没错,变成局部就显示未定义

#include<intrins.h>
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit PSB = P0^5;
sbit RESET = P0^6;
sbit CS = P0^2;
sbit SID = P0^3;
sbit SCLK =P0^4;
uchar i,temp1,temp2,temp3;
uchar data1,data2,data3,a;
void init(void);
void write_command(uchar w1);
void write_data(uchar w2);
void main(void)
{
	
}
void init(void)
{
	PSB=0;
	RESET=1;	
}
void write_command(uchar w1)//写指令
{
	CS=1;

	temp1=0xf8;
	for(i=0;i<8;i++)
	{
		SID=(temp1&0x80);
		SCLK=0;
		SCLK=1;
		temp1=(temp1<<1);
	}
	temp2=w1;
	temp2=(temp2&0xf0);
	for(i=0;i<8;i++)
	{
		SID=(w1&0x80);
		SCLK=0;
		SCLK=1;
		temp2=(temp2<<1);
	}
	temp3=w1;
	temp3=(temp3&0x0f);
	for(i=0;i<8;i++)
	{
		SID=(temp3&0x80);
		SCLK=0;
		SCLK=1;
		temp3=(temp3<<1);
	}
}
void write_data(uchar w2)//写数据
{
	CS=1;
	
	data1=0xfa;
	for(a=0;a<8;a++)	
	{
		SID=(data1&0x80);
		SCLK=0;
		SCLK=1;
		data1=(data1<<1);
	}
	data2=(w2&0xf0);
	for(i=0;i<8;i++)
	{
		SID=(data2&0x80);
		SCLK=0;
		SCLK=1;
		data2=(data2<<1);
	}
	data3=(w2&0x0f);
	for(i=0;i<8;i++)
	{
		SID=(data3&0x80);
		SCLK=0;
		SCLK=1;
		data3=(data3<<1);
	}
}
	

这是将局部变量全挪到全局的样子,如果移回自己的函数就会出现未定义变量的提示。
    

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 15:20
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测