概述
选STM32还是51单片机,对于时间有什么要求
对于时间充裕想系统的开始学习的朋友,虽然stm32更强大,但还是建议按老办法走一遍51好,不用花很长时间,一个寒假,用最经典的郭老师10天学会51单片机课程,两周时间边看边实践把51过一遍,这算是培养概念和手感,有条件的朋友可以找一对一的更容易上手,51过了就直接入stm32,这时候你已经掌握了一定的电路基础,怎么去操作,相关原理,学会了看手册,学习能力有了很大提升,跟着一对一的教程和学习路线走,然后多动手做点小项目提升自己,做硬件最重要的就是要勤动手,这个要牢记。
关于51单片机基础知识波特率的设定简单了解一下就行,如果不是考试不要求具体来算,通过工具就可以去配置它,或者通过查表也可以查到波特率,做通讯的时候是先确定波特率,比如9600,把公式等于9600,通过9600的设定来找到T1的溢出率,T1的溢出率就是定时计数器溢出的次数就是他的溢出率,比如定时时间是T,这T分之一就是它的溢出率,就是每过这么长时间它溢出一次就是他的溢出率。
所以一旦确定了波特率,通过公式就可以计算出溢出率,然后把溢出率取到手就可以计算出来定时时间,有了这个定时时间,借助于公式有了初值,一旦打开定时计数器,它就会在这个初值的基础上来进行计数,每来一个机器周期进行计数,靠这个东西就能够产生波特率,在做通信的时候是先确定波特率,然后由波特率的这个计算公式得到T1的溢出率,由T1的溢出率得到定时时间,由定时时间来配置定时计数器的定时的初值从而去产生波特率,这个过程不要搞反,不是先有的溢出率然后再去确定波特率,是先有的波特率,然后确定溢出率,由溢出率确定时间,由定时时间确定这个定时计数器的初值,由这个初值来去产生这个波特率。
当SMOD在PCON当中把它设置成一的时候就是二的一次方就是波特率翻倍,如果是0 ,2的0次方就是1就是没有翻倍,通常使用的晶振是12MHz或者是11.059MHz,想做串行通信一般推荐使用11.059MHz的晶振,用11.0592MHz晶振的时候计算初值的时候计算出来这个数值是一个整数,如果用12MHz晶振或者6MHz的晶振计算初值会有小数,有小数就会有四舍五入,波特率它就会有误差,简单的通信不会出问题,但是大数据量的通信的话,会有累积误差产生到一定程度的时候就会引起通信出错,确定的波特率,借助这个就可以算出来溢出率,由这个溢出率取倒数就能得到一个小T,有这个小T就可以计算出来定时初值,在这个基础上打开定时计数器就能够产生波特率,需要注意一定是用的T1,波特率的产生,常用的波特率可以通过查表或者用工具来配置,没有必要去一个一个的去算。
当选用11.0592MHz晶振的时候误差都是0%,也就是说你计算的波特率的误差是0%,但是如果选用12MHz的累计误差在不同波特率的时候也不一样,如果没有特殊的要求,最好就是选11.059MHz晶振,在取波特率的时候通常是取的标称值,在用晶振的时候刚好计算出来T1的定时初值,它是一个非常准确的一个整数,推荐大家做串行通讯的时候要选用这个时钟晶振。
前面这个步骤就是设置波特率,接下来就是设置你的工作方式,然后启动定时计数器,作为不特定的信号发生器,然后就可以做发送和接收了,当然可以用中断的方式,或者说是查询的方式,普通的51单片机只有一个串行口,这个时候你要想用到多个串行口就要选内部在多个串口的单片机,如果编程能力比较强的话可以用单片机的I/O口来仿帧串口,这个对你的编程能力的要求就比较高,不妨还是选一个带多个串口的单片机来的更为实际一点。
或者说更为简单一点,同时这种单片机可以借助于工具,比如如果说你选的是STC的单片机,可以看到它的选型工具当中来勾选,要用到串行口找到选型这个地方,大部分单片机都是有一个串行口,在做通信的时候很多情况下会有用到多个串口的情况,比如用到GPS,或者用蓝牙,模块用到一个串口,同时还需要用到串口和计算机之间进行数据交互,就是和上位机之间进行交换信息,一个串口肯定达不到来调度能够完成多个任务,最好的方法那就是用多个串口来解决,所以很多单片机会有多个串行口,大家感兴趣的话,如果以后用到多个串口,不妨就选内部在多个串行口的,这种实际上比较好用。
对单片机感兴趣的可以查看往期分享内容,希望能帮助大家在学习单片机的路上少走一些弯路,想要入门单片机可以持续关注创为单片机编程,回复“带我学习”查看更多内容分享。
最后
以上就是想人陪黑裤为你收集整理的选STM32还是51单片机,对于时间有什么要求的全部内容,希望文章能够帮你解决选STM32还是51单片机,对于时间有什么要求所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复