历史上的今天
今天是:2025年04月16日(星期三)
2019年04月16日 | 关于STM32函数定义
2019-04-16 来源:eefocus
1.*(__IO uint8_t *) CIR_BYTE3_ADDRESS
#define __IO volatile /*!< Defines 'read / write' permissions
声明 volatile ,目的:使编译器不优化该变量。从相应变量内存中取数。
/* Check the parameters */
assert_param(IS_TIM_ALL_PERIPH(TIMx)); //assert _param函数作参数检查用
2. static:
static局部变量中文名叫静态局部变量。它与普通的局部变量比起来有如下几个区别:
1)位置:静态局部变量被编译器放在全局存储区.data(注意:不在.bss段内,原因见3)),所以它虽然是局部的,但是在程序的整个生命周期中存在,调用完毕后需要手动释放内存空间。
2)访问权限:静态局部变量只能被其作用域内的变量或函数访问。也就是说虽然它会在程序的整个生命周期中存在,由于它是static的,它不能被其他的函数和源文件访问。
3)值:静态局部变量如果没有被用户初始化,则会被编译器自动赋值为0,以后每次调用静态局部变量的时候都用上次调用后的值。这个比较好理解,每次函数调用静态局部变量的时候都修改它然后离开,下次读的时候从全局存储区读出的静态局部变量就是上次修改后的值。
3. extern 外部变量声明
作全局变量用,在本文件中 int j;
外部文件声明: extern int j;
4.typedef 的应用(有参数类型检查功能)
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned __INT64 uint64_t;
5.define的应用
#define SYSTEM_SUPPORT_OS 0 //用 SYSTEM_SUPPORT_OS 代替 0
define语句的特点:对参数不做任何检查,在函数编译时就直接有效
上一篇:STM32类型定义
下一篇:说说STM32的堆栈与内存
史海拾趣
|
RT,无法抓取,打印任务文件名是中文的文件名. 我在打印处理器里面的,PrintDocumentOnPrintProcessor事件里面,去取打印作业文件名,代码如下: 在最后一行,取文件名,如果打印文件的文件名是英文的,DebugPrint输出正确;如果打印文件的文件名是中 ...… 查看全部问答> |
|
寻觅人才---1.Macintosh开发C++ 2.外派美国微软的开发工程师C# 寻觅人才---1.Macintosh开发C++ 2.外派美国微软的开发工程师C# 继续偶的寻觅工作,希望大家有感兴趣或者有这样的朋友的帮忙奔走相告下,谢谢 偶的联系方式:qq08123456@hotmail.com 1.Macintosh开发C++ 职位是给英国一家做Network ...… 查看全部问答> |
|
TMS320C2801的eCAP功能可以捕获PWM的脉冲个数吗? 查看了TMS320C2801的eCAP功能手册和相关样例,介绍的都是利用该捕获功能进行脉冲周期的测量,而没有对脉冲个数的测量,请问:该功能模块可以现实对脉冲个数的捕获吗? 本人是初学者,请高手们指点一下,最好可以提供一个样例程序,非常感谢!!!… 查看全部问答> |
|
在信息日益成为一种重要资源的今天,强大的市场需求和微电子技术的发展促成了便携式电子系统的飞速发展。这些便携式电子设备,不但对速度和面积要求非常高,而且对系统的平均功耗要求也很严格,使功耗问题日渐成 ...… 查看全部问答> |
|
我不理解 问题一:到底把程序下载到FLASH 还是SRAM中有什么区别?(程序如果下载到FLASH中,启动后会自动转到SRAM中运行,这个对吧?) ...… 查看全部问答> |




