矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: 往事已去

单片机学习路线求教

[复制链接]
     
 楼主| 发表于 2023-1-5 09:31:42 | 显示全部楼层
abbey_tom 发表于 2023-1-5 08:30
0基础学C语言,
这本书也不错,
学完前4章就算入门了,

先下载,看起来不大却二百多页,这得看到什么时候?
1.jpg
回复 支持 反对

使用道具 举报

     
发表于 2023-1-5 10:41:45 | 显示全部楼层
往事已去 发表于 2023-1-5 09:31
先下载,看起来不大却二百多页,这得看到什么时候?

嗬,您这个C语言的书可真不少,
不用再下了。
关键是踏踏实实学一本就够了,
我觉得谭浩强那本就可以了。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-1-5 10:47:01 | 显示全部楼层
abbey_tom 发表于 2023-1-5 10:41
嗬,您这个C语言的书可真不少,
不用再下了。
关键是踏踏实实学一本就够了,

就是下载谭浩强的书一起下的
回复 支持 反对

使用道具 举报

     
发表于 2023-1-7 21:56:47 | 显示全部楼层
washu 发表于 2023-1-2 11:57
听说有个东西叫易语言

最烦这种语言,虽然我的英文也就怎么好,但编程就像做数学题,如果数学题做不出来,是否把里面的“abcd,xyz”等等换成中文的“甲乙丙丁”就简单了?!
编程30多年了,用过十来种语言,我的感觉编程就像在做数字题,英文根本不是障碍,真正的障碍是数学,是算法,是逻辑思维。
回复 支持 反对

使用道具 举报

     
发表于 2023-1-12 17:48:54 | 显示全部楼层
一般的电子爱好者会用arduino就足够了,再想要进阶用树莓
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-11-16 09:41:21 | 显示全部楼层
ztzp 发表于 2023-1-7 21:56
最烦这种语言,虽然我的英文也就怎么好,但编程就像做数学题,如果数学题做不出来,是否把里面的“abcd,x ...

买了本书《双11了,买点啥电子产品呢?》71楼http://www.crystalradio.cn/forum ... p;extra=&page=5,现在感觉没英语的事,就那几个单词,可以说不需要英语。而且哪个不懂的话,百度一下网上有详细说明,解释的很清楚。
但是还是中文好,如果把相关的那些英语词改成中文,并且符合中文习惯,还是中文好用。哪怕是可以在程序中使用中文,都感觉比用英文或拼音好用(拼音重码太多),一看就知道是啥,直截了当省事快速。至于说打字速度,常用的也就那么几个,很快输入法就会把它们置顶,输入字首字母就出来词了,很快的,甚至比英语还快,英语需要一串字母全按进去才行。
回复 支持 1 反对 0

使用道具 举报

     
发表于 2023-11-16 12:40:03 | 显示全部楼层
往事已去 发表于 2023-11-16 09:41
买了本书《双11了,买点啥电子产品呢?》71楼http://www.crystalradio.cn/forum.php?mod=viewthread&tid= ...

谢谢回复。
现在的编程平台也支持一键提示,而且还是智能的。
如果你还是觉得中文编程好,你可以通过宏定义将所有的英文保留字定义成中文,那就变成中文编程了。
即便是这样,就像英文的“if”,相当于中文的“如果”,你把“if”定义成“如果”,好了,你省了记忆“if”的功夫,但你也得去记忆“如果”啊。你可以说,“如果”这个词,上小学就知道了,但时间一长,记不得了,你将“如果”用“假如”代替,那就是错误的。
根据我多年编程的感受,一门编程语言也就几十个单词,比如C#,将它们记住也不难,我也没有刻意去记,都是在编程中慢慢记住的,根据我的体会,编程中,99%以上的功夫是在记住这些单词以外,编程是逻辑推理与算法。英文只是符号,要学好编程,功夫要放在推理与算法上。
就像认识字,不一定写得出文章,背得所有的数学公式,不一定解得出数学题。
编程与做数学题一样,我愿意用a,b,c,不愿意用甲、乙、丙、丁。
说实话,解不出来的数学题,将a,b,c换成甲、乙、丙、丁照样解不出来!
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-11-16 16:37:59 | 显示全部楼层
ztzp 发表于 2023-11-16 12:40
谢谢回复。
现在的编程平台也支持一键提示,而且还是智能的。
如果你还是觉得中文编程好,你可以通过宏 ...

keill可以如此操作吗?以后编程的时候试试,我感觉中文清楚,英文费劲。需要仔细看每个单词费眼,需要脑中转换成中文含义费脑。
回复 支持 反对

使用道具 举报

     
发表于 2023-11-17 01:16:31 来自手机 | 显示全部楼层
单片机是门实践课:目标万年历。功能:1.12864点阵显示信息。2.串口可以把12864上显示的界面在串口助手里显示和更新。3. 一个AD输入口实现12个按键作为系统输入。4.iic口的时钟运行芯片关机计时。5.spi口的flash作为存储系统存储显示字模数据。6.单总线的18b20提供实时温度。按这几个部分一点一点实现了基础就夯实了。然后再用这套硬件加个软件变成俄罗斯方块,打坦克,星际大战……等游戏机。或者再加个DAC控制运放升级为数控电源和电子负载。不知不觉就成为资深单片机工程师了,
回复 支持 反对

使用道具 举报

     
发表于 2023-11-17 10:24:33 | 显示全部楼层
B站免费的江科大51单片机和stm32入门讲的非常棒,然后再看正点原子的视频。后面应该就是各大论坛和github找资料复现项目。我也正在学习相关入门资源,共勉。
回复 支持 反对

使用道具 举报

     
发表于 2023-11-17 20:39:18 来自手机 | 显示全部楼层
用stm32 cubemx配置基本不用查手册了,C做好接口函数spi屏幕iic等只需要定义引脚函数内部都不用改。
回复 支持 反对

使用道具 举报

     
发表于 2023-11-17 20:41:46 来自手机 | 显示全部楼层
51我觉得太烦了64K限制更容易地址错误
回复 支持 反对

使用道具 举报

     
发表于 2023-11-17 20:57:58 | 显示全部楼层
比如我现在在调一个正交码编码器(鼠标滚轮那种),按理说应该看手册,然后搞时序写中断,还要再考虑运行环境的适配负担。

结果现在在 Arduino 环境下,果断就偷懒去下载库了,一试挺好用。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-11-18 12:12:38 | 显示全部楼层
t3486784401 发表于 2023-11-17 20:57
比如我现在在调一个正交码编码器(鼠标滚轮那种),按理说应该看手册,然后搞时序写中断,还要再考虑运行环 ...

这个好,自己不会可以把别人的搬过来,就像弄了个总成回来再组装。
回复 支持 反对

使用道具 举报

     
发表于 2023-11-18 15:35:29 | 显示全部楼层
学习单片机,肯定是51入门,建议用KeilC,调试程序比较方便,先用最简单硬件平台,C语言开始先不要使用指针,试着写跑马灯>>>读写串口(学会用串口作为调试的一种手段,会终身受益)>>>使用定时器>>>读取键盘>>>使用外部中断>>>驱动数码管>>>读写IIC EEPROM>>>驱动LCD>>>扩展IO/RAM/ROM,等把一款单片机所有的内部模块都玩会,顺带摸透单片机里的各种寄存器,基本上C语言已经能简单应用了,这时如果想提高C语言水平,可以学习使用C指针.搞单片机开发,不会用指针也能玩好,但没法发挥C语言的强项,C教材都有涉及指针方面的知识,只要用心学,一般一周左右可以熟练运用了(因人而异,汗).
下面就可以试着做一个综合性的小项目练练手,例如将前面学习的简单例子综合在一起,这时候就需要学习多文件源程序的管理,keilC在这方面很友好,将源文件加入工程就好,这期间主要学习编写复杂点的逻辑代码,全局变量的管理,C语言的知识点,宏定义>>>数据结构>>>联合体>>>枚举>>>函数指针等等,在这个小项目中尽量能够用上这些知识,如果都能做到,已经可以熟练应用C语言.
到这一步,会面临不同选择,有点人偏向于硬件,例如尝试玩这种单片机,有的人选择偏向于软件,例如选择一款ARM平台,从简单的RTOS开始玩起,比如keilM自带RTX,可以使用标准C库,把它玩好了,也就对操作系统也熟悉了,也可以玩玩其他简单的RTOS如UCOS,freertos,rt-thread等,这些RTOS基本思路都一致,有了keil RTX的基础,学习起来都很容易,当然前面列出的RTOS,学习顺序可以根据自己的兴趣决定,玩精通一种便可.以后可以玩更高性能的ARM(或其他架构),玩更高深的linux,玩到这一层次,会发现前面学习的知识只是一条小溪流,后面要接触的却一片汪洋,里面有穷其一生也学习不完的知识,但是玩单片99%的人都一直在小溪流里洄游,离大海还很远.
能从51单片机玩到linux,算是嵌入式了,不局限于硬件和软件,两者都应该通吃设计到,搭建硬件平台(使用核心板或从头搞起)>>>搭建linux内核编译平台>>>编译linux内核>>>移植新硬件编写驱动程序>>>给APP开发任意搭建运行环境>>>编写linuxAPP,这是嵌入式linux路线,还有一条Android计算路线,只有最后一步是编写的安卓APP,前面的步骤相同,.如果是搞linux应用,需要学习gcc+make编译工程>>>调取系统显示缓存显示画面>>>接入鼠标/键盘/触摸屏>>>应用网络/wifi+网络编程(如果需要联网),如果是安卓路线,恶补Java知识>>>搭建android开发环境>>>编写安卓APP,
C语言玩好了,也可以转PC软件路线,也可以继续玩硬件,每个人在学会了一项技能后都会有更多选择等着你.没有人能全知全会,必须学会在一些时间节点选择什么放弃什么,只有学会的才是自己的.
楼主如果已经有了一点单片机基础,建议STM32/arduino选择一条路,深耕下去,对什么感兴趣就学什么.如果楼主年龄比较大的话,建议玩玩arduino吧,它容易入门,容易做出东西,网上的资料也多,硬件也好搞.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-27 02:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表