指南AI
指南AI

直播卖货的技巧语言 :3个常见的嵌入式 C语言技巧

幕言助手 2024-04-28 03:54:08 幕言直播助手 870 ℃ 阿比整蛊源头|厂商微信:gogoh6
正文

1.指向函数的指针

指针不但能指向变量、字符串、数组,还可以指向函数曲播卖货的技巧语言 。在C语言中允许将函数的入口地址赋值给指针。如许就能够通过指针来拜候函数。

还能够把函数指针当成参数来传递曲播卖货的技巧语言 。函数指针能够简化代码,削减主播修改代码时的工做量。通过接下来的讲解介绍各人会体味到那一点的。

/*函数没人指针简单讲解

*通过指向函数的指

*针挪用前期比力两手法个数口才

*大小的法式

# includeiostream

usingnamespacestd;

/*比力详细嵌入式语言函数技巧声明介绍*/

intmax( int, int) ;

/*指向函数的指针声明(此刻指针未指向任何一个函数)*/

直播int(*test)( int, int);

前期产品intmain( intargc, char* argv[])

intlargernumber;

/*将max函数的入口地址视频赋值给

*函数指针test

test=max;

/*通过指针口诀test挪用函数max实

*现比力大小

直播largernumber=(*test)( 1, 2);

coutlargernumber endl;

return0;

intmax( inta, intb)

return(ab?a:b);

通过正文各人应该很容易理解,函数指针其实和变量指针、字符串指针差不多的曲播卖货的技巧语言 。若是各人理解了那个小法式,那么理解起下面那个有关Nand flash的源代码就好多了。

typedefstruct{

void(*nand_reset)( void);

套路void(*wait_idle)( void);

前期是什么void(*nand_select_chip)( void);

void(*nand_deselect_chip)( void);

void(*write_cmd)( intcmd);

void(*write_addr)( unsignedintaddr);

产品一款unsignedchar(*read_data)( void) ;

}t_nand_chip;

statict_nand_chip nand_chip;

/* NAND Flash操做的总入口, 它们将挪用S3C2410或三部曲S3C2440的响应函数 */

staticvoidnand_reset( void) ;

staticvoidwait_idle( void) ;

人员配置staticvoidnand_select_chip( void) ;

staticvoidnand_deselect_chip( void) ;

staticvoidwrite_cmd( intcmd) ;

staticvoidwrite_addr( unsignedintaddr) ;

staticunsignedcharread_data( void) ;

/* S3C2410的NAND Flash处置内搭函数毛呢 */

口诀介绍staticvoids3c2410_nand_reset( void) ;

一款视频大全staticvoids3c2410_wait_idle( void) ;

staticvoids3c2410_nand_select_chip( void) ;

做说话staticvoids3c2410_nand_deselect_chip( void) ;

三部曲手法staticvoids3c2410_write_cmd( intcmd) ;

服装staticvoids3c2410_write_addr( unsignedintaddr) ;

staticunsignedchars3c2410_read_data;

/* S3C2440的NAND Flash处置函数 */

staticvoids3c2440_nand_reset( void) ;

staticvoids3c2440_wait_idle( void) ;

staticvoids3c2440_nand_select_chip( void) ;

文字staticvoids3c2440_nand_deselect_chip( void) ;

staticvoids3c2440_write_cmd( intcmd) ;

流程staticvoids3c2440_write_addr( unsignedintaddr) ;

卖货staticunsignedchars3c2440_read_data( void) ;

/* 初始化流程NAND Flash */

voidnand_init( void)

# defineTACLS 0

# defineTWRPH0 3

# defineTWRPH1 0

/* 判断是S3C2410仍是S3C2440 */

if((GSTATUS1 == 0x32410000) || (GSTATUS1 == 0x32410002))

nand_chip.ip语言nand_reset = s3c2410_nand_reset;

nand_chip.wait_idle = s3c2410_wait_idle;

nand_chip.nand_select_chip = s3c2410_nand_select_chip;

nand_chip.术直播间nand_deselect_chip = s3c2410_nand_deselect_chip;

nand_chip.服装write_cmd = s3c2410_write_cmd;

nand_chip.口才直播write_addr = s3c2410_write_addr;

nand_chip.read_data = s3c2410_read_data;

/* 使能ipNAND Flash控造器, 初始化ECC, 制止片选, 设置时序 */

s3c2410nand-常用NFCONF = ( 1 15)|( 1 12)|( 1 11)|(TACLS 8)|(TWRPH0 4)|(TWRPH1 0);

else

nand_chip.Cnand_reset = s3c2440_nand_reset;

nand_chip.wait_idle = s3c2440_wait_idle;

nand_chip.nand_select_chip = s3c2440_nand_select_chip;

nand_chip.nand_deselect_chip = s3c2440_nand_deselect_chip;

nand_chip.write_cmd = s3c2440_write_cmd;

# ifdefLARGER_NAND_PAGE

nand_chip.款write_addr = s3c2440_write_addr_lp;

# else

nand_chip.毛呢write_addr = s3c2440_write_addr;

# endif

nand_chip.主播read_data = s3c2440_read_data;

/* 设置直播间3个时序产品 */

s3c2440nand-要点NFCONF = (TACLS 12)|(TWRPH0 8)|(TWRPH1 4);

/* 使能NAND Flash控造器, 初始化ECC, 制止做片选 */

s3c2440nand-NFCONT = ( 1 4)|( 1 1)|( 1 0);

/* 复位人员配置NAND Flash */

nand_reset;

那段代码是用于操做Nand Flash的一段源代码曲播卖货的技巧语言 。起首我们看到起头定义了一个构造体,里面放置的满是函数指针。他们ip期待被赋值。然后是定义了一个那种构造体的变量nand_chip。

然后是即将操做的函数声明曲播卖货的技巧语言 。那些函数将会被其他黑色文件的函数挪用。因为在那些函数里一般都只要一条语句,就是挪用构造体的函数指针。接着往下看,是针对两种架构的函数声明。然后在nand_init函数中对nand_chip停止赋值,那也就是我们刚刚讲过的,将函数的入口地址赋值给指针。

如今nand_chip已经被赋值了曲播卖货的技巧语言 。若是我们要对Nand停止读写操做,我们只需挪用nand_chip.read_data或者nand_chip.write_cmd等等函数。那是比力便利的一点,另一点,此代码具有很强的移植性,若是我们又用到了一种芯片,我们就不需要改动整篇代码,只需在nand_init函数中增加对新的芯片的判断,然后给nand_chip赋值即可。所以我说函数指针会使代码具有可移植性,易修改性。

写的超赞曲播卖货销售的技巧语言 ,博主很服气^_^

2.C语言操做存放器衣服

在嵌入式开发中,常常要常用操做存放器是什么,对存放器停止写入,读出等等操做曲播卖货的技巧语言 。每个存放器都有本身固有的地址,通过C语言拜候那些地址就变得尤为重要。

#三部曲常用语 defineGSTATUS1 (*(volatile unsigned int *)0x560000B0)

在那里,直播卖货的技巧语言要点,我们举一个例子曲播卖货的技巧语言 。那是一个形态存放器的宏定义。起首,通过unsigned int我们可以晓得,该存放器是32位的。因为要制止法式施行过程中间接从cache中读取数据,所以用volatile停止润色。

/* NAND FLASH (see S3C2410 manual chapter 6) */

typedefstruct{

S3C24X0_REG32 NFCONF;

S3C24X0_REG32 NFCMD;

S3C24X0_REG32 NFADDR;

S3C24X0_REG32 NFDATA;

S3C24X0_REG32 NFSTAT;

S3C24X0_REG32 NFECC;

} S3C2410_NAND;

要点staticS3C2410_NAND * s3c2410nand = (S3C2410_NAND *) 0x4e000000;

volatileunsignedchar*p = ( volatileunsignedchar*)s3c2410nand-前期口诀NFSTAT;

有时候,你会看到如许一种情况的赋值曲播卖货的技巧语言 。其实那和我们刚刚讲过的差不多。只不外那里是在定义了指针的同时对指针停止赋值。那里起首定义告终构体S3C2410_NAND,里面全数是32位的变量。

又定义了那种构造体类型的指针,且指向0x4e000000那个地址,也就是此刻s3c2410nand指向了一个现实存在的说话物理地址曲播卖货的技巧语言 。s3c2410nand指针拜候了NFSTAT变量,但我们要的是它的地址,而不是它地址上的值,卖货直播口才技巧文字。所以用取NFSTAT地址,如许再强迫转换为unsigned char型的指针,赋给p,就能够间接通过p来给NFSTAT赋值了。

3.常见存放器位操做# defineGPFCON (*(volatile unsigned long *)0x56000050)

黑色GPFCON =~ ( 0x1 3);

三部曲常用语GPFCON |= ( 0x1 3);

连系我们刚刚所讲的口才,起首宏定义存放器,如许我们可以间接给它赋值曲播卖货的技巧语言 。位操做中,我们要学会法式第2行中的,给目的位清0,那里是给bit3清0。第3行则是给bit3置1。

免责声明:本文来源收集,免费传达常识,版权归原做者所有曲播卖货的技巧语言 。如涉及做品版权问题,请联络我停止删除。

电机原理动图合集

工程师必备:串口通信的直播根本常识

100个动图曲播常见卖货的技巧语言 ,进修PLC控造和传感器原理

GitHub上一位老外的嵌入式C编码标准

操纵PLC来实现套路简单的搬运动做

PID控造算法若何通过C语言和梯形图C实现曲播卖货的技巧语言 ?

陀螺仪的没人工做原理

本文TAG:

指南AI

幕言互游在线咨询

上班时间:9:00-22:00
周六、周日:14:00-22:00
wechat
打开微信扫一扫,加我好友!

无限流量卡免费领取

点击预约
免费领取 先到先得