首页 > 编程知识 正文

大一c语言基础知识大全,c语言基础知识题库

时间:2023-05-05 06:46:59 阅读:152526 作者:1451

最近在学习stm32f1,作为初学者,我想我会记录下每天的学习内容,在强化记忆的同时也起到笔记本的作用。

首先为了掌握C语言的基础知识,C语言会简单复习其中的一些知识点,引导用户快速开发STM32程序。 同时,需要多复习c语言的基础知识。 C语言毕竟是单片机开发中的必备基础知识。 非常重要。 自己在c语言的基础部分还有待提高。 C语言位操作基本型变量为位级别操作基本位操作符运算符语义运算符含义|按位或《左移按位与》右移^位异或~反单片机开发中的实用技巧1.333331 方法是首先对于需要设定的位使用3358。例如,为了改变GPIOA的状态,首先清除寄存器的值并操作GPIOA-CRL=0XFFFFFF0F; //4-7将第7位清零后,输入要设定的值和|或运算GPIOA-CRL|=0X00000040; //设定相应位的值,不改变其他位的值不改变其他位的值的状况下,对某几个位进行设值。

Gpiox-bsrr=() (uint32_t )0x01 ) pinpos ); 有与将BSRR寄存器的pinpos位设为1类似的东西

GPIOA-ODR|=15; //PA.5表示高输出,不改变其他位,第5位即第6端口,1表示操作符进行清零操作SR寄存器的各位表示一个状态。 在某个时刻,我想把某个位的值设定为0,其他位保持为1,简单的方法是直接在寄存器中设定值

的壮实笔x-SR=0xFFF7; //7(h )作为二进制写的话是0111,所以他的第三位是0,但是官方代码不这样用。 以下是官方例行程序

的壮实笔x-Sr=(uint16_t ) ~壮实笔_FLAG和壮实笔_FLAG是宏定义的值。

#define壮实笔_FLAG_Update((uint16_t )0x0001 ) /壮实笔_flag_update是设置中的第0位。 #define强壮的钢笔_FLAG_cc1 ) ) ) defint16 )强壮的钢笔

5. |操作符设值

define是c语言的预处理命令,用于宏定义中以提高源代码的可读性

常规格式: #define标识符字符串“标识符”是定义的宏名称。 “字符串”有常数、公式、格式字符串等。 例如,# define sysclk_freq_72mHz 72000000定义标识符sysclk _ freq _ 72m Hz的值为72000000。

2.移位提高代码的可读性

条件编译命令的最常见格式是

#ifdef标识符段1 #else段2 #endif如果标识符已经定义(通常为#define命令定义),则其用于编译段1,反之亦然其中,#else的部分也可以没有

3,~取反操作使用技巧

extern可以位于变量或函数之前,指示变量或函数的定义位于另一个文件中,并在编译器遇到变量和函数时提示其在另一个模块中查找该定义

extern u16 USART_RX_STA; 如果在此处声明u16 USART_RX_STA,则会在其他代码段中找到u16 USART_RX_STA中定义的语句

8. define宏定义

typedef用于为现有类型创建新名称或类型别名,以简化变量的定义。 typedef在MDK中使用最多的是定义结构体的类型别名和枚举类型

struct_GPIO{__IO uint32_t CRL; __IO uint32_t CRH; ……;

typedef struct{__IO uint32_t CRL; __IO uint32_t CRH; } GPIO_TypeDef; Typedef定义结构的别名GPIO_TypeDef。 这允许您使用GPIO_TypeDef定义结构变量。

GPIO_TypeDef_GPIOA,_GPIOB; 这里的GPIO_TypeDef与struct _GPIO起到同等的作用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。