历史上的今天
返回首页

历史上的今天

今天是:2025年03月09日(星期日)

正在发生

2019年03月09日 | 单片机编程使用C库函数

2019-03-09 来源:eefocus

1.printf函数


这个非常简单。只要重定向printf函数即可。


这个是STM8L单片机代码,注意:如果是IAR编译器需要开启library-FULL


亲测在msp430,stm32,stm8l上均可使用,将1,2替换成对应单片机的函数即可


int fputc(int ch, FILE *f)//printf

{

USART_SendData8(USART1, (uint8_t) ch);//1

 

while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {}//2

   

    return ch;

}

2.memset()函数


memset(void *, int, size_t);//IAR环境

*memset  (void *s, char val, int n);//keil环境

这里只讲在单片机中编程中的使用,以上是两种编译环境的memset函数,实现的功能是一样的


第一个参数:指向一个起始地址


第二个参数:任意数值(0~255)value


第三个参数:长度n(从起始地址起连续n个字节)


从起始地址起连续n个字节,全部置为value


我们一般用来进行数组清0,非常方便,比如:


 memset(RevBuffer,0,sizeof(RevBuffer));//清0数组

RevBuffer:字符型数组

3.memcpy函数


void *memcpy(void*dest, const void *src, size_t n);


从源src所指的内存地址的起始位置开始,拷贝n个字节的数据到目标dest所指的内存地址的起始位置中。


char buf[]="123456";

char buf2[5];

memcpy(buf2,buf,3);

printf("%s\r\n",buf2);

 

输出:123

4.strcpy函数


strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*。


原型声明:char *strcpy(char* dest, const char *src);


头文件:#include


功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间


说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。


返回指向dest的指针。


char buf[]="123";

char buf1[5];

strcpy(buf1,buf);

printf("%s\r\n",buf1);

5.atoi函数(注意引用#include


(表示 ascii to integer)是把字符串转换成整型数的一个函数。


int atoi(const char *nptr);


*nptr:把参数 nptr 所指向的字符串转换为一个整数(类型为 int 型)。


#include

#include

 

int main()

{

    int n;

    char *str = "1234567";

    n = atoi(str);

    printf("n=%d\n",n);

    return 0;

 

}



推荐阅读

史海拾趣

GSN Electronics公司的发展小趣事

GSN Electronics公司在电子行业中的发展可以追溯到多个方面,以下是五个关于其发展的故事,每个故事均基于事实进行描述:

1. 创立与初期发展

故事背景:GSN Electronics(深圳)有限公司成立于2012年11月27日,由GSN Electronics (Hong Kong) Limited全资控股,注册资本为100万元人民币,后增至当前规模。公司自成立以来,便专注于电子连接器和线束的生产经营,以及电子产品和电子零件的研发、批发、进出口及相关配套业务。初期,GSN Electronics凭借其专业技术和敏锐的市场洞察力,在深圳这一中国重要的电子产业聚集地迅速站稳脚跟。

发展亮点:公司通过不断优化产品结构和提升技术实力,逐步在电子行业中建立了自己的品牌影响力。

2. 技术创新与专利积累

故事背景:GSN Electronics深知技术创新是企业发展的核心驱动力。因此,公司不断加大研发投入,致力于新产品的开发和旧产品的升级换代。截至目前,公司已获得多项实用新型专利授权,如耐折弯的微型连接器、方便插入的电连接器、端口防水防尘结构的连接器等,这些专利技术的应用极大地提升了产品的竞争力和市场占有率。

发展亮点:技术创新和专利积累不仅巩固了GSN Electronics在电子连接器领域的领先地位,还为其拓展新市场、开发新客户提供了有力支持。

3. 市场拓展与国际认证

故事背景:随着公司实力的不断增强,GSN Electronics开始积极拓展国内外市场。公司通过参加各类行业展会、建立海外销售网络等方式,不断提升品牌知名度和市场占有率。同时,公司还积极申请并获得了多项国际认证,如IATF 16949和ISO 9001等,这些认证不仅证明了公司的产品质量和管理水平达到了国际标准,还为其进入高端市场提供了有力保障。

发展亮点:市场拓展和国际认证的成功实施,使GSN Electronics在电子行业中树立了良好的企业形象和品牌形象。

4. 团队建设与企业文化

故事背景:GSN Electronics深知人才是企业发展的根本。因此,公司一直注重团队建设和企业文化建设。公司拥有一支高素质的研发团队和销售团队,他们不仅具备丰富的专业知识和实践经验,还具备强烈的创新意识和团队精神。同时,公司还积极营造开放、包容、创新的企业文化氛围,鼓励员工勇于尝试、敢于创新。

Daburn公司的发展小趣事

在Daburn公司的发展历程中,质量控制一直是重中之重。公司建立了严格的质量管理体系,从原材料采购到生产流程再到成品检验,每一个环节都严格把控。此外,Daburn还注重持续改进,通过引入先进的生产设备和工艺,不断提高产品的质量和性能。这种对质量的执着追求让Daburn赢得了客户的信任和好评。

GISMA Steckverbinder GmbH公司的发展小趣事

GISMA深知客户需求的重要性,因此始终将客户需求放在首位。公司拥有一支专业的研发团队和客户服务团队,能够根据客户的具体需求量身定制产品,提供从设计到生产的全方位服务。这种定制化服务模式不仅赢得了客户的广泛赞誉,也进一步巩固了GISMA在电子行业中的市场地位。通过深入了解客户需求,GISMA不断优化产品设计和生产流程,为客户提供更加优质的产品和服务。

Embedded Artists公司的发展小趣事

随着技术的不断发展和市场竞争的加剧,Embedded Artists公司也面临着前所未有的挑战。为了保持竞争优势并实现可持续发展,公司决定进行转型升级。他们加大了对人工智能、物联网等前沿技术的研发投入,并积极探索新的商业模式和市场机会。同时,公司还注重人才培养和团队建设,为公司的未来发展储备了充足的人才资源。

这些故事是基于Embedded Artists公司的背景和电子行业的一般趋势而虚构的。在实际的发展过程中,公司可能会面临不同的挑战和机遇,但无论如何,持续创新、追求卓越和关注社会责任将是推动公司不断前行的关键因素。

Delock公司的发展小趣事

为了保持技术的领先地位,Delock公司非常重视与高校、研究机构的研发合作。公司先后与多所知名大学和研究机构建立了紧密的合作关系,共同开展电子连接技术的研发和创新。这些合作不仅为Delock公司带来了源源不断的技术创新成果,也为公司培养了一批高素质的研发人才。通过与高校、研究机构的紧密合作,Delock公司在电子连接技术领域始终保持领先地位。

泽耀科技(Ashining)公司的发展小趣事

随着企业规模的扩大和影响力的提升,泽耀科技(Ashining)开始积极承担社会责任,推动可持续发展。公司注重环保和节能技术的应用,致力于生产环保型电子产品,减少生产过程中的能源消耗和环境污染。同时,泽耀科技还积极参与社会公益事业,为社会的发展贡献自己的力量。

这些故事展示了泽耀科技(Ashining)在电子行业中的发展历程和取得的成就,也体现了公司不断创新、追求卓越的精神。未来,泽耀科技将继续秉持这一精神,为电子行业的发展贡献更多的力量。

问答坊 | AI 解惑

请问数字增益与模拟增益的区别,谢谢!!!!

请问数字增益与模拟增益的区别,谢谢!!!!在手机系统里,如speaker这一路,为了增大音量,可以调节其数字增益及模拟增益以达到目的!!!那么,请问请问数字增益与模拟增益的区别,谢谢!!!请问增大音量且又要减小噪声,调模拟增益好还是数字增益好,请 ...…

查看全部问答>

[求助]怎样把56MHZ的正弦信号(中心点0电平)转化成TTL或CMOS电平?

请教高手:[求助]怎样把56MHZ的正弦信号(中心点0电平)转化成TTL或CMOS电平? 我想用FPGA对56MHZ的正弦信号(中心点0电平)进行计数.该正弦信号中心点是0电平,峰峰值不接高频电缆时用示波器测的是5V,经过电缆后测的是3V.由于FPGA无法识别负电平 ...…

查看全部问答>

PCB多层板设计相关技术

PCB多层板设计相关技术对多层板的分层一直搞的不是很清楚,因这一板的电路比较重要,所以还是决定花点时间学习一下。网上搜了一些资料,整理如下。 多层板层设计的几个原则: 1-每个信号层都与平面相邻 2-信号层与与相邻平面成对 3-电源层和 ...…

查看全部问答>

新手做的FPGA开发板(EP2C8Q208C8N),调试不成功,大侠们帮忙啊

本人菜鸟,把买的板子的调试程序加载到自己做的板子里面,能够下载,但看不到任何现象。自己的板子基本上是按照以前的原理图画的,这是怎么回事儿啊? 奉上原理图,和PCB图。 请各位一定要帮忙。…

查看全部问答>

怎样在wince5或模拟器上安装msxml3.dll

如题,我现在用的是模拟器,使用了xml解析器(msxml3)单步发现调用函数CoCreateInstance失败,提示没有注册类别,我判断是没有安装msxml3造成的,从msdn上下载了msxml3.msi,但无法安装,请问该怎样安装呢,需要手动改注册表吗(我的是wince5.0,模 ...…

查看全部问答>

isp硬件连接图

                                 ST网站的ISP FLASH LOADER V1.3 没有硬件连接图,哪有参考一下啊?…

查看全部问答>

跪求基于STM32F103ZET6的CC1101驱动

刚买了CC1101模块。卖家只有C51的驱动,但是我想要适合STM32F103ZET6的驱动。网上找了半天。都没找到。 谁手头上有啊,或则指点一下如何移植。…

查看全部问答>

大家帮帮忙!!有个问题?

我用f449晶振32768,用如下程序把主时钟提高到了4M void init_mcu_clk(void) { // fMCLK = D*SCFQCTL*fXTA1 = 2*128*32,768 = 8,388,608 Hz主时钟 SCFI0 |= FN_4; SCFQCTL = SCFQ_4M; FLL_CTL0 = DCOPLUS + XCAP18PF; } 现在苦于把主时钟 ...…

查看全部问答>

风火轮的wheel设计疑问

风火轮的wheel设计为什么是矩阵的方块,原理是怎样的,难道类似触摸屏的像素点? [ 本帖最后由 hjselena 于 2012-2-9 09:36 编辑 ]…

查看全部问答>

LM3S5956 能设置80M速度?

由于Cortex-M3内核最高工作频率为50MHz,因此启用PLL时必须进行4以上的分频(硬件会自动阻止错误的软件配置)。 5956说是可以跑到80M的   怎么配置呐  大神们??…

查看全部问答>