既然ODR能控制管脚高低电平,为什么还需要BSRR寄存器呢?

既然odr能控制管脚高低电平,为什么还需要bsrr寄存器呢?
为什么需要bsrr寄存器
在单片机中,为了控制端口的输出状态,我们需要使用特定的寄存器。其中,odr寄存器负责直接控制端口输出电平,但是在某些情况下,我们需要更高效、更精准的控制电平状态,这时就需要使用bsrr寄存器了。
bsrr寄存器全称bit set/reset register,中文名称为位设置/重置寄存器,其作用是能够快速切换输入输出引脚的电平状态。通过bsrr寄存器的配置,我们可以简单、高效地设置或者重置对应的引脚电平,而无需进行其他操作。
bsrr寄存器的结构
bsrr寄存器总共32位,其中前16位是用于设置对应引脚的高电平,后16位是用于设置对应引脚的低电平。
在bsrr寄存器的低16位中,每4位对应一个引脚,以16进制的形式表示。例如:低16位的0号位(lsb)至3号位分别对应的引脚号为0~3,以此类推。对于高16位,它们与低16位的区别在于,它们控制对应引脚的低电平状态,即为清零操作。
例如,如果要使引脚1变为高电平,那么我们可以给bsrr寄存器的第17位(低16位的1号位)写入1,这将会把引脚1设置为高电平。如果想要将引脚1的电平设置为低电平,我们只需要给bsrr寄存器的第33位(高16位的1号位)写入1,即可实现。
bsrr寄存器与odr寄存器的区别
虽然odr和bsrr都可以控制引脚的电平状态,但是它们在实现上还是有一些区别的。
首先,odr寄存器的写入操作是瞬时的,即写入后立即生效。而bsrr寄存器的写入操作是有延迟的,需要在cpu时钟上升沿时才能够生效,因此,如果需要精准地控制电平状态,我们需要根据cpu主频等因素,精确地计算出延迟时间。
其次,在使用bsrr寄存器时,我们可以直接通过对应电平位的写入操作,来实现针对某一位的设置或重置操作。这样,在高频率操作时,会比使用odr寄存器更具有优势,不仅可以提高效率,还能保证电平状态的准确性。
还有一个重要区别是,在使用bsrr寄存器时,如果想要对某个引脚进行设置或重置,我们只需要对对应的位进行操作即可,而使用odr寄存器时,我们需要同时对所有引脚进行设置或重置,这样会导致效率降低。
综上所述,bsrr寄存器与odr寄存器相比,更加灵活高效,能够更好地满足实际需求,特别是在高频率控制电平情况下更为显著。
结语
在单片机的开发中,对端口的输入输出状态控制是一项非常基础的操作,因此理解和掌握相关的寄存器是非常重要的。在实际应用中,根据不同的场景需求,选择合适的寄存器会使我们的开发更加方便、高效。
bsrr寄存器虽然只是一个小小的寄存器,但是在高频率作业中,能够发挥出强大的功能和优势。因此,对于端口输出状态的控制需求得到了更好的满足。

缩短与客户的距离是企业成功的关键因素
最牛爱普生AR眼镜,让你无论在哪都可随时看大片
IC芯片分类,芯片都有什么区别
【行家观点】智慧城市采用无线传输之新趋势,Wi-SUN为何备受期待
为什么OLED市场增长过缓?
既然ODR能控制管脚高低电平,为什么还需要BSRR寄存器呢?
光纤通信系统简介
谷歌有望2017年推出自动驾驶新车
应用场景遍地开花,接近传感器朝着多样化发展
佰维存储科技股份有限公司实力崛起 成国内领先存储解决方案提供商
华为应用市场正式发布2020年度榜单
基于SiNW-FET生物传感器的完全独立集成的便携式微流控纳米自动检测系统
电视机的故障判断,维修要点和技巧
5·20世界计量日——“数字时代的计量”
日立车用锂离子电池亮相第11届北京车展
小米6最新消息:无法改变的现实?小米6首卖依旧限量!
首届高校未来汽车人机交互设计大赛启动 促进学科创新和人才培养
AR发帖好神奇!寻找身边的那个ta
专为RTS游戏打造 新贵GX1
世界十强芯片制造商有哪些