用c语言开发stm32和开发其他东西感觉不太一样吧

在stm32中关于c方面的技术应该不是很强吗,更多的是注重功能的实现吧,作为一个没开发过大产品的小白,该怎么做可以很方便的开发相对复杂的东西,怎么样可以调理清晰,是不是实现之前就要有一个完整的框架,这方面该怎么提升

首先得要看你做的东西有多复杂,所写的代码能有多大。
“人有多大力就办多大事”,STM32的功能远比51、AVR之类的单片机要强大得多,相对来说开发的产品功能比较大,代码也会比较复杂。

首先有完整的框架是非常必须的,我个人认为这里的框架有两层,一个是在STM32上移植现有的操作系统或者一些稳定的代码框架,另外一个是自己的编程风格。

你想很方便的开发相对复杂的东西,建议你首先在STM32上移植一个小型操作系统或一种框架,然后在操作系统之上编写你自己的应用去开发产品。在没有操作系统或框架的情况下开发是非常麻烦的事情。要做到条理清晰的话,那就应该去迎合操作系统或框架的风格去编写代码,这答案并不唯一。 举个简单例子,现在比较热门的STM32F103或STM32F407开发产品,一般会移植一个ucosii或rt-thread操作系统(当然也有移植linux或android的,但我个人很少见),ucosii我没实际开发过我就不说了,像rt-thread这样的实时操作系统,它具有多任务编程,那么我们就需要迎合它的特点,比如我串口作为一个线程,LCD、LED扫描作为一个线程,数据采集作为一个线程,键盘扫描作为一个线程等等,在他们的线程中只各自做自己的事情,然后在增加一个顶层的线程专门来负责处理其他线程所产生的消息事件(或者给其他各线程发送消息事件),顶层的线程是作为一个中心处理线程来合理安排和处理其他各个线程的消息事件。
至于在这方面的提升,只能是通过实践来达到效果,这里的“实践”不是说要完全自己去摸索,你需要有东西来借鉴,因为现在一些操作系统、或框架、或编程风格都是比较成熟,你直接拿来看,看看别人是怎么写的代码,然后自己再去仿照着能不能写的出来,再分析里面的优缺点。你要是还在学校且资源有限,建议你可以花个几百块钱上淘宝买一个开发板,一般的开发板都有各个外设的实验,以及综合实验,或许还会有操作系统或框架的移植和使用。追问

我意思是纯搞软件不涉及电子的那种,可能对编程技巧要求比较高吧,但是写stm32这样的对c语言技术没这么高要求把,我c 不是很好,现在主要搞stm32,但是看公司之前的程序比较庞大,设计到很多c的内容我都没接触过(比如结构体指针),关于stm32中的结构体指针,我们使用的话都是直接用的,这边要自己写这样的函数,就有点头大了

追答

你目前搞STM32,你只想搞纯软件?搞纯软件那应该是建立在某种平台或者是操作系统之上,你用的STM32是什么型号?写STM32F1xx、STM32F2xx、STM32F3xx这些芯片的代码还没有达到只让你写代码的程度,必须得结合电子的一些东西才能看得懂。
比如你上面说的结构体指针,像STM32F系列的固件库中定义很多结构体指针,而且这些指针都是指向固定的绝对地址,在标准的C语言中这是非法的,但是这种做法在写STM32的代码的情况下却是可以的,其中的原因得要结合STM32芯片的资料去分析才能明白。
如果你连C语言的结构体这块都没有弄懂,那真的很有必要去学C语言结构体,或者两者都同时去学。否则这些代码你根本会看不懂。
你现在具体是哪些东西不明白!

追问

我是一个电工,做项目主要使用stm32f103,c不是很好,但是在stm32上写程序对c的技巧要求不是很高吧,现在的问题就是做一个稍微大一点的项目不知道从什么地方入手,软件不知道该从哪里开始写,希望给点指点,谢谢

追答

你应该是用固件库开发的吧?反正对C语言知识的需求就那么点,至于对C技巧的要求看项目的需要来定。如果你的芯片Flash和SRAM的容量小且要求执行速度要快那肯定需要C语言编程技巧要高,反之就无所谓了。
你想“做稍微大一点的项目”?我是不是可以这么理解:“你已经会使用STM32这块芯片,开发项目需要用到的外设你都会编程控制”。如果你还不是很熟练的使用这块芯片,那建议先去做各个外设的实验,等把芯片摸透了再说。
如果你已经熟练的使用这块芯片,然后你想“做稍微大一点的项目”,你既然是在公司里面,你先看看你们公司谁以前用过STM32开发过大的项目,然后借鉴过来看,直接借鉴这是最直接也是最快的方法。如果没有的,这一切都要靠你自己摸索,那你可以尝试下面的方法。

像代码容量很长很大的情况下就需要有一定的编程技巧,绝大多数情况下要先移植一个框架或操作系统,然后再框架或操作系统之上去写应用代码,这会方便得很多。建议你可以从rt-thread入手,rt-thread是一款国产开源实时操作系统,可以直接移植到STM32F103之上,你可以去试着把它移植到你的芯片之上,而且里面还会有一些简单的例子,希望你能有一个很好的借鉴。

光讲理论好像也没多大用处,我认为真的是需要有东西来借鉴,要不然淘宝上也不会有很多卖STM32开发板的。除非智商比较高的人才自己就可以快速的摸索出来。

温馨提示:答案为网友推荐,仅供参考
相似回答