STM32与80C51

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32与80C51相关的知识,希望对你有一定的参考价值。

最近我想做一个寻轨车,想问下芯片是选80C51好还是STM32,STM32貌似强大点,但是对一个只需要寻轨的车来说和80C51相比效率会高点吗??请大神推荐下

要视你的功能而定。
STM32自带PWM发生器可用于变速控制,12位ADC可用于一些传感器的采集、72M主频和20k以上RAM方便进行一些算法分析,比如PID、细分算法、DSP之类。部分带DAC这些是小车常用的一些功能。
8051主要是简单,如果功能简单8051基本能够胜任。追问

我比较熟悉单片机,现在STM32也还在熟悉阶段,其实实现功能很简单,就是红外模块然后黑线寻轨。我只是想知道是不是STM32会比单片机更加方便或者反应速度这些更加快捷。这样子车的速度会不会更快???

追答

建议你还是用51吧。

参考技术A STM32,可以支持arduino,可以省很多事 参考技术B 回答

80c51是属于MSC-51系列单片机的,具有16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源(定时器中断和串口中断),内有128Byte的RAM单元及4k的ROM。可以说是麻雀虽小五脏俱全!而stm32是专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM的多款内核的总称。如stm32f103为例,内核具有cortex-m3的cpu,工作频率高,内存大,而且可以扩展;同时具有3种低功耗模式,两种调试模式和12个通道的DMA控制器、3个12位的AD转换器、2通道12位DA转换器,高达112个的快速IO端口,多达11个定时器和13个通信接口。可谓是功能强大到令人颤抖!如何选择?因为考虑到项目成本、稳定性和后期维护的难易度,选择哪款芯片还是得从实际发出的!那么什么时候我可以选择51呢?在小款的电子产品和功能性单一、资金和后期功能升级有限的情况下是可以放心使用的,如电子剃须刀,洗衣机和电动牙刷等。32相对来说是比较高级的应用了,因为具有众多功能的辅助,使其可以作用在高端的嵌入式产品中,如自动销售机,取票终端器等。而且对于在工业需要长期运行的来说,32也是比较好的选择,毕竟人家本身就是具有低功耗的能力嘛!

总的来说,32的使用面广,51的量产优势大!对于这个问题其实外行回答,就会说哪个贵哪个好,其实这种解释也不无道理~首先51是八位的,而32是32位,无论从ROM,RAM以及外设和主频的角度,32都完胜51,但是51价格便宜,如果对于产品开发要求功能不多,性能没啥要求,首选51,但是对于性能和外设要求,那就得选32,这两个都是单片机,开发起来容易~目前我从事工控产品开发工作,部门的大部分产品基本上都是32开发的

参考技术C 我觉得这个不用单片机跟简单吧。。 参考技术D 标记一下

eclipse编写STM32与Jlink调试

 

 

eclipse 可以编写单片机代码,替代收费的mdk与iar。

一、下载eclipse

  eclipse有多个版本,我们需要的是C/C++版本的,可以选择下载其他版本,然后后期添加CDT插件,为了省事,我们直接选择下载CDT版本的,下载链接  http://www.eclipse.org/downloads/eclipse-packages/  

技术分享图片

 

 

二、下载JRE

  下载完成后,解压后先不忙打开,也打不开的。需要先下载java运行库,要下载jse。可以下载jdk,或者jre,我们不需要开发java,所以只需要下载jre,具体区别,jre是 java run environment,JDK里面有很多用Java所编写的开发工具,我们也用不到。

挂上下载链接 http://www.oracle.com/technetwork/java/javase/downloads/index.html

技术分享图片

 点进去后,选择下载

技术分享图片

安装完成,eclipse就可以打开了,如果还是不能打开,那么将jre的bin目录添加到系统环境变量就好,添加环境变量方法就不介绍了。

 

三、更改eclipse插件下载源

我们下面需要下载插件,国外的网址下载插件比较慢,这里我们更换下载源,改为国内的镜像地址,具体方法,见网上的一份教程

https://www.cnblogs.com/yangwen0228/p/6309463.html

一定要注意,替换的时候,不是全选替换所有,只是替换那些链接中,开头的http://download.eclipse.org/ 。

 

 四、安装GNU ARM Eclipse插件

打开eclipse,Help->Install New Software...->Add,在Location输入网址http://gnuarmeclipse.sourceforge.net/updates,name输入GNU ARM

pending出来的全选安装,安装过程可能提示有安全警告,依旧安装,安装完成后提示重启,重启后完成插件安装。

 

五、安装编译器

编译器需要手动下载安装,下载链接

https://launchpad.net/gcc-arm-embedded/+download

技术分享图片

 

安装最后一步,记得勾选添加到环境变量技术分享图片

如果忘记了,那么就手动添加一下。

 

六、安装make等工具

编译时,需要make、echo等工具,此时需要下载这些工具,从https://github.com/gnu-mcu-eclipse/windows-build-tools/releases,这个是GitHub上的,防止以后可能失效,再增加一个入口,http://www.emb4fun.de/archive/gabmt/index.html。

安装完成后,找到安装目录,添加bin路径到系统的环境变量,比如我的就是D:\\GNU MCU Eclipse\\Build Tools\\2.9-20170629-1013\\bin\\bin

安装完成就可以创建工程了。

 

七、创建工程

File->New->Project->C/C++->C project

技术分享图片

 

 一路next就可以了。

技术分享图片

单击这个图标,就可以看到代码edit页面了。

 

 八、编译

以上全部正确,就可以点击该图标编译了。技术分享图片

编译完成

技术分享图片

 

 九、jlink调试设置

1.安装jlink包,例如Setup_JLinkARM_V486a,安装完成,重启eclipse,然后就可以在windows->preference->run/debug->jlink中看到

技术分享图片

 

2.设定device pack包路径

注意,这个设定就是从网上下芯片的package包,下载完,就不好改了。如果有以前下载好的,直接选择该目录,然后重启eclipse,直接到下一步。

技术分享图片

 

3.下载device pack包

点击这个图标,

 技术分享图片

 技术分享图片

点击完后,会出来pack窗口,点击刷新,从网上更新芯片目录,然后选择目录,点击下载,(按钮就在刷新左边)

这个过程比较慢,需要耐心等待,网络不好还会失败,没办法。

目录文件是.pdsc格式,下载好的pack是.pack格式,keil里面也有相似的,不清楚直接拷贝过去行不行。附上弄好的图

技术分享图片

 

 

4.设定芯片

新建的工程虽然可以编译,但是想要调试,需要设定芯片,右键工程按钮,然后选择properties,选择芯片,如图

技术分享图片

 

 5.debug配置

点击run->debug configgurations ,双击jlink debugging

技术分享图片

 

技术分享图片

其中,默认的配置里面,有几个参数,并没有办法识别,如果放任的话,也一样可以调试,如果不想报错,去掉那几个参数,(-strict -timeout 0 -nogui)去掉

技术分享图片

 

 

不需要进行配置,链接好stm32板子,直接点击debug,就可以进行debug调试,

技术分享图片

 

以上就是所有的步骤

 

 

参考资料:

http://blog.csdn.net/k331922164/article/details/44837487

https://www.cnblogs.com/chihirosan/p/5258946.html

http://blog.csdn.net/neutree/article/details/50551919

以上是关于STM32与80C51的主要内容,如果未能解决你的问题,请参考以下文章

STM32F030系列实现仿位带操作

串口的校验位(STM32 C51)

STM32 103系列只有100个引脚 为啥书上说:有7个I/O口 每个i/o口有16个引脚

自用纯C语言实现任务调度(可用于STM32C51等单片机)

stm32单片机按键检测io口应该怎么设置

即将会来日常更新stm32的学习过程