1. c语言中嵌入式编程问题
*表示指针,int *表示一个类型,意思是指向一个整型变量的指针,volatile修饰符表示这个指针指向的内容会自动变化(比如被硬件修改它的值).
0x300000是一个整型常数,(volatile int *)是一个强制类型转换运算符,它把一个整型量转换为一个指向4字节整数的地址,
这样是对的,NET就是一个地址了,
你如果要读数的话,可以这样:
int a;
a=*(NET);
最好写成这样:
#define NET ((volatile int *)0x300000 )
2. C语言与嵌入式
MCU-51是51系列的单片机。可以利用C语言或者汇编进行代码编写。从简单的来讲,比如控制
led数码管
显示数字啊,控制键盘,LCD屏显,再有传感器类的,比如温度采集啊,重量采集等等等等。
嵌入式系统
在我们周围到处都是。
3. 嵌入式C语言
首先回答你的第一个问题:
学习嵌入式C语言,以后是不是停留在比较底层的了,如果转而向高层发展是不是就比较难了?
学习嵌入式C,并不一定会停留在底层,你也可以转向高层发展,不过高层就是指操作系统和应用程序了。而且你要是搞懂了底层,转而去发展操作系统工程师和应用程序工程师也是相对要简单很多,而且你做出来的系统和应用程序会比直接做系统和应用程序的工程师效率更高,错误更少。因为底层是他们的基础,你都知道底层的实现了,还不能把他们应用好么?
第二个问题:
一般来说,学习嵌入式,是不是相对要了解的知识比较多?
是的,嵌入式是个很庞大的方向,可以说它能在IT行业里面任何一个领域通杀。现在的任何一款电子产品,都是离不开嵌入式的。因此,要学习嵌入式,要了解的东西就会非常多:包括了技术层面(嵌入式的各种底层驱动程序,各种设计机制,各种总线通讯等)和行业背景的知识(比如汽车行业、手机行业、pad行业、金融行业等)。
第三个问题:
然后想问一下,嵌入式C语言的前景?
嵌入式C语言的前景是不错的,包括两个方面:第一就是当前已经没有多少人用汇编语言来编写底层代码了,绝大部分都是用的C语言,而当前与硬件联系最紧密的就是C语言了。第二就是嵌入式方向,以后社会的发展前景是电子产品将会越来越多,功能越来越强大,所需要的底层功能器件也越来越多,所以嵌入式是只会越来越需求。前景都是很不错的。
另外,嵌入式系统方向是一个很庞大也很难的领域,需要很长一段时间的积累和沉淀,这都需要以牺牲时间和精力为代价的。
4. 嵌入式开发平台上使风扇的转速从慢到快.使用C语言程序编写出现如下错误,求解!
你试试 void main() ,return 0; 换成 return ;
还有他说你的ioctl()函数没有声明
5. MDK编译出错,嵌入式系统编程问题,c语言
这个意思是找不到L6002U这个文件,你要将这个文件粘贴在你的工程里(L6002U.h),在你程序的声明部分声明
6. c语言与汇编嵌入式程序的问题
应该是函数int sum(int a,int b)不能正常返回
因为你在它里面用到寄存器,但你在用之前没压栈
7. 嵌入式 C语言问题。。。
强制转换类型,那样会类型不一致,在C语言里面,类型不一致是无法赋值的,
prt是int *类型,0xFFA只是一个值,所以要把这个值强制转换为指向int型的指针。
8. 一段用于嵌入式开发平台的C语言程序,效果不尽人意,请求大神们修改,多谢!!!修改后若有效果则追加分
#include<stdio.h>
#include<pthread.h>
#include<unistd.h>
#include<fcntl.h>
#include<stdlib.h>
#defineADC"/dev/adc/0raw"
intadc_fd=-1;
floata1,a2,a0;
intthreadloop=1;
intgetADC(intchannel);
staticvoid*pe()
{
while(threadloop)
{
a1=getADC(1)*3.3/1024;
a2=getADC(2)*3.3/1024;
a0=getADC(0)*3.3/1024;
printf("d0=%f,d1=%f,d2=%f ",a0,a1,a2);
}
return0;
}
intmain()
{
intd;
pthread_tp_m;
void*retval;
if((adc_fd=open(ADC,O_RDWR))<0)
{
printf("devopenerror!");
return0;
}
threadloop=1;
pthread_create(&p_m,NULL,pe,0);
while(1)
{
d=getchar();
if(d=='q'||d=='Q')break;
}
threadloop=0;
pthread_join(p_m,&retval);
close(adc_fd);
return0;
}
intgetADC(intchannel)
{
intd=(channel<<16)|0xff;
write(adc_fd,&d,sizeof(d));
read(adc_fd,&d,sizeof(d));
returnd;
}
9. C语言中使用嵌入式SQL 定义游标出现-01036错误【非法的变量/编号】请高手帮忙
http://www.dezai.cn/Channel/Web/ArticleShow.aspx?AI=61490
10. c语言,stm32,嵌入式,arm 中keil出现下面的错误,不知什么原因,#ifdef编译没有问题啊。跪求 一定采纳
这个警告是正常的。
看看你的另一个工程,是不是把警告全部都关闭了。在Options for Target >> C/C++选项卡下,看看Warning设置的是什么。