基础知识复习(自用)
通信协议
串口rs232
两根线tx、rx,可同时收发(全双工),通信双方约定一个波特率
波特率:在信息传输通道中,携带数据信息的信号单元叫码元(因为串口是1bit进行传输的,所以其码元就是代表一个二进制数),每秒钟通过信号传输的码元数称为码元的传输速率,简称波特率,常用符号“Baud”表示,其单位为“波特每秒(Bps)”。
比特率:每秒钟通信信道传输的信息量称为位传输速率,简称比特率,其单位为“每秒比特数(bps)”。比特率可由波特率计算得出,公式为:比特率=波特率 * 单个调制状态对应的二进制位数。如果使用的是9600的波特率,其串口的比特率为:9600Bps * 1bit= 9600bps
串口rs485
双向、半双工,允许多个驱动器和接收器挂接在总线上,其中每个驱动器都能够脱离总线
SPI
Serial Peripheral Interface,串行外围设备接口
四种模式,这4种模式分别由时钟极性(CPOL,Clock Polarity)和时钟相位(CPHA,Clock Phase)来定义,其中CPOL参数规定了空闲状态(CS_N为高电平,设备未被选中)时SCK时钟信号的电平状态,CPHA规定了数据采样是在SCK时钟的奇数边沿还是偶数边沿
IIC
主机产生SCL信号,控制通信的速率
仅有主机可以主动发起数据传输,因此要么主机主动发送给从机,要么主机读取某个从机
SDA 信号 SCL低电平准备数据 SCL高电平采集数据(此时SDA不允许变化)
软件IIC
在STM32中,软件IIC是一种通过程序控制GPIO口模拟实现IIC通信的方法。这种实现方式常用于一些资源有限的应用场景,或者在需要更灵活控制IIC通信时使用。总而言之,软件IIC是利用GPIO的翻转,一个IO模拟SCL线,一个IO模拟SDA线实现IIC通信协议的实现。
软件IIC不需要对IO有特殊的要求,只需要两个普通的GPIO即可实现,因此较为方便也方便移植,不同设备只需要重写IIC的基本通讯即可。
网口
OSI (Open System Interconnection)
在 RJ45 接口和处理器之间,需要使用一个能够实现 TTL 电平和高速串行数据收发模式之间的转换器,这个转换器就是我们常说的 PHY 芯片。
STM32相关
CMake
CMake是一个开放的,基于文本配置的工程管理工具,使用CMakeLists.txt来定义项目结构和编译规则,可以在不同开发环境之间复用
target_include_directories(目标_包含_文件夹) : 用来寻找头文件的文件夹
target_include_directories(${PROJECT_NAME}.elf PRIVATECore/IncDrivers/STM32H7xx_HAL_Driver/IncDrivers/STM32H7xx_HAL_Driver/Inc/LegacyDrivers/CMSIS/Device/ST/STM32H7xx/IncludeDrivers/CMSIS/Include# ... 其他 include 路径 ...
)
老写法
include_directories(Core/Inc Drivers/STM32H7xx_HAL_Driver/Inc Drivers/STM32H7xx_HAL_Driver/Inc/Legacy Drivers/CMSIS/Device/ST/STM32H7xx/Include Drivers/CMSIS/IncludeCore/User/LTDCGUIGUI/lvglGUI/lvgl/src/core GUI/lvgl/src/draw GUI/lvgl/src/extra GUI/lvgl/src/font GUI/lvgl/src/gpu GUI/lvgl/src/hal GUI/lvgl/src/misc GUI/lvgl/src/widgetsGUI/lvgl_drivergenerated generated/guider_customer_fontsgenerated/guider_fontsDSP_libary/DSP_Inc/PrivateIncludeUser_Func_Lib/ADC_Function)
target_source
eg:
target_sources(${PROJECT_NAME}.elf PRIVATELib/oled/Src/font.c
)
老写法
file(GLOB_RECURSE SOURCESLibrary/*.*Core/*.*Drivers/*.*GUI/lvgl/src/*.*GUI/lvgl_driver/*.*GUI_app/lv_examples/lv_apps/benchmark/*.*GUI_app/widgets/*.*generated/*.*DSP_libary/Source/BasicMathFunctions/BasicMathFunctions.c# ... 其他源文件 ...User_Func_Lib/*.*
)