- 博客(4)
- 收藏
- 关注
原创 关于嵌入式软件架构的理解
换句话说,应用程序根本不必知道,也不必关心,当前运行的是什么硬件,应用程序只需要关心抽象层的API是什么样的。新的硬件驱动程序要做的,仅仅是满足接口的要求而已。抽象层有很多种,比如硬件抽象层(HAL)、设备抽象层(DAL),操作系统抽象层(OSAL),网络抽象层,文件系统抽象层,Flash抽象层(RT-Thread里就有这个)等等。这意味着如果我们更改硬件,则只会更改硬件相关的模块(驱动代码),而不是整个代码库。,或者一套硬件迁移到另一套硬件,应用层代码不必更换。对谁进行抽象,就会建立这个东西的抽象层。
2024-08-19 23:26:13 157
原创 关于使用硬件I2C时,为什么不需要开启AFIO时钟
(Alternate Function I/O Event Control Register)寄存器主要用于配置和控制某些特定的事件输出,例如用于触发DMA传输、定时器更新事件等,并不需要用于标准I2C通信的配置。由手册可以看到,当对寄存器AFIO_EVCR,AFIO_MAPR和AFIO_EXTICRX进行读写操作前,应当首先打开AFIO 的时钟。I2C通信主要涉及到GPIO引脚的复用配置,以及I2C外设本身的初始化和控制,而。2、既然开启GPIO的复用功能,为何不用开启AFIO时钟?
2024-08-18 11:14:40 433
原创 STM32开漏输出为什么既能输入又能输出?
如图,便是推挽输出的接线图,通过导通P-MOS输出高电平,导通N-MOS输出低电平。注意:P-MOS和N-MOS不能同时接通,否则引起短路。这种模式输出的电平驱动能力强。
2024-08-03 21:26:35 643
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人