- 1、本文档共176页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
小结开发工具安装Keil5调试工具下载程序ARM微控制器与嵌入式系统
6C语言基础复习主讲人:景妮琴北京电子科技职业学院C语言基础复习位操作define宏定义ifdef条件编译extern变量申明typedef变量别名结构体符号?描述?运算规则??????按位与两个位都为1时,结果才为1|??按位或????两个位都为0时,结果才为0^????按位异或两个位相同为0,相异为1~???取反0变1,1变0?左移各二进位全部左移若干位,高位丢弃,低位补0?右移各二进位全部右移若干位,对无符号数,高位补0位操作位操作:就是对类型变量可以在位级别进行操作C语言支持下面6种位操作:位操作1.不改变其他位的情况下,对某几位进行设值方法:对需要设置的位用“”操作符进行清零操作,然后用“|”操作符设值。例:要改变GPIOA-BSRRL的状态,可以先对寄存器的值进行“”清零操作,然后进行“|”或运算。GPIOA-BSRRL=0xFF0F;//这是将第4-7位清0GPIOA-BSRRL|=0x0040;//设置相应位的值,不改变其他位的值位操作2.移位操作提高代码的可读性GPIOx-ODR=(((uint32_t)0x01)pinpos);这个操作就是将ODR寄存器的第pinpos位设置为1使用左移比设定一个固定的值要好看,并且重用性高。如:GPIOx-ODR=(((uint32_t)0x03)4);GPIOx-ODR=0x0030;这两个代码当然是前一句的重用性高一些。位操作3.取反操作技巧取反操作经常与“”操作一起使用,把变量的某位清零如:GPIOx-ODR=~(((uint32_t)0x01)4);这个代码就是把bit4位清零10011111000000010000010011111011位操作4.位操作实例(1)把变量的某位清零:此处我们以变量a代表寄存器,并假设寄存器中本来已有数值,此时我们需要把变量a的某一位清零,且其它位不变。如下代码清单:1//定义一个变量a=10011111b(二进制数)2unsignedchara=0x9f;3//对bit2清零4a=~(12);5//括号中的1左移两位,(12)得二进制数:00000100b6//按位取反,~(12)得11111011b7//假如a中原来的值为二进制数:a=10011111b8//所得的数与a作”位与”运算,a=(10011111b)(11111011b),9//经过运算后,a的值a=10011011b10//a的bit2位被被零,而其它位不变。10011011 100000110000000100000100100000110000010010000111位操作4.位操作实例(2)对变量的某位进行赋值寄存器位通过“|=”可以对某位进行赋值。1//a=10000011b2a|=(12);3//a=10000111b位操作4.位操作实例(3)对变量的某位取反我们需要对寄存器的某个位进行取反操作,即1变0,0变1,这可以直接用如下操作,其它位不变,见代码清单。1//a=10010011b2//把bit6取反,其它位不变34a^=(16);5//a=11010011bdefine宏定义define是C语言中的预处理命令,用于宏定义,可以提高源代码的可读性,方便编程。常见的格式:#define标识符字符串其中“标识符”是指:宏定义的宏名“字符串”可以是常数、表达式、格式串等例:#definePLL_M8定义PLL_M的值为8ifdef条件编译单片机程序开发过程中,经常会遇到一些情况:当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。条件编译命令的常见形式:#ifd
您可能关注的文档
- ARM微控制器与嵌入式系统 课件 11 STM32F4xx微控制器库函数开发-工程模板的建立 ---20 通信的基本概念.ppt
- ARM微控制器与嵌入式系统 课件 21 串口通信协议 ---30 定时器输出PWM编程要点.ppt
- ARM微控制器与嵌入式系统 课件 31 定时器输出PWM编程实验 --- 41 如何在UCOS III上实现LED灯闪烁.ppt
- ARM微控制器与嵌入式系统 课件全套 景妮琴 1 课程概览 --- 41 如何在UCOS III上实现LED灯闪烁.ppt
- 分房协议书8篇.docx
- 医院HRP系统建设方案.docx
- 出租市区门面房合同书6篇.docx
- 中医养生宫颈其它疾病保健.pptx
- 《多张式电路图设计》课件.ppt
- 《多带激励声码器》课件.ppt
文档评论(0)