【BSP技能手册】-【C语言基础】

2 篇文章 0 订阅
本文介绍了MCU开发所需的C语言基础知识,包括基本数据类型、标识符与关键字、变量与常量、运算符以及控制语句。强调了C语言在MCU编程中的重要性,并提供了MCU代码的基本结构,如C51和STM32的框架。文章适合初学者,旨在通过实际项目提升C语言技能。
摘要由CSDN通过智能技术生成


前言

导言所述,【C语言】是必须精通的技能之一,精通是在开发中不断磨练和练习。常规【C语言】练习方法如下。

  • 笔试刷题
  • 编程程题

本手册提供一个【C语言】学习新思路供读者参考——以【MCU开发】项目为导向,在每个案例中穿插【C语言】知识点。此篇内容是用以达到【MCU开发】的最低C语言标准,请务必精读。


一、C语言基础

1.基本数据类型

C语言中数据在计算机中存放情况由数据类型决定。数据类型可分为基本数据类型和复杂数据类型,复杂数据类型由基本数据类型构造而成。C语言中基本数据类型如下表所示:

数据类型

2.标识符与关键字

  • 标识符
    标识符是C程序的最基本组成部分,例如:变量名称、函数名称等等,都是一个标识符。标识符的要求是:必须由字母(区分大小写)、数字、下划线组成。而且,标识符的第一个字符不可以是数字。例如:
abc <--------------------->   合法
_abc123 <----------------- >  合法
abc555  <----------------- >  合法
123abc  < ---------------- >  非法
abc$!!  < ---------------- >  非法
  • 关键字
    我们学习了C语言提供的“基本数据类型”,例如char、int这样的数据类型,我们可以使用这个数据类型来定义一个变量,例如:
char c = 'A';

此时,定义了一个字符型变量,变量的名称是c

3.变量与常量

  • 常量
    常量有称为标量,它的值在程序执行过程中不能改变。
  • 变量
    变量是在程序执行过程中其值能不断变化的量。在使用一个变量之前必须进行定义,用一个标识符作为变量名,并指出它的数据类型。
    注意:C语言中每条语句必须用分号结束。
    常用定义格式如下:

数据类型 变量名;

例如:

unsigned char a;
unsigned char b;
a=5; b=2;
b=5+a;        (其中5是常量,a与b都是变量,b最终的值等于10)

4.常用运算符

  • 赋值运算符
    赋值运算符“=”,赋值运算符的作用是将一个数据的值赋值给一个变量。例如:
a=9; 	//将常数9赋给变量a
a=b=8;	//将常数8同时赋给变量a和b
  • 算术运算符

‘+’ 加运算符
‘- ’ 减运算符
‘* ’ 乘运算符
‘/ ’ 除运算符
‘% ’取余运算符

对于加、减和乘法符合一般算术运算规则。除法运算有所不同,如果两个整数相除,其结果为整数,舍去小数部分,例如:5/3的结果为1。取余运算要求两个运算对象均为整数,例如:7%4的结果为3。

  • 增量和减量运算符

‘++’ 增量运算符
‘- -’ 减量运算符

它们的作用分别是对运算对象做加1和减1运算。例如:i=5; i++;执行完后i的值为6,i=5; i–; 执行完后i的值为4;

  • 位运算符

‘ ~ ’ 按位取反
‘<<’左移
‘>> ’右移
‘&’ 按位与
‘^’ 按位异或
‘| ’按位或
位运算
位运算

  • 关系运算符

‘> ’大于
‘<’小于
‘>= ’ 大于等于
‘<= ’ 小于等于
‘==’ 等于
‘!= ’ 不等于

关系运算符通常用来判断某个条件是否成立,运算结果只有0和1两种值。当所指定的条件成立时结果为1,条件不满足时结果为0。
例1:

a=5; b=6; c= a>b;执行完成后c的值为0,因为a不大于b,条件不成立。

例2:

a=5; b=6; c= a<=b;执行完成后c的值为1,虽然a不等于b但是a小于b,条件成立。

5.常用的控制语句

  • 条件语句
设a=5,b=9, c=0;
(1if(a>c)
		{c=a+b;}

当if后面的圆括号内表达式结果为真(非0)则执行花括号内语句,否则执行花括号内语句。

2if(a>b)
		{a=0;}
     else
		{a++;}

只有当if后面表达式结果为假时才会执行elsa后面的花括号。

  • 循环语句
 while(条件表达式) {语句}

只有当while后面圆括号内条件表达式的值为真时,程序才会重复执行花括号内语句,当条件表达式为假时则不执行花括号内语句。

for[初值设定表达式];[循环条件表达式];[更新表达式]{语句}
例:for(i=1; i<=100; i++)
		{语句}

花括号内语句会被执行100次后才退出。

  • 开关语句
    开关语句可以实现多方向条件分枝的语句。开关语句处理多分枝选择优点是程序结构清晰,使用方便。开关语句使用的关键字switch,它的一般格式如下:
switch (表达式)
{
	case 常量表达式1: 语句1
				 breakcase 常量表达式2: 语句2
				 break.
.
.
}

开关语句执行的过程是:将switch后面的表达式的值与case后面的各个常量表达式的值逐个进行比较,在遇到匹配时,就执行case后面相应的语句然后执行break返回。

6.MCU代码基本结构

  • C51基本结构
 #include <reg52.h> 		//包含51单片机头文件

void main()		//主函数
{
	//此处写业务代码
	
	while(1)//这个whiles是一个死循环,防止程序跑飞
	{
	//此处写业务代码
	}		
}

C语言设置的程序中只允许有一个main函数。程序总是从main函数开始运行的,main函数是void型(无返回值)。

  • arm系列(stm32)基本结构
    待更新

总结

本节内容较为枯燥,先看,看完做项目,项目中遇到不理解的再回来翻。


祝诸位前程似锦,顺利从事自己喜爱的行业。如果觉得此文有收获,请帮忙点击左下角的赞,你的支持是我继续产出文章的动力,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值