问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

STC单片机的c代码可以移植到stm32上吗,要不要做什么修改?

发布网友 发布时间:2022-05-04 11:14

我来回答

4个回答

热心网友 时间:2022-06-21 10:04

换芯片,改电路,底层肯定要重写的。
写程序有个好习惯还是很重要的。下面说一下移植方面的习惯,
提高移植性,最重要的手段就是隐藏硬件实现的细节,把逻辑与底层分开。
举个例子,LED闪一下亮一下,P1_0 = 0; 在51上就是一句话的事。就这一句,就有三个地方涉及硬件,(1)硬件上是P1.0接LED,(2)硬件上低电平亮,相应的是高电平灭,(3)硬件是用的51,用了51独有的位操作。
换个电路,或者换个芯片,这些都要重新改写。假设程序里面有十个地方需要亮灯,移植时就要改十个地方。把亮灯这件事定义成一个函数,或者叫方法,或者叫操作,把具体的操作细节隐藏起来,只表示出做了一件什么事情--亮灯。像这样,void LED_ON( void );在主程序里面,或者说在应用层的程序中调用LED_ON();就是亮灯,具体怎么亮灯,应用程序不管,也不能管,而是由单独的底层程序来做,也就是LED_ON这个函数的内容,是放在单独的一个文件中。用51,就写一个51下的底层,要移植,要用CM3就写一个CM3的底层,主程序可以不用改动,至少是尽量少改动。
为了提高移植性,尽量用标准的C写代码,涉及不同编译系统的实现细节,也要注意隐藏细节,前面的硬件细节,这个算是软件的细节吧。
比如sfr, sbit,interrupt这些,都是51独有的,换到不同的系统上,都需要重写。处理办法也是一样的,隐藏起来,放到单独的底层文件中。
基本上,做到这两步,程序的移植性会提高很多。
再举个小例子吧:

// app.c
#include "bsp.h" // 注意这里不要包含硬件有关的头文件,比如"reg51.h",不要包含在这里。
void main( void )
{
while(1)
{
if ( hasKey())
{
led_on();
delay(100);
led_off();
}
}

// bsp.h
typedef unsigned short uint16_t;
typedef bit bool;
void led_on( void );
void led_off( void );
void delay( uint16_t ms );
bool hasKey( void );
// bsp_for_51.c
#include "bsp.h"
#include "reg51.h"
sbit led = P1^0;
#define ON (0)
void led_on( void )
{
led = ON;
}

void led_off( void )
{
led = !ON;
}

void delay( uint16_t ms )
{
int i;
while( ms-- )
for( i=0; i<100; i++);
}
bool hasKey( void )
{
return ( P0 != 0xFF); // 测试是否有按键?
}

这个是51的系统,换成STM32,简单重写一下bsp.c,不需要改app.c,系统就可以移植过来。

热心网友 时间:2022-06-21 10:04

除了算法,所有涉及到硬件的地方都得修改,延时、IO控制、定时器、串口、AD、EEPROM……也和重写差不多了

热心网友 时间:2022-06-21 10:05

移植可以,要看代码质量,要修改的地方多!

热心网友 时间:2022-06-21 10:05

不可以,不是修改那么简单的了,基本重写。
STC单片机的c代码可以移植到stm32上吗,要不要做什么修改?

这个是51的系统,换成STM32,简单重写一下bsp.c,不需要改app.c,系统就可以移植过来。

STC单片机的c代码可以移植到stm32上吗,要不要做什么修改?

与硬件相关的部分代码肯定需要修改,计算部分当然不用修改了。

STC12C5A60S2单片机程序怎么移植到STM32-STM32-F3/F4/F7专区

需要更改的地方就是操作底层寄存器部分,这些需要全部重写,还有中断函数以及你是否会用到AD转换、IIC、串口等外设,用到的话也同样需要更改,唯一不用改的就是逻辑部分的代码!

STC12C5A60S2单片机程序怎么移植到STM32-STM32-F3/F4/F7专区

两个MCU相差很大,汇编程序的话无法移植,C语言的话,将硬件相关做相应的修改后可以移植。

我学了stc单片机后我可以直接就换个stm32单片机可以吗。难度怎样?学习...

可以,stm32流行库开发。启动代码需要注意,STM32的时间系统要掌握好,代码确实没错误,但是系统不 工作,可能就是启动代码设置错误了。STM官网很多资源,直接用他官方的Demo开发即可。话说不在电子工程师世界、21ic等论坛逛,而在百度知道求助?

怎么学习嵌入式STM32

1、首先选择菜单栏上面的project的按钮,在弹出的右键菜单中点击new uVision Project...的选项。2、需要为即将创建的项目命名,最好新建一个文件夹来保存项目文件。3、一般使用STC的单片机比较多,这里选择STC MCU Database然后搜索单片机的名字,再点击选中就可以了。4、这里提示,是否加入启动文件,这里...

我模仿STM32做了个STC51单片机的程序,为什么一运行就有问题?

假如你要修改1,2,3引脚,那么,除了1,2,3引脚可以得到正确的配置外,其他的引脚,本来不需要动的,也可能被你修改了,导致你的程序出错。第二,不知道你是不是用的大内存容量模式,就是默认把变量放到xdata里,如果是那样的话,你在声明IO结构体类型的变量的时候,要注明,是data类型的,51不...

stm32f407和stc12c5a60s2的区别

外设要更加全面,主频最高150MHz。从性能上来说,这俩没法比,可以认为一个是冲锋枪另一个是烧火棍。你是想学STM32系列的MCU吗?如果是想从STC系列的8位单片机进阶STM32的话,建议先仔细学习一些C语言的结构体,联合体,指针和预处理命令,否则如果基础不好的话,学起来和容易崩溃的。

stm32用什么软件编程

2. STM32Cube:STM32Cube是ST公司提供的一个开发平台,它结合了软件和硬件的配置工具。这个工具允许用户图形化地配置STM32的引脚、外设和片上资源,但它不直接生成代码,而是生成固件包,这些固件包可以在Keil MDK等IDE中使用。3. Altium Designer:Altium Designer是一款专业的电子设计自动化(EDA)软件...

stm32可以用什么软件编程?

2、STM32Cube STM32Cube是一款图形配置软件,能够查看每个单片机的引脚情况、复用功能情况、片上资源,功能很清晰。缺点是不能支持代码生成。STM32Cube可以说专门为STM32而生,新增了很多STM32专用功能,比如说外设图形化配置。3、Altium Designer Altium Designer是一款原理图和PCB设计软件,我们能够根据自...

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
excel怎么导出数据 怎样才能把iphone开机的数据弄出来。 如何把已有数据库的数据导出来呢? 瑞的意思和含义瑞的解释 怎么在ipad上下载微信旧版本 薄膜包装材料 中化近代环保化工(西安)有限公司 怎么样,我是大专生,看到他们在招氟化工... 楼炳文简历 如何挑选尼龙材质的书包? 毛竹笋怎么保存新鲜 毛竹笋如何保存 STC15F408与32的区别 单片机stc89c52rc与stm32f103zet6兼容吗? T12焊台stc单片机和stm32哪个好 带有&#39;&#39;鸡&#39;&#39;字的成语 鸡的成语大全成语大全 有鸡字的成语大全 鸡四字成语大全 含有鸡字的成语有哪些? 昨夜梦到在老家开车往外婆家去,路上好多人 梦见过年回家看见街上人很多男人在池塘游泳? 梦见回家的路上到处是人而且田地里死了一片又一片穿着白色孝服的人? 求解梦,谢谢!梦见在老家的街上,很多人穿橘*上衣服;还梦见... 千兆路由器模块条无线面板86型ap嵌入墙式带poe怎样设置密码 梦见老家的街道两边都是人 我做梦梦见在老家街道上很多人,好像是在放烟花,就在我抬头看的时候 我看见了观音菩萨像图片似得 很大 无线AP怎么加密? myeclipse连接oracle数据库 感冒了触觉降低了怎么回事吃了罗红霉素 感康 抗病毒口服液 和可泰舒有问题吗感觉感冒快好了可是触觉没? 修正牌可泰舒氨酚咖那敏片跟诺金牌百合固金片可不可以一起吃吗? 修正可泰舒氨酚咖那敏片能和蒲地蓝消炎片一起吃吗? 汶上~济宁的城际公交最晚一班是几点? 汶上县公交车路线有哪几条? 济宁到汶上的公交车c619现在最早几点发车 在济宁下火车站去哪做汶上车 汶上县12路公交车路线 要去济宁汶上圣泽中学,在济宁做城际公交,应该在哪下车,或是到了汶上做几路公交车? 济宁到汶上城际公交开了吗? 济宁几路公交车通汶上?多少钱?在哪里坐车?我要去汶上宝相寺 想知道:济宁市 从兖州市到汶上县怎么坐公交? 为什么喷气式飞机后面会拖‘尾巴’? 为什么大晴天天空中的飞机会拖着长长的尾巴? 急求飞机擦尾结构原因 飞机的拖尾晚上能看见吗? 早晨天空中慢慢移动有拖尾像星星的是什么? 飞机冲出跑道主要是什么原因? 我是辽宁省辽阳人,请问在辽阳能申请专利么?还是必须去北京申请?应该注意那些问题 辽宁省现在申请实用新型专利多少钱?个人申请有减缓吗?减缓后是多少钱? 辽宁省发明专利申请费用补助 多少钱 鞍山在什么地方申请专利 帮忙看下能否申请专利