选STM32还是51单片机,对于时间有什么要求

选STM32还是51单片机,对于时间有什么要求

选STM32还是51单片机,对于时间有什么要求_第1张图片

对于时间充裕想系统的开始学习的朋友,虽然stm32更强大,但还是建议按老办法走一遍51好,不用花很长时间,一个寒假,用最经典的郭老师10天学会51单片机课程,两周时间边看边实践把51过一遍,这算是培养概念和手感,有条件的朋友可以找一对一的更容易上手,51过了就直接入stm32,这时候你已经掌握了一定的电路基础,怎么去操作,相关原理,学会了看手册,学习能力有了很大提升,跟着一对一的教程和学习路线走,然后多动手做点小项目提升自己,做硬件最重要的就是要勤动手,这个要牢记。

关于51单片机基础知识波特率的设定简单了解一下就行,如果不是考试不要求具体来算,通过工具就可以去配置它,或者通过查表也可以查到波特率,做通讯的时候是先确定波特率,比如9600,把公式等于9600,通过9600的设定来找到T1的溢出率,T1的溢出率就是定时计数器溢出的次数就是他的溢出率,比如定时时间是T,这T分之一就是它的溢出率,就是每过这么长时间它溢出一次就是他的溢出率。

所以一旦确定了波特率,通过公式就可以计算出溢出率,然后把溢出率取到手就可以计算出来定时时间,有了这个定时时间,借助于公式有了初值,一旦打开定时计数器,它就会在这个初值的基础上来进行计数,每来一个机器周期进行计数,靠这个东西就能够产生波特率,在做通信的时候是先确定波特率,然后由波特率的这个计算公式得到T1的溢出率,由T1的溢出率得到定时时间,由定时时间来配置定时计数器的定时的初值从而去产生波特率,这个过程不要搞反,不是先有的溢出率然后再去确定波特率,是先有的波特率,然后确定溢出率,由溢出率确定时间,由定时时间确定这个定时计数器的初值,由这个初值来去产生这个波特率。

选STM32还是51单片机,对于时间有什么要求_第2张图片

当SMOD在PCON当中把它设置成一的时候就是二的一次方就是波特率翻倍,如果是0 ,2的0次方就是1就是没有翻倍,通常使用的晶振是12MHz或者是11.059MHz,想做串行通信一般推荐使用11.059MHz的晶振,用11.0592MHz晶振的时候计算初值的时候计算出来这个数值是一个整数,如果用12MHz晶振或者6MHz的晶振计算初值会有小数,有小数就会有四舍五入,波特率它就会有误差,简单的通信不会出问题,但是大数据量的通信的话,会有累积误差产生到一定程度的时候就会引起通信出错,确定的波特率,借助这个就可以算出来溢出率,由这个溢出率取倒数就能得到一个小T,有这个小T就可以计算出来定时初值,在这个基础上打开定时计数器就能够产生波特率,需要注意一定是用的T1,波特率的产生,常用的波特率可以通过查表或者用工具来配置,没有必要去一个一个的去算。

选STM32还是51单片机,对于时间有什么要求_第3张图片

当选用11.0592MHz晶振的时候误差都是0%,也就是说你计算的波特率的误差是0%,但是如果选用12MHz的累计误差在不同波特率的时候也不一样,如果没有特殊的要求,最好就是选11.059MHz晶振,在取波特率的时候通常是取的标称值,在用晶振的时候刚好计算出来T1的定时初值,它是一个非常准确的一个整数,推荐大家做串行通讯的时候要选用这个时钟晶振。

选STM32还是51单片机,对于时间有什么要求_第4张图片

前面这个步骤就是设置波特率,接下来就是设置你的工作方式,然后启动定时计数器,作为不特定的信号发生器,然后就可以做发送和接收了,当然可以用中断的方式,或者说是查询的方式,普通的51单片机只有一个串行口,这个时候你要想用到多个串行口就要选内部在多个串口的单片机,如果编程能力比较强的话可以用单片机的I/O口来仿帧串口,这个对你的编程能力的要求就比较高,不妨还是选一个带多个串口的单片机来的更为实际一点。

或者说更为简单一点,同时这种单片机可以借助于工具,比如如果说你选的是STC的单片机,可以看到它的选型工具当中来勾选,要用到串行口找到选型这个地方,大部分单片机都是有一个串行口,在做通信的时候很多情况下会有用到多个串口的情况,比如用到GPS,或者用蓝牙,模块用到一个串口,同时还需要用到串口和计算机之间进行数据交互,就是和上位机之间进行交换信息,一个串口肯定达不到来调度能够完成多个任务,最好的方法那就是用多个串口来解决,所以很多单片机会有多个串行口,大家感兴趣的话,如果以后用到多个串口,不妨就选内部在多个串行口的,这种实际上比较好用。

对单片机感兴趣的可以查看往期分享内容希望能帮助大家在学习单片机的路上少走一些弯路想要入门单片机可以持续关注创为单片机编程回复“带我学习”查看更多内容分享

选STM32还是51单片机,对于时间有什么要求_第5张图片

你可能感兴趣的:(单片机,嵌入式,C语言,单片机,stm32,51单片机,嵌入式硬件,c语言)