原来电脑C和单片机C也差不多!
分立元件2020/02/05软件综合 IP:海南

又研究了一下电脑C语言,发现和单片机C语言差异不大,单片机控制IO口,电脑控制键盘输入和显示器输出,两者核心程序思维基本一样,不同点就是输入输出,单片机直接控制IO口高低电平,电脑控制系统包装好的函数,从而控制键盘和显示器等外设!

193214str6hr1yy9y88l0n.png

193251i6llfw25jd08l206.png


[修改于 4年10个月前 - 2020/02/05 14:55:19]

来自:计算机科学 / 软件综合
4
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
GiroPetrenko
4年10个月前 IP:江苏
870627

其实。。也不完全是直接操控外设(bios级别编程除外)。越往底层看越发现系统参杂的东西越多,POSIX之类的。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
m24h
4年10个月前 IP:上海
870630

不同的单片机都不一样的

比方说输出就不是1和0那么简单

还有开放集电极 悬浮 上拉 复用等变化

那些高速的i2c i2s HSPI PWM ow

也不能前靠c自己模拟电平变化的

虽然都是c语言

但是一般不能靠通用开发平台

都有自己独特性

甚至有些开发平台c语言本身也有变化

其次开发都靠库

那更不同

不一定有什么stdlib

printf更不见得有

而且单片机大多都RAM小ROM小flash小

连复杂点运算都未必够地方放

同样保存数据吧

普通c你爱写几位就写几位

单片机最好凑够扇区再写

读也一样

得不同的思考模式

你一个位一个位写也不是不行

甚至也有函数给你用

但是你这么干flash的寿命很快到头

总之

挺头疼的



引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
0x00000000
4年10个月前 IP:海南
870662

抽象程度不同,如果你自己编写操作系统就会发现了,一切都是从0开始,你得自己控制外设,然后把这些控制代码封装好提供给上一层接口。不过在PC机上,就算自己编写OS,也接触不到太多寄存器,基本上BIOS内部的硬件控制代码包办了好多,你只需要调用函数就行。

同样,MCU也是如此,没有OS的话,没有库的话,你自己首先要写好外设驱动函数,比如配置IO口,寄存器啥的,然后把这些硬件级操作封装,随后开始写外设的软件协议层,怎么建立通信,怎么开始通信,具体就是通过配置好的IO口收发特定序列,然后封装。最后可能还有一层,实现调用一个函数就可以传输或者接受指定数据。就是由下到上,层层封装,层层抽象,最后展现在编程者的眼中可能就是调用了一个上层函数就干完了一件事,实际上,由上到下的过程极其复杂,对于PC机来说更是如此。

你可以下载STM32的HAL库源码,一级一级向下分析就知道了,代码的分层结构很神奇。

引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
icewind
4年10个月前 IP:广东
870673

主要的区别是MCU很多没有操作系统,内存管理要自己来,另外就是外设也要自己去驱动

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
分立元件
机友 笔友
文章
32
回复
187
学术分
0
2014/12/19注册,2年7个月前活动

电子爱好者 、化学爱好者

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:海南
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}