这段c语言看不懂代码看不懂,请大神讲一下关键代码

求大神讲解下这段代码的作用 C语言_百度知道
求大神讲解下这段代码的作用 C语言
to use the unbuffered __putchar function instead of the/// the lines&#47. In this case &#39.h&gt.#if 0#include &/ when running the tutorials using the DLIB libs you have/activate'/ buffered putchar&#47
我有更好的答案
如果出现了putchar就会被替代成 __putchar,请google机翻51~4行是对这个编译文件的注释、8行是条件编译6行是引用头文件7行是对putchar进行宏定义,在整个程序代码中
条件编译。现在这部分代码不会被编译,相当于注释掉了。如果要编译的话把0改为1即可
这种情况好像是说针对不同的调用方式,需要用不同的函数名字吧.....但其实两个函数是一样滴....呃,好吧....其实我是来想拿分滴..
条件编译语句,相当于把中间代码注释掉了。但是用的时候只要把0改成1就行了,方便切换代码。
就是把这段注掉
其他类似问题
为您推荐:
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求C语言大神帮忙解释一下 看不懂啊-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
求C语言大神帮忙解释一下 看不懂啊
来源:互联网 发表时间: 10:18:35 责任编辑:鲁晓倩字体:
为了帮助网友解决“求C语言大神帮忙解释一下 看不懂啊”相关的问题,中国学网通过互联网对“求C语言大神帮忙解释一下 看不懂啊”相关的解决方案进行了整理,用户详细问题包括:<,具体解决方案如下:解决方案1: N+1个数从0到N,从0开始,每隔3个数取走,不断重复直到剩最后一个输出The last number is 4
2个回答3个回答1个回答6个回答1个回答5个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright &#169; 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号大神帮小弟我解释解释这个代码!完全看不懂啊是一个计算器代码
包括()和+-/以及小数运算 - C语言当前位置:& &&&大神帮小弟我解释解释这个代码!完全看不懂啊是一个大神帮小弟我解释解释这个代码!完全看不懂啊是一个计算器代码
包括()和+-/以及小数运算&&网友分享于:&&浏览:0次大神帮我解释解释这个代码!!!完全看不懂啊!!!!是一个计算器代码
包括()和+-*/以及小数运算#include&&stdio.h&
#include&&string.h&
int&main()
&&&&double&d[100],&*dp&=&d;
&&&&int&m,&k;
&&&&char&t[50],&*tp&=&t;
&&&&char&s[100],&*c&=&s;
&&&&char*&op&=&"+-*/";
&&&&char*&fg&=&".";
&&&&gets(s);
&&&&while(*c)&{
&&&&&&&&if(strchr(op,&*c))&{
&&&&&&&&&&&&*tp++&=&*c;
&&&&&&&&&&&&k&=&0;
&&&&&&&&}else
&&&&&&&&if(strchr(fg,&*c))&{
&&&&&&&&&&&&sscanf(c,&"%lf%n",&dp++,&&m);
&&&&&&&&&&&&c&+=&m&-&1;
&&&&&&&&&&&&++k;
&&&&&&&&++c;
&&&&&&&&while((dp&-&d&&&1&&&&k&==&2)&||&!*c&&&&dp&-&d&&=&1)&{
&&&&&&&&&&&&switch(*--tp)&{
&&&&&&&&&&&&case&'+':&dp[-2]&=&dp[-2]&+&dp[-1];&
&&&&&&&&&&&&case&'-':&dp[-2]&=&dp[-2]&-&dp[-1];&
&&&&&&&&&&&&case&'*':&dp[-2]&=&dp[-2]&*&dp[-1];&
&&&&&&&&&&&&case&'/':&dp[-2]&=&dp[-2]&/&dp[-1];&
&&&&&&&&&&&&}
&&&&&&&&&&&&--
&&&&printf("%f",&*dp);
}------解决思路----------------------#include&"stdafx.h"
#include&&stdio.h&
#include&&string.h&
int&main()
&&&&double&d[100],&*dp&=&d;
&&&&int&m,&k;
&&&&char&t[50],&*tp&=&t;
&&&&char&s[100],&*c&=&s;
&&&&char*&op&=&"+-*/";&&&&&&&&&&//定义加减乘除
&&&&char*&fg&=&".";
&&&&gets(s);//&输入计算的字符串&##如输入1+2&&--&s="1+2"&&
&&&&while(*c)&{//遍历&1&+&2&分离操作数&和运算符&##指针c指向s
&&&&&&&&if(strchr(op,&*c))&{//如果遍历到的字符是&+-*/&取出那个字符&放入tp&##查找*c指向字符是否存在于op里
&&&&&&&&&&&&*tp++&=&*c;
&&&&&&&&&&&&k&=&0;
&&&&&&&&}else
&&&&&&&&&&&&if(strchr(fg,&*c))&{//如果遍历到的字符是操作数&&取出那个字符&放入dp
&&&&&&&&&&&&&&&&sscanf(c,&"%lf%n",&dp++,&&m);//sscanf()&-&从一个字符串中读进与指定格式相符的数据.
&&&&&&&&&&&&&&&&c&+=&m&-&1;
&&&&&&&&&&&&&&&&++k;
&&&&&&&&&&&&}
&&&&&&&&&&&&++c;
&&&&&&&&&&&&while((dp&-&d&&&1&&&&k&==&2)&------解决思路----------------------&!*c&&&&dp&-&d&&=&1)&{//取出dp操作数&tp运算符进行运算&计算结果存入dp
&&&&&&&&&&&&&&&&switch(*--tp)&{
&&&&&&&&&&&&&&&&case&'+':&dp[-2]&=&dp[-2]&+&dp[-1];&
&&&&&&&&&&&&&&&&case&'-':&dp[-2]&=&dp[-2]&-&dp[-1];&
&&&&&&&&&&&&&&&&case&'*':&dp[-2]&=&dp[-2]&*&dp[-1];&
&&&&&&&&&&&&&&&&case&'/':&dp[-2]&=&dp[-2]&/&dp[-1];&
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&--
&&&&&&&&&&&&}
&&&&printf("%f",&*dp);
}------解决思路----------------------实在看不懂,放个例子,一步步跟踪下...------解决思路----------------------有bug,这段代码无法处理运算符优先级的问题。------解决思路----------------------代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS&IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。------解决思路----------------------仅供参考:/*---------------------------------------
函数型计算器(VC++6.0,Win32&Console)程序由&yu_hua&于设计完成
目前提供了10多个常用数学函数:
&&&&⑴正弦sin
&&&&⑵余弦cos
&&&&⑶正切tan
&&&&⑷开平方sqrt
&&&&⑸反正弦arcsin
&&&&⑹反余弦arccos
&&&&⑺反正切arctan
&&&&⑻常用对数lg
&&&&⑼自然对数ln
&&&&⑽e指数exp
&&&&⑾乘幂函数∧
如果要求2的32次幂,可以打入2^32&回车&
如果要求30度角的正切可键入tan(Pi/6)&回车&
注意不能打入:tan(30)&Enter&
如果要求1.23弧度的正弦,有几种方法都有效:
sin(1.23)&Enter&
sin&1.23&&Enter&
sin1.23&&&Enter&
如果验证正余弦的平方和公式,可打入sin(1.23)^2+cos(1.23)^2&&Enter&或sin1.23^2+cos1.23^2&&Enter&
此外两函数表达式连在一起,自动理解为相乘如:sin1.23cos0.77+cos1.23sin0.77就等价于sin(1.23)*cos(0.77)+cos(1.23)*sin(0.77)
当然你还可以依据三角变换,再用sin(1.23+0.77)也即sin2验证一下。
本计算器充分考虑了运算符的优先级因此诸如:2+3*4^2&实际上相当于:2+(3*(4*4))
另外函数名前面如果是数字,那么自动认为二者相乘.
同理,如果某数的右侧是左括号,则自动认为该数与括弧项之间隐含一乘号。
如:3sin1.2^2+5cos2.1^2&相当于3*sin2(1.2)+5*cos2(2.1)
又如:4(3-2(sqrt5-1)+ln2)+lg5&相当于4*(3-2*(√5&-1)+loge(2))+log10(5)
此外,本计算器提供了圆周率&Pi键入字母时不区分大小写,以方便使用。
----------------------------------------*/
#include&&iostream&
#include&&iomanip&
#include&&cstdlib&
#include&&cstring&
#include&&cctype&
#include&&cmath&
#include&&stdio.h&
#include&&string.h&
#include&&windows.h&
using&namespace&
const&char&Tab=0x9;
const&int&&DIGIT=1;
const&int&MAXLEN=16384;
char&s[MAXLEN],*
int&pcs=15;
double&fun(double&x,char&op[],int&*iop)&{
&&&&while&(op[*iop-1]&32)&//本行使得函数嵌套调用时不必加括号,如&arc&sin(sin(1.234))&只需键入arc&sin&sin&1.234&Enter&
&&&&&&&&switch&(op[*iop-1])&{
&&&&&&&&case&&7:&x=sin(x);&&(*iop)--;
&&&&&&&&case&&8:&x=cos(x);&&(*iop)--;
&&&&&&&&case&&9:&x=tan(x);&&(*iop)--;
&&&&&&&&case&10:&x=sqrt(x);&(*iop)--;
&&&&&&&&case&11:&x=asin(x);&(*iop)--;
&&&&&&&&case&12:&x=acos(x);&(*iop)--;
&&&&&&&&case&13:&x=atan(x);&(*iop)--;
&&&&&&&&case&14:&x=log10(x);(*iop)--;
&&&&&&&&case&15:&x=log(x);&&(*iop)--;
&&&&&&&&case&16:&x=exp(x);&&(*iop)--;
&&&&return&x;
double&calc(char&*expr,char&**addr)&{
&&&&static&int&&//递归深度
&&&&static&char&*fname[]={&"sin","cos","tan","sqrt","arcsin","arccos","arctan","lg","ln","exp",NULL};
&&&&double&ST[10]={0.0};&//数字栈
&&&&char&op[10]={'+'};&//运算符栈
&&&&char&c,*rexp,*pp,*
&&&&int&ist=1,iop=1,last,i;
&&&&if&(!deep)&{
&&&&&&&&pp=pf=
&&&&&&&&do&{
&&&&&&&&&&&&c&=&*pp++;
&&&&&&&&&&&&if&(c!='&'&&&c!=Tab)
&&&&&&&&&&&&&&&&*pf++&=&c;
&&&&&&&&}&while&(c!='\0');
&&&&if&((c=*pp)=='-'------解决思路----------------------c=='+')&{
&&&&&&&&op[0]&=&c;
&&&&&&&&pp++;
&&&&last&=&!DIGIT;
&&&&while&((c=*pp)!='\0')&{
&&&&&&&&if&(c=='(')&{//左圆括弧
&&&&&&&&&&&&deep++;
&&&&&&&&&&&&ST[ist++]=calc(++pp,addr);
&&&&&&&&&&&&deep--;
&&&&&&&&&&&&ST[ist-1]=fun(ST[ist-1],op,&iop);
&&&&&&&&&&&&pp&=&*
&&&&&&&&&&&&last&=&DIGIT;
&&&&&&&&&&&&if&(*pp&==&'('------解决思路----------------------isalpha(*pp)&&&&strnicmp(pp,"Pi",2))&{//目的是:当右圆括弧的右恻为左圆括弧或函数名字时,默认其为乘法
&&&&&&&&&&&&&&&&op[iop++]='*';
&&&&&&&&&&&&&&&&last&=&!DIGIT;
&&&&&&&&&&&&&&&&c&=&op[--iop];
&&&&&&&&&&&&&&&&goto&operate&;
&&&&&&&&&&&&}
&&&&&&&&else&if&(c==')')&{//右圆括弧
&&&&&&&&&&&&pp++;
&&&&&&&&&&&&
&&&&&&&&}&else&if&(isalpha(c))&{
&&&&&&&&&&&&if&(!strnicmp(pp,"Pi",2))&{
&&&&&&&&&&&&&&&&if&(last==DIGIT)&{
&&&&&&&&&&&&&&&&&&&&cout&&&"π左侧遇)"&&&exit(1);
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&ST[ist++]=3.38328;
&&&&&&&&&&&&&&&&ST[ist-1]=fun(ST[ist-1],op,&iop);
&&&&&&&&&&&&&&&&pp&+=&2;
&&&&&&&&&&&&&&&&last&=&DIGIT;
&&&&&&&&&&&&&&&&if&(!strnicmp(pp,"Pi",2))&{
&&&&&&&&&&&&&&&&&&&&cout&&&"两个π相连"&&&exit(2);
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&if&(*pp=='(')&{
&&&&&&&&&&&&&&&&&&&&cout&&&"π右侧遇("&&&exit(3);
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&for&(i=0;&(pf=fname[i])!=NULL;&i++)
&&&&&&&&&&&&&&&&&&&&if&(!strnicmp(pp,pf,strlen(pf)))&
&&&&&&&&&&&&&&&&if&(pf!=NULL)&{
&&&&&&&&&&&&&&&&&&&&op[iop++]&=&07+i;
&&&&&&&&&&&&&&&&&&&&pp&+=&strlen(pf);
&&&&&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&&&&&cout&&&"陌生函数名"&&&exit(4);
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}
&&&&&&&&}&else&if&(c=='+'------解决思路----------------------c=='-'------解决思路----------------------c=='*'------解决思路----------------------c=='/'------解决思路----------------------c=='%'------解决思路----------------------c=='^')&{
&&&&&&&&&&&&char&
&&&&&&&&&&&&if&(last&!=&DIGIT)&{
&&&&&&&&&&&&&&&&cout&&&"运算符粘连"&&&exit(5);
&&&&&&&&&&&&}
&&&&&&&&&&&&pp++;
&&&&&&&&&&&&if&(c=='+'------解决思路----------------------c=='-')&{
&&&&&&&&&&&&&&&&do&{
&&&&&&&&&&&&&&&&&&&&cc&=&op[--iop];
&&&&&&&&&&&&&&&&&&&&--
&&&&&&&&&&&&&&&&&&&&switch&(cc)&{
&&&&&&&&&&&&&&&&&&&&case&'+':&&ST[ist-1]&+=&ST[ist];
&&&&&&&&&&&&&&&&&&&&case&'-':&&ST[ist-1]&-=&ST[ist];
&&&&&&&&&&&&&&&&&&&&case&'*':&&ST[ist-1]&*=&ST[ist];
&&&&&&&&&&&&&&&&&&&&case&'/':&&ST[ist-1]&/=&ST[ist];
&&&&&&&&&&&&&&&&&&&&case&'%':&&ST[ist-1]&=&fmod(ST[ist-1],ST[ist]);
&&&&&&&&&&&&&&&&&&&&case&'^':&&ST[ist-1]&=&pow(ST[ist-1],ST[ist]);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&}&while&(iop);
&&&&&&&&&&&&&&&&op[iop++]&=&c;
&&&&&&&&&&&&}&else&if&(c=='*'------解决思路----------------------c=='/'------解决思路----------------------c=='%')&{
operate:&&&&&&&&cc&=&op[iop-1];
&&&&&&&&&&&&&&&&if&(cc=='+'------解决思路----------------------cc=='-')&{
&&&&&&&&&&&&&&&&&&&&op[iop++]&=&c;
&&&&&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&&&&&--
&&&&&&&&&&&&&&&&&&&&op[iop-1]&=&c;
&&&&&&&&&&&&&&&&&&&&switch&(cc)&{
&&&&&&&&&&&&&&&&&&&&case&'*':&&ST[ist-1]&*=&ST[ist];
&&&&&&&&&&&&&&&&&&&&case&'/':&&ST[ist-1]&/=&ST[ist];
&&&&&&&&&&&&&&&&&&&&case&'%':&&ST[ist-1]&=&fmod(ST[ist-1],ST[ist]);
&&&&&&&&&&&&&&&&&&&&case&'^':&&ST[ist-1]&=&pow(ST[ist-1],ST[ist]);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&cc&=&op[iop-1];
&&&&&&&&&&&&&&&&if&(cc=='^')&{
&&&&&&&&&&&&&&&&&&&&cout&&&"乘幂符连用"&&&exit(6);
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&op[iop++]&=&c;
&&&&&&&&&&&&}
&&&&&&&&&&&&last&=&!DIGIT;
&&&&&&&&}&else&{
&&&&&&&&&&&&if&(last&==&DIGIT)&{
&&&&&&&&&&&&&&&&cout&&&"两数字粘连"&&&exit(7);
&&&&&&&&&&&&}
&&&&&&&&&&&&ST[ist++]=strtod(pp,&rexp);
&&&&&&&&&&&&ST[ist-1]=fun(ST[ist-1],op,&iop);
&&&&&&&&&&&&if&(pp&==&rexp)&{
&&&&&&&&&&&&&&&&cout&&&"非法字符"&&&exit(8);
&&&&&&&&&&&&}
&&&&&&&&&&&&pp&=&
&&&&&&&&&&&&last&=&DIGIT;
&&&&&&&&&&&&if&(*pp&==&'('------解决思路----------------------isalpha(*pp))&{
&&&&&&&&&&&&&&&&op[iop++]='*';
&&&&&&&&&&&&&&&&last&=&!DIGIT;
&&&&&&&&&&&&&&&&c&=&op[--iop];
&&&&&&&&&&&&&&&&goto&operate&;
&&&&&&&&&&&&}
&&&&*addr=
&&&&if&(iop&=ist)&{
&&&&&&&&cout&&&"表达式有误"&&&exit(9);
&&&&while&(iop)&{
&&&&&&&&--
&&&&&&&&switch&(op[--iop])&{
&&&&&&&&case&'+':&&ST[ist-1]&+=&ST[ist];
&&&&&&&&case&'-':&&ST[ist-1]&-=&ST[ist];
&&&&&&&&case&'*':&&ST[ist-1]&*=&ST[ist];
&&&&&&&&case&'/':&&ST[ist-1]&/=&ST[ist];
&&&&&&&&case&'%':&&ST[ist-1]&=&fmod(ST[ist-1],ST[ist]);
&&&&&&&&case&'^':&&ST[ist-1]&=&pow(ST[ist-1],ST[ist]);
&&&&return&ST[0];
int&main(int&argc,char&**argv)&{
&&&&int&a;
&&&&if&(argc&2)&{
&&&&&&&&if&(GetConsoleOutputCP()!=936)&system("chcp&936&NUL");//中文代码页
&&&&&&&&cout&&&&"计算函数表达式的值。"&&endl&&"支持(),+,-,*,/,%,^,Pi,sin,cos,tan,sqrt,arcsin,arccos,arctan,lg,ln,exp"&&
&&&&&&&&while&(1)&{
&&&&&&&&&&&&cout&&&&"请输入表达式:";
&&&&&&&&&&&&gets(s);
&&&&&&&&&&&&if&(s[0]==0)&//
&&&&&&&&&&&&cout&&&&s&&&"=";
&&&&&&&&&&&&cout&&&&setprecision(15)&&&&calc(s,&endss)&&&&
&&&&}&else&if&(argc==2&&&&0==strcmp(argv[1],"/?"))&{
&&&&&&&&if&(GetConsoleOutputCP()!=936)&system("chcp&936&NUL");//中文代码页
&&&&&&&&cout&&&&"计算由≥1个命令行参数给出的函数表达式的值。最后一个参数是.0~.15表示将计算结果保留小数0~15位"&&endl&&"支持(),+,-,*,/,%,^^,Pi,sin,cos,tan,sqrt,arcsin,arccos,arctan,lg,ln,exp"&&
&&&&}&else&{
&&&&&&&&strncpy(s,argv[1],MAXLEN-1);s[MAXLEN-1]=0;
&&&&&&&&if&(argc&2)&{
&&&&&&&&&&&&for&(a=2;a&argc-1;a++)&strncat(s,argv[a],MAXLEN-1);//将空格间隔的各参数连接到s
&&&&&&&&&&&&if&(1==sscanf(argv[a],".%d",&pcs)&&&&0&=pcs&&&&pcs&=15)&{//最后一个参数是.0~.15表示将计算结果保留小数0~15位
&&&&&&&&&&&&&&&&printf("%.*lf\n",pcs,calc(s,&endss));
&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&strncat(s,argv[a],MAXLEN-1);
&&&&&&&&&&&&&&&&printf("%.15lg\n",calc(s,&endss));
&&&&&&&&&&&&}
&&&&&&&&}&else&{
&&&&&&&&&&&&printf("%.15lg\n",calc(s,&endss));
&&&&return&0;
除恶务尽!
斩草除根!
------解决思路----------------------单步跟一下,顺序完成加减乘除,忽略优先级
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有自学中的小菜鸟第一次写的代码:
进程池中的一小部分代码,请大神指点
[问题点数:40分]
自学中的小菜鸟第一次写的代码:
进程池中的一小部分代码,请大神指点
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。09:57 提问
请大神看一下我的代码还缺什么文件,该怎么改啊
#include"stm8s.h"
#include"stm8s_UART1.h"
#include"stm8s_clk.h"
#include"stm8s_conf.h"
#include"iostm8s003k3.h"
typedef unsigned char uint8;
typedef unsigned char uint16;
uint8 num=0;
/************************************************************************/
功能:时钟配置初始化
/************************************************************************/
void CLK_Init(void)
/*对于内部高速时钟HSI[16MHz],其逻辑关系是HSI---[HSIDIV分频]---[时钟选择门]---
主时钟Fmaster---{[CPUDIV分频]---Fcpu时钟;其他外设时钟}
CLK_ICKR = 0x01;
//Internal clock control register。复位值,使能HSI时钟,快速唤醒禁止
CLK_ECKR = 0x00;
//External clock control register。HSE禁止。
//Clock master switch register。选择HSI为主时钟。
CLK_SWCR = 0x00;
//Clock switch control register。时钟切换,中文数据手册翻译似乎有误
/*Clock divider register。分频Fmaster和Fcpu。
默认是8和1,现在是2和1,因此Fmaster=8M,Fcpu=8M
CLK_CKDIVR = 0x08;
CLK_PCKENR1 = 0xFF; //Peripheral clock gating register 1。Fmaster与外设时钟连接
CLK_PCKENR2 = 0x0;
CLK_CSSR = 0x0;
//Clock security system register。时钟安全检测关
CLK_CCOR = 0x0;
//Configurable clock control register。时钟输出关闭
//****************************************/
// 函数名称:Init_Uart1
// 函数功能:串口寄存器初始化
// 入口参数:波特率值
// 出口参数:无
// 返 回 值:无
//***************************************/
void Uart1_Init(uint16 Tcon)
uint8 Tmp1 = 0 ;
uint8 Tmp2 = 0 ;
//禁止UART发送和接收
UART1_CR2 =0 ;
//M=0 8个数据位 b2=0,禁止校验 b5=0,UART使能
UART1_CR1 = 0 ;
UART1_CR3 = 0 ;
// b5 b4 = 00 ,一个停止位
//波特率设置,先写UART_BRR2 再写UART_BRR1
// F = 9600, 分频为:16M/9600 = 1666.7 -& 0X0683
Tmp1 = (uint8)((Tcon && 4) & 0x00ff) ;
Tmp2 = (uint8)((Tcon & 0x000f)|((Tcon && 8) & 0x00f0));
UART1_BRR2 = Tmp2;
UART1_BRR1 = Tmp1 ;
//允许发送
接收中断使能
UART1_CR2 |= (REN | TEN | RIEN);
CLK_Init();
· UART1_init();
//***************************************/
// 函数名称:UartSendByte
// 函数功能:串口发送一字节数据
// 入口参数:要发送的数据
// 出口参数:无
// 返 回 值:无
//***************************************/
void UartSendByte(uint8 num)
while(!(UART1_SR & TXE));//发送数据寄存器为非空 等待 .
UART1_DR =
//*************************************************************/
// 函数名称:Uart1ReceByte
// 函数功能:串口接收一字节数据
// 入口参数:无
// 出口参数:接收到的数据
// 返 回 值:返回是否接收到数据 接收到数据返回1,未接到返回0
//*************************************************************/
void Uart1ReceByte(uint8 num)
if((UART1_SR & RXNE) != 0);//读数据寄存器为非空 说明有数据进来
UART1_SR &= ~RXNE ;
num = UART1_DR ;
UART1_DR =
(×:表示有错的地方;
· :表示警告)
编译结果:
Building configuration: mbv - Debug
Updating build tree...
Warning[Pe009]: nested comment is not allowed I:\我的项目\项目1\项目内容\MBV\main.c 17
Error[Pe020]: identifier "REN" is undefined I:\我的项目\项目1\项目内容\MBV\main.c 65
Error[Pe020]: identifier "TEN" is undefined I:\我的项目\项目1\项目内容\MBV\main.c 65
Error[Pe020]: identifier "RIEN" is undefined I:\我的项目\项目1\项目内容\MBV\main.c 65
Warning[Pe223]: function "UART1_init" declared implicitly I:\我的项目\项目1\项目内容\MBV\main.c 72
Error[Pe020]: identifier "TXE" is undefined I:\我的项目\项目1\项目内容\MBV\main.c 87
Error[Pe020]: identifier "RXNE" is undefined I:\我的项目\项目1\项目内容\MBV\main.c 100
Error[Pe020]: identifier "RXNE" is undefined I:\我的项目\项目1\项目内容\MBV\main.c 102
Error[Pe020]: identifier "REN" is undefined I:\我的项目\项目1\项目内容\MBV\main.c 106
Error while running C/C++ Compiler
Total number of errors: 8
Total number of warnings: 2
按赞数排序
main.c文件的第65行用到的REN在哪里定义的?还有TEN等好多定义都找不到
这是单片机的C语言,要根据手册来对照才知道需要哪些头文件。
找不到定义的类型,先找它的头文件,然后include
25关注|115收录
181关注|660收录
242关注|244收录
其他相似问题
相关参考资料

我要回帖

更多关于 c语言看不懂 的文章

 

随机推荐