C语言很差, 学STM32会不会很难, 这也许是你的方法不对

日期:2019-10-09 20:25:32   来源:互联网   编辑:小优   阅读人数:989

C语言很差, 学STM32会不会很难, 这也许是你的方法不对(图1)

这篇文章是紧接着上一篇的后续。

疑问二、我C语言那么差学起来会不会很难?

很多人都觉得,我的C语言那么烂,学STM32会不会很难。曾经的我也有这样的想法,那是因为还没真正的了解STM32的软件编程。

用于STM32编程的语言有三种分别是汇编,C语言和C++。其实每一个STM32程序项目都使用了汇编,STM32的配置文件就是使用汇编语言编写的,但是平时我们做的时候一般不用去管他,平时使用最多得的还是C语言,C++的也有但很少人用。STM32的方式也是有三种分别是寄存器方式,库函数方式和寄存器库函数混合方式。8051的单片机就是以寄存器的方式来编程的。而STM32其实也都是以寄存器的方式来编程的,但是STM32芯片内有几百个寄存器,如果以这种方式来的话,每次都要找资料查看每一个寄存器的配置方法。这样的话效率就慢了许多,所以就有了库函数的方式。什么是库函数?先解释什么是函数吧,函数也是C语言的一个知识点,当初我在学C语言的时候,一开始我也不知道什么是函数,也许是老师没说清楚,所以不理解,如果理解了就知道C语言中的函数也不过如此。下面举几个例子就明白了。比如说现在有两个未知数x1和x2我要把两个数相乘再加10。用数学表达就是:x1*x2+10=结果

不用函数的写法:

Void main(void)

//先定义一个变量,用来保存计算结果

Int n=0。

n=x1*x2+10。

用函数的写法:

先定义一个函数,函数的作用是要计算两个未知数。得到结果。那么就要函数返回一个数。

函数为:

int jisuan(int x,inty)

return x1*x2+10。

//主函数,就是程序运行的开始。

void main(void )

Int n=0; //定义一个变量用来保存结果

n=jisuan(x1,x2) //这是函数的调用,这样就得到结果了。

用函数的好处就是,我不需要知道你里面的计算过程,我只要知道我把值放进去就可以得到我需要的结果了。

在C语言中经常会用到printf;函数,这个函数的作用就是可以把我们想要知道的东西输出又或者叫打印。你知道怎么去用这个函数,但是你不用知道它里面做了什么事情,就是这个道理。

回到之前哪里,所谓的库函数就是把配置不同的寄存器的过程代码用函数包装起来,把这些函数整理到一个文件里面就成了库。就叫库函数。

以这种方式,虽然看起来代码很多,但是很多东西都是有固定的一些参数,并不需要我们自己去想。给一个STM32引脚配置的例子就知道了:

void LED_Init(void)//这是一个函数,作用是把STM32使用到的引脚配置的代码段包装起来。

//这是一个声明,跟其他的哪些变量声明是一样的。

GPIO_InitTypeDef GPIO_InitStructure。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOARCC_APB2Periph_GPIOD, ENABLE)//使能PA,PD端口时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0--PA.8 端口配置

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz

GPIO_Init(GPIOA,GPIO_InitStructure) //根据设定参数初始化

GPIO_SetBits(GPIOA,GPIO_Pin_8) //PA.8 输出高

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED1--PD.2 端口配置, 推挽输出

GPIO_Init(GPIOD,GPIO_InitStructure) //推挽输出 ,IO口速度为50MHz

GPIO_SetBits(GPIOD,GPIO_Pin_2) //PD.2 输出高

上面这段代码的内容都不用自己写,把其他地方的复制过来把参数更改一下就可以了。下面这段代码就是整个实验的运行代码:

int main(void)

delay_init; //延时函数初始化,就是一些配置的代码段。

LED_Init; //这个就是上面的那个函数,在这里使用,高大上的叫法叫函数的调用,代码运行到这里的话就会跑到上面哪里运行哪些代码段

while(1)

LED0=0。

LED1=1。

delay_ms(300) //延时300ms

LED0=1。

LED1=0。

delay_ms(300)//延时300ms

所以说真正自己要写的其实很少。不要被他的外观所欺骗了,以为C语言差很难学。

我觉得知道以下几个C语言的知识点就可以完成基础的STM32的实验:

要知道C语言执行的开端。所有的C语言程序都包含main函数(什么是函数待会再解释)无论多么复杂的程序都是从main函数开始执行。所以我们在看一段代码的时候可以先从main函数开始一步一步往下看,就知道它走的每一步都做了什么事情。

要知道C语言量意思。无非就是常量跟变量,而常用的变量就是整型(int)字符型(char)浮点型(float)这几个。其实知道有这个东西就可以了,多用几遍记住了。

C语言在于理解,不在于死记硬背。学好C语言就像玩一个闯关游戏,你首先要先了解一下规则,就尽情的闯关,一开始输了,没关系,从新再来,因为你有无数次复活的机会。

学好STM32也是在于理解,理解别人怎么使用哪些库函数。要理解配置的完整流程。很多的STM32都不是闭卷考试,所以都是可以相互参考,相互复制。

本文相关词条概念解析:

C语言

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSIC,作为C语言最初的标准。C语言之所以命名为C,是因为C语言源自KenThompson发明的B语言,而B语言则源自BCPL语言。

网友评论
一乐乐乐乐
该方式可以实现在线调试,提高了查找问题的效率
2020-06-01 05:36 83
易丢失的小
c语言的程序怎么烧进stm32里?
2020-05-31 12:35 14
博罗九姨太
这种烧录方式可以通过JLINK、STLINK等工具实现
2020-06-05 03:53 702
压力下的喜
女生一枚,理科很差,学电子信息专业真的很难吗?
2020-05-30 09:27 635
wxshu_1980
Minecraft为什么画质看起来很差?
2020-05-30 06:00 11
非飞鱼11
计算机、通信工程、电子科学与技术、控制科学等专业的课程都要学
2020-06-06 03:57 59
一三五七九f
TCK,TMS,TDI,TDO等,另外两根线是TRST和RESET
2020-05-31 19:47 839
我是泡泡啊
如果按照传统的就业优势而言,或许女孩更适合学习经济类、艺术类、语言类、医药护理类、管理类、法学类等专业
2020-06-01 04:05 757
爱上她的他
这对你的学习和就业恐怕没有什么好处吧
2020-06-02 13:20 811
相关阅读
英欧未来关系第四轮谈判仍未能打破僵局

英欧未来关系第四轮谈判仍未能打破僵局

伦敦6月5日电(记者桂涛 李骥志)英国方面首席谈判代表戴维·

但许多观众还是很喜欢她,可结婚生子之后,近些年更是没有什么作品

但许多观众还是很喜欢她,可结婚生子之后,近些年更是没有什么作品

大宅门是一部非常经典的电视剧,在当时特别火热,就算是现在盘点

郑少秋之后迎娶官晶华,一是秋官越来越红,说的最多的是他背叛沈殿霞

郑少秋之后迎娶官晶华,一是秋官越来越红,说的最多的是他背叛沈殿霞

从来提起郑少秋,除了他扮演过得那些经典角色之外,说的最多的是

现在明星的才艺越来越多,迪丽热巴做扎染,王俊凯和易烊千玺都是TFBOYS的成员

现在明星的才艺越来越多,迪丽热巴做扎染,王俊凯和易烊千玺都是TFBOYS的成员

很多的明星,不仅唱跳俱佳,而且多才多艺。一些普通的才艺已经不

丝毫不像是一个14岁女孩,涂着烈焰红唇,镜头前的她又酷又飒

丝毫不像是一个14岁女孩,涂着烈焰红唇,镜头前的她又酷又飒

王菲女儿李嫣在个人社交平台上更新了一组美照,当天她坐在车中,

有种耍帅叫热巴骑摩托车,热巴站起来的时候,后面小哥也心动了

有种耍帅叫热巴骑摩托车,热巴站起来的时候,后面小哥也心动了

迪丽热巴大长腿一扫就下来了,这个姿势十分帅气,当时她穿的衣服

江苏卫视作为最早官宣618晚会的电视台,四字姐弟另类合体,高人气的王一博没有出现在名单中

江苏卫视作为最早官宣618晚会的电视台,四字姐弟另类合体,高人气的王一博没有出现在名单中

还有借助《传闻中的陈芊芊》大火的赵露思也在其中,她可爱灵动的

疑似是因番位之争,据爆料来看是官宣的一张海报就是罪魁祸首

疑似是因番位之争,据爆料来看是官宣的一张海报就是罪魁祸首

最近,电视剧《青簪行》剧组又被传出幺蛾子了,网曝该剧的剧组已

李小璐疑似去外出去找吃的,但最终还是被两男子带走

李小璐疑似去外出去找吃的,但最终还是被两男子带走

近日,有媒体拍到李小璐与和一众好友一同进入某大厦,直到凌晨三

璩美凤这段长达47分钟的不雅视频,1000张碟3小时售空,称,身材好,她还喜笑颜开的打趣表示不惧儿子看光盘

璩美凤这段长达47分钟的不雅视频,1000张碟3小时售空,称,身材好,她还喜笑颜开的打趣表示不惧儿子看光盘

在如今网络发展迅猛的时代,大数据时代让我们身处在安全空间。同