01基础学习路线
入门期:MCU软硬件
成长期:单片机裸机、单片机RTOS
Linux/Android驱动、Linux应用、其它DSP、FPGA
持续学习,保持热爱
实现物联网小项目:
STM32F103mini开发板+ESP8266
按下微信小程序按键,发送信号到WIFI模块,连接mini开发板,控制用户灯亮灭。按下开发板的按键,小程序获取按键门铃状态。
02基本概念
ARM Advanced RISC Machines
精简指令集计算机(RISC:Reduced Instruction Set Computer RISC) 是一种执行较少类型计算机指令的微处理器。
03开发流程
mini开发板集成了串口转USB模块
打印显示:
其中一个开发板作ST-Link。使用STM32F103 Tools
实际开发中,常常使用串口的输出信息来协助调试。开发板的串口 (TTL电平)引出,通过USB-TTL串口模块,转成USB信号给电脑,在电脑上还需要配套软件才能显示信息, 也就是这里要安装的MobaXterm。本开发板的USB-TTL串口模块集成在了开发板上,只需要将USB切换开关, 拨到非ON一端,然后插入电脑USB口即可。
学完用户手册,单片机入门就差不多了。
总结一下遇到问题后的思路
①参考文档或视频前后,仔细比对是否一致,大多数问题都是没按文档操作;
②确认与文档和视频一致后,在百度上搜索一下关键词或现象,一般都有类似的问题,按照网上的解决方式尝试一下。如果成功就解决问题了,如果没成功对该问题也会有更深刻的理解。
③经过以上两步,大多数问题都解决了。剩下的问题通常比较有特殊性,在群里问问群友,在论坛搜索或发帖。
按照以上步骤,简单的问题,基本自己都能解决,难一点的问题,群友和老师一起解决。当然,整个过程都需要自己思考,这样才会提升比较快。
百问网为学员提供多种学习交流、答疑反馈的渠道。
1)购买开发板后,联系淘宝客服加入QQ群交流;
2)官方论坛发帖提问(推荐):bbs.100ask.net
3)官方淘宝通过阿里旺旺咨询:100ask.taobao.com
裸机开发与RTOS引入
轮询方式的缺陷1:任务之间相互干扰非常严重,一旦某些任务耗时很长,后续任务就会等待很长时间才会有机会执行。
硬件上优化:
轮询方式的缺陷2:无法及时响应重要任务。
事件驱动方式:
事件通常和中断是一起讲的,于处理器而言,某个硬件产生的一个脉冲信号通知另一个硬件根据此信号做处理称之为事件,例如,定时器每隔1ms触发ADC去采样,这种就叫做事件,过程中不需要CPU参与;但是ADC采样完成之后需要CPU去处理采样的数据,所以需要告知CPU它采样完了,CPU可以去取数据做处理了,那么ADC通知CPU采样完了这个动作就叫做中断。
中断服务函数要简短,比如置标志位。
Cortex-M3内核的抢占优先级可以实现中断嵌套;
中断优先级(cortex--m3)
我们以Taskn(p,s)来表示任务n的抢占优先级p和子优先级s,比如$Task0(0,0)表示任务0的抢占优先级数值是0,子优先级数值是0,那根根据ARM处理器中断优先级的规则,它就是最高优先等级的任务。
中断向量表:
RTOS的引入
在裸机开发过程中使用轮询和中断的方式可以解决大部分问题,但是在一些多任务、耗时长任务等复杂情况下,单纯的裸机开发已经不能满足需求了。