在stm32中关于c方面的技术应该不是很强吗,更多的是注重功能的实现吧,作为一个没开发过大产品的小白,该怎么做可以很方便的开发相对复杂的东西,怎么样可以调理清晰,是不是实现之前就要有一个完整的框架,这方面该怎么提升
我意思是纯搞软件不涉及电子的那种,可能对编程技巧要求比较高吧,但是写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开发板的。除非智商比较高的人才自己就可以快速的摸索出来。