如今,单片机已被广泛应用,单片机是一种控制芯片,一个微型的计算机,而加上晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器),按钮(类似键盘),扩展芯片,接口等那是单片机系统。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位单片机。那么16位单片机和32位单片机有哪些区别呢?
16位单片机和32位单片机的区别如下:
数据总线的宽度不同,16位机的数据线是16条,一次只能传送一个16位数据;
32位机的数据总线是32条,一次可以传送32位数据,数据处理的能力更强,处理数据的速度更快。
现在一般常用的是8位和16位单片机,32位和64位的单片机价格还较贵,还没进入普及阶段。
STM32是32位的单片机却只要八位单片机的价格,速度也是八位的好几倍。更重要的是它作为ARM入门级的芯片比较容易掌握,网上资料也很多,很多人都在用。
STM32的IO端口有7个寄存器来控制,但是我们常用的就4个CRL CRH IDR ODR 。
端口配置低寄存器(GPIOx_CRL)
端口配置高寄存器(GPIOx_CRH)
端口输入数据寄存器(GPIOx_IDR)
端口输出数据寄存器(GPIOx_ODR)
其中CRL 控制高8位的 IO CRH 低8这两个实质是一样的。
对照我们AVR来看GPIOx_CRL就相当于DDRx ,GPIOx_ODR就相当于PORTx,GPIOx_ODR就相当于PINxSTM32的 IO 口可以由 口可以由 软件配置成 软件配置成 软件配置成 8种模式。