版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章
串行通信模块【实践案例5-1】通过串口实现PC机与开发板的通信【照猫画虎5-1】PC机通过串口控制LED的显示【实践案例5-2】串口重定向【照猫画虎5-2】串口重定向的应用【实践案例5-3】利用I2C外设实现EEPROM的读写【照猫画虎5-3】利用I2C外设实现EEPROM的读写
第5章
串行通信模块第5章
串行通信模块第5章
串行通信模块5.1通用串口USART/UART5.1.1通用串口内部结构5.1.2时钟和波特率5.1.3HAL库中的封装和定义5.1.4串口重定向【实践案例5-1】通过串口实现PC机与开发板的通信
【照猫画虎5-1】串口重定向STM32F407集成了6个通用串口,其中UART4、UART5为通用异步收发器,USART1~3、USART6为通用同步异步收发器。5.1通用串口USART/UART在6个通用串口外设中,USART1和USART6的时钟源来于APB2时钟,其最大频率为84MHz,其他4个串口的时钟源可以来于APB1时钟,其最大频率为42MHz。STM32串口输出的是TTL电平信号,如果需要RS-232标准的信号可使用MAX3232芯片进行转换,开发板上是通过USB转串口芯片CH340C与电脑的上位机进行通信。5.1通用串口USART/UART5.1.1通用串口内部结构
5.1通用串口USART/UARTDR(DataRegister)中存放的是待发送或接收到的数据,分为发送数据寄存器TDR和接收数据寄存器RDR。当进行数据发送操作时,向DR中写入的数据会自动存储在TDR中,TDR提供了内部总线和输出移位寄存器之间的并行接口;当进行读取操作时,访问DR会自动从RDR读取接收到的数据,RDR提供了输入移位寄存器和内部总线之间的并行接口。在32位的DR中,只有低9位有效,其中第9位数据是否有效又与控制寄存器CR1中的M位设置有关。数据寄存器DR5.1通用串口USART/UARTOVER8:过采样模式(OverSamplingMode),取值0和1分别对应16倍和8倍过采样。
M:字长(WordLength),取值为0和1时,设置传输的数据位数分别为8位和9位,另外加上一位起始位和停止位。
TE:发送器使能(TransmitterEnable),取值为1表示使能发送器,允许数据发送。RE:接收器使能(ReceiverEnable),取值为1表示使能接收器,允许接收数据。控制寄存器CR5.1通用串口USART/UARTTXEIE:TXE中断使能(TXEInterruptEnable),取值为1时表示启用TXE(TransmitDataRegisterEmpty,发送数据寄存器为空)中断。TCIE:传输完成中断使能(TransmissionCompleteInterruptEnable),取值为1表示启用TC(TransmissionComplete,发送完成)中断。RXNEIE:RXNE中断使能(RXNEInterruptEnable),取值为1表示启用RXNE(Readdataregisternotempty,读取/接收数据寄存器不为空)中断。5.1通用串口USART/UARTTXE:发送数据寄存器为空(Transmitdataregisterempty)
当TDR中的数据已经传送到串口内部的移位寄存器时,该位由硬件置位。通过执行对DR的写入操作将使该位复位。
RXNE:接收数据寄存器不为空(Receivedataregisternotempty)
当RDR中的数据已经传送到数据寄存器DR等待读取时,该位由硬件置位。通过从DR读取接收到的数据,该标志位将复位。状态寄存器SR5.1通用串口USART/UARTTC:发送完成(Transmissioncomplete)
一般用于多个数据的发送过程。如果指定个数的数据已经完成发送并且TXE=1,则该位由硬件置位。如果允许串口中断,则将同时发出中断。之后,通过读取状态寄存器,并将下一批需要发送的数据写入数据存器,可以将该标志位复位。
串
口RXDTXDSCLKUSART1PA10/PB7PA9/PB6PA8USART2PA3/PD6PA2/PD5PA4USART3PB11/PD9/PC11PB10/PD8/PC10PB12UART4PA1/PC11PA0/PC10-UART5PD2PC12-USART6PC7/PG9PC6/PG14PG7/PC8RXD:数据接收;TXD:数据发送;SCLK:同步模式下时钟引脚上述引脚由指定的GPIO引脚复用模式提供。5.1通用串口USART/UART串口引脚5.1.2时钟和波特率5.1通用串口USART/UARTfCK:USART时钟。USART1、USART6的时钟来源于APB2总线时钟84MHz,其他4个串口来源于APB1总线时钟42MHz。OVER8:过采样模式。取值等于串口控制寄存器CR1寄存器的D15位,值0或1分别表示16倍和8倍过采样(OverSample)。USARTDIV:存放在波特率寄存器BRR中的波特率分频系数。5.1通用串口USART/UART例:设置OVER8=0,Mantissa=24,Fraction=10,并且BRR中的值为0x18a,则波特率分频系数的小数部分为10/16=0.625,整数部分为24,分频系数为24.625。例:OVER8=0,并且分频系数为27.68,则小数部分Fraction=160.68=10.88,取与之最接近的正整数11=0xb,并用4位二进制表示;整数部分Mantissa=27=0x01b,并用12位二进制表示。
最终得到BRR=0x01bb。
5.1通用串口USART/UART例:假设用USART1进行串行数据收发,已知OVER8=1,要求波特率为115200bps,则可求得由此得到分频系数的整数部分为Mantissa=91,转换为12位二进制得到000001011011;小数部分为Fraction=8×0.1458
1,取3位二进制得到001,最终BRR=0000010110110001=0x05b1。5.1.3HAL库中的封装和定义5.1通用串口USART/UART串口的结构体定义串口结构体5.1通用串口USART/UART串口初始化结构体5.1通用串口USART/UART串口句柄结构体5.1通用串口USART/UART定义串口句柄结构体指针5.1通用串口USART/UART句柄(Handler)——外设的一个标识符,各外设的工作参数保存在句柄结构体的各成员变量中。典型的句柄结构体主要包括如下成员变量。外设实例:代表具体的外设,一般为串口结构体指针,例如USART1、UART4等。初始化配置参数:定义外设的初始化数据类型,例如串口的波特率、数据格式等。I/O缓冲区:定义工作过程中所需的数据(缓冲区)、数据个数等。外设的工作状态:忙(Busy)、就绪(Ready)、错误(Error)等。5.1通用串口USART/UART串口的初始化5.1通用串口USART/UART待配置的串口结构体波特率
字长停止位奇偶校验收发模式5.1通用串口USART/UART串口数据收发函数5.1通用串口USART/UART阻塞式数据收发调用执行相应函数时将进入阻塞等待状态,等待指定个数的数据在给定时间内收发完毕。函数的返回值都是HAL_StatusTypeDef枚举类型。当在指定的超时时间Timeout内收发完毕时,函数返回HAL_OK;如果在指定的超时时间结束后数据没有收发完成,则函数返回HAL_TIMEOUT;如果调用执行上述函数时,串口没有准备好,则返回HAL_BUSY。5.1通用串口USART/UART对阻塞式数据发送过程,在发送当前数据之前一般需要首先通过检测状态寄存器SR中的TXE(Transmitdataregisterempty,发送数据寄存器为空)位是否为1,以便确认发送数据寄存器是否为空,上一次发送的数据已经送到移位寄存器。如果是连续发送多个数据,则必须通过检测TC标志位是否为1,以确保最后一个数据发送完毕。对阻塞式数据接收过程,程序中一般首先通过检测SR中的RXNE标志位判断是否接收到新的数据。如果检测到该标志位为1(SET),再调用HAL_UART_Receive()函数从RDR中读取接收到的数据,存入程序中指定的变量或数组中。
5.1通用串口USART/UART超时时间Timeout在嵌入式系统中,许多操作(如串口通信、SPI通信、I2C通信等)需要一定的时间来完成。然而,有时可能会因为硬件故障、通信干扰等原因导致操作无法正常完成,如果程序一直等待该操作完成,就会陷入无限循环,影响系统的稳定性和实时性。超时时间就是为了解决这个问题而引入的,当操作在规定的超时时间内未完成时,函数会返回相应的错误状态,让程序能够及时处理异常情况。在HAL库中,超时时间以系统节拍数即ms为单位,可取值为任何32位无符号整数。对通用串口的阻塞式数据传送,超时时间参数的取值可以为0或任意正整数,也可以为HAL_MAX_DELAY(232-1)。5.1通用串口USART/UART宏常量HAL_MAX_DELAY定义在文件stm32f4xx_hal_def.h中。当超时时间取值该参数时,函数会一直等待,直到数据收发完成。如果数据收发操作由于某种原因无法完成,程序会一直阻塞在该函数处,可能导致系统失去响应。超时时间也可以根据操作的预期时间设置为一个合理的正整数。在这种情况下,当操作无法按时完成时,函数能够及时返回错误,让程序可以进行错误处理,避免长时间阻塞。
当超时时间设置为0时,函数会立即检查操作是否完成,若未完成则马上返回,不会进行任何等待,从而实现非阻塞操作,让程序可以快速继续执行后续代码,提高系统的实时性,但无法确保操作完成。5.1通用串口USART/UART查询式数据传送
当超时时间设置为0时,需要在程序中不断检查操作状态(数据收发是否完成),从而实现查询式数据传送。在stm32f4xx_hal_uart.h头文件中,定义了如下宏函数___HAL_UART_GET_FLAG()通过直接操作串口控制寄存器和状态寄存器,实现串口状态寄存器中指定标志位的检测。例如,必须等到前一次数据发送完成,才能发送新的数据;必须等到串口接收数据以及完成,才能对接收到的数据进行处理。5.1通用串口USART/UARTUART_FLAG_TXE:发送数据寄存器空
,当TDR中的数据已传输到移位寄存器,由硬件置1。UART_FLAG_
RXNE:接收数据寄存器非空,当移位寄存器的内容已经存入RDR时,这两个标志位由硬件置1。UART_FLAG_TC:当TDR为空,并且发送移位寄存器中的数据发送完毕后,该标志才置位。程序中检测到上述标志位置位后,可以向TDR发送下一个数据,或者从RDR读取接收到的数据。执行这两个操作时,相应的标志位重新被复位。5.1通用串口USART/UART5.1通用串口USART/UART例如,如下语句
while(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_RXNE)==RESET);通过检测RENE标志位,判断串口USART1中的接收数据寄存器是否为空。如果检测到该标志位为RESET(0),则表示串口1还未接收到数据,则等待。5.1通用串口USART/UART执行相应的数据收发函数后将自动打开串口中断,并返回HAL_OK。但是当函数返回时,并不表示数据已经收发完毕,而是等到数据真正收发完毕后,由串口自动发出中断。MCU检测和接收到中断后,才能够继续执行下一次数据收发操作。中断处理过程中函数之间的调用关系:USARTx_IRQHandler()->HAL_UART_IRQHandler()->UART_Transmit_IT()或UART_Receive_IT()->HAL_UART_TxCpltCallback()或HAL_UART_RxCpltCallback()中断式数据收发5.1通用串口USART/UART注
意——1)编程时的主要工作就是重新两个回调函数;2)每次响应中断后,串口的数据收发中断将自动关闭,在应用程序中必须重新调用两个中断方式数据收发函数HAL_UART_Transmit_IT()和HAL_UART_Receive_IT(),以便再次开启串口中断。3)两个中断方式数据收发函数不能在中断回调函数中调用。为此,一般在回调函数中设置一个标志,在程序的其他位置(例如main函数的while循环中),通过检测该标志以确认数据收发结束,再继续做相应的处理。之后,重新调用中断方式数据收发函数,以便启动下一次数据的收发。【实践案例5-1】通过串口实现PC机与开发板的通信5.1通用串口USART/UART本案例要求通过PC机上的串口调试助手向开发板发送10个字节数据,开发板上的MCU通过串口USART1接收到这些数据后,再原样发回PC机。为实现开发板与PC机之间的通信,需要一个USB转USART的集成电路芯片,将STM32的串口转换为USB信号线接口,以便通过PC机的USB与开发板上的串口直接进行数据传送。开发板上选用的是CH340G芯片来实现这个功能,其硬件电路如图5-5所示。5.1通用串口USART/UART图5-4
开发板上的USB转串口电路5.1通用串口USART/UARTCubeMX配置5.1通用串口USART/UART应用程序的编写5.1通用串口USART/UART启动串口接收,并使能接收中断5.1通用串口USART/UART【照猫画虎5-1】PC机通过串口控制LED的显示在串口调试助手中分别输入并发送控制字符r、g、b,控制开发板上LED分别显示红色、绿色和蓝色。要求STM32的串口采用查询方式接收控制字符。5.1通用串口USART/UART串口重定向是指将一个串口设备的数据流重定向到另一个设备、文件、网络连接或其他目标的过程。在嵌入式系统或计算机中,串口重定向常用于调试、数据传输和远程访问等场景。在调试过程中,通过重定向串口输出,可以方便地查看系统日志或程序输出,这对于没有显示器或需要远程调试的嵌入式开发特别有用。此外,串口重定向还可以用于数据传输和远程访问。例如,将串口设备的数据重定向到网络连接,可以实现远程数据访问和控制。5.1通用串口USART/UART5.1.4串口重定向在CubeIDE工程文件夹的Core/Src子文件夹下有一个syscalls.c文件,在其中有如下两个外部函数的声明:
externint__io_putchar(intch)__attribute__((weak));
externint__io_getchar(void)__attribute__((weak));在标准C语言中,这两个函数分别由printf()和scanf()函数调用,实现字符的输出和输入,在应用程序通常用于实现程序运行过程中的人机交互,动态地输入程序运行所需的数据,或者将运行结果及时显示到屏幕上。上述函数声明中的关键字weak表示这是两个虚函数,在程序中可以使用串口数据收发函数重新修改和实现函数功能,从而实现串口重定向。5.1通用串口USART/UART以使用USART1发送为例,实现串口重定向的参考代码如下:int__io_putchar(intch){ HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,HAL_MAX_DELAY);return(ch);}注意:在程序文件中必须包含stdio.h头文件,以便能够调用printf()等函数。为了能够正确显示中文字符,需要在工程属性配置中找到C/C++Build/Settings/MCU/MPUGCCCompiler/Miscellaneous
项,在Otherflags框中输入编译选项:-fexec-charset=GBK5.1通用串口USART/UART5.1通用串口USART/UART在标准C语言中,上述两个函数分别由printf()和scanf()函数调用,实现字符的输出和输入,在应用程序通常用于实现程序运行过程中的人机交互,动态地输入程序运行所需的数据,或者将运行结果及时显示到屏幕上。程序实现在程序中可以使用串口数据收发函数重新修改和实现函数功能,从而实现MCU与PC机中的串口和串口调试助手之间的数据传送功能。5.1通用串口USART/UART注
意——为了能够在程序中使用printf()和scanf()函数,必须在文件中包含stdio.h头文件。为了在串口调试助手中正确显示中文,需要在工程属性配置中输入如下编译选项:-fexec-charset=GBK在CubeMX中必须配置启用串口,并关闭串口中断。案例要求PC机通过串口调试助手向开发板发送R、G、B字符,控制三色LED显示颜色的切换。开发板同步返回相应的提示信息。【实践案例5-2】串口重定向5.1通用串口USART/UART
CubeMX主要配置配置系统时钟;GPIO引脚PF6、PF7和PF8配置为推挽输出模式,并为设置用户标签分别设为LED_R、LED_G和LED_B,初始输出高电平,使得3个LED都熄灭;串口USART1为异步模式,所有参数取默认值,不启用串口中断。5.1通用串口USART/UART程序编写5.1通用串口USART/UART本案例要求利用串口重定向功能,通过串口调试助手向开发板上的MCU发送任意一个十六进制数n(n<0x16),MCU对1~n范围内所有的整数求累加和,并将结果显示到串口调试助手中。注意在串口调试助手中勾选选项“十六进制发送”。【照猫画虎5-2】串口重定向5.1通用串口USART/UART5.2I2C总线接口5.2.1I2C的基本概念
5.2.2STM32中的I2C接口
5.2.3HAL库中的封装和定义
【实践案例5-3】利用I2C接口实现EEPROM的读写 【照猫画虎5-3】利用I2C外设实现EEPROM的读写
5.2.1I2C的基本概念I2C总线(Inter-ICBus)是Philips公司开发的集成电路间总线,这是一个两线双向串行总线接口标准,采用这种接口标准的集成电路芯片只需要使用两条信号线,即可实现芯片之间的同步串行通信。I2C总线采用两线制连接,其中一条是数据线SDA(SerialData),另一条是时钟线SCL(SerialClock),SDA和SCL是双向的。I2C总线上所有器件的数据线都接到SDA线上,时钟线都接到SCL线上,如图5-8所示。5.2I2C总线接口5.2I2C总线接口I2C总线接口电路均为漏极或集电极开路,总线上必须有上拉电阻Rp。此外,I2C总线的外围扩展器件大都是CMOS器件,总线有足够的电流驱动能力,因此总线扩展的节点数由负载电容特性决定,I2C总线的驱动能力为400pF。主器件(主机,Master):实现传输过程的初始化、传输过程的启动和终止、发送器件地址、生成时钟信号、收发数据。从器件(从机,Slave):被主器件寻址的设备,接收地址,收发数据。发送器(Transmitter):发送数据到总线的设备,可以是主/从器件。接收器(Receiver):从总线接收数据的设备。I2C器件分类5.2I2C总线接口I2C总线上的信号5.2I2C总线接口时钟信号时钟信号一定是由主器件产生,并通过时钟线SCL进行传送。在每一个时钟周期,通过SDA线传输一位数据。I2C总线的通信速率受主器件控制,也就是取决于主器件发送时钟信号的频率或周期。由于采用串行数据传输方式,I2C总线的传输速率不是太高,在标准模式、快速模式和高速模式下数据传输速率可分别达到100Kb/s、400Kb/s和3.4Mb/s。5.2I2C总线接口器件地址
器件地址一定是由主机同时送到所有从机(称为地址广播),其格式如下:其中,可编程位决定于器件的电路连接;
方向位表示后续数据传送的方向(1:主机读;0:主机写);
固定位又称为器件类型码,用于确定器件的类型。5.2I2C总线接口总线控制信号
5.2I2C总线接口用于控制数据传输的启停和联络,主要有起始信号S、终止信号P、应答信号A和非应答信号NA等。S信号:在SCL为高电平期间,SDA上的负跳变。P信号:在SCL为高电平期间,SDA的正跳变。A信号:接收器接收到数据后,在SDA为低电平期间SCL线上的正脉冲。NA信号:主器件接收完指定个数的数据后,在SDA为高电平期间SCL线上的正脉冲,用于控制从器件释放SDA线。STM32F407内部封装了3个I2C接口I2C1、I2C2和I2C3,每个接口具有如下功能特性:挂在APB1总线上,工作时钟源最高频率为42MHz;同一接口既可用作主模式也可用作从模式;支持7位和10位器件地址;支持标准(高达100kHz)和快速(高达400kHz)两种传输模式;每个接口都可以产生收发模式、字节传输结束、I2C忙碌等标志,并可以发出多种错误标志;每个接口可以产生两个中断,即地址/数据字节传输成功中断和错误状态中断。5.2.2STM32中的I2C接口5.2I2C总线接口5.2I2C总线接口5.2I2C总线接口I2CSCL线上的时钟频率由时钟控制寄存器CCR控制。该寄存器各位的含义如图5-12所示。FS:模式选择。0:标准模式;1:快速模式。DUTY:快速模式下的占空比。0:TL/TH=2;1:TL/TH=16/9,其中TH和TL分别为SCL脉冲高低电平的时间宽度。时钟控制5.2I2C总线接口CCR[11:0]:与I2C外设的输入时钟源(PCLK1)共同决定TL和TH,从而决定SCL时钟频率fs。标准模式:TL=TH=CCR×TPCLK1,因此时钟脉冲的宽度为T=2TL=2×CCR×TPCLK1其中,TPCLK1为APB1总线时钟的周期。快速模式:DUTU为0时,TH=CCR×TPCLK1,TL=2×CCR×TPCLK1,因此时钟脉冲的宽度为
T=TH+TL=3×CCR×TPCLK1DUTY=1时,TH=9×CCR×TPCLK1,TL=16×CCR×TPCLK1,因此时钟脉冲的宽度为
T=TH+TL=15×CCR×TPCLK15.2I2C总线接口例如,假设CCR寄存器中的数据为0xc010,在RCC中配置APB1总线时钟频率为42MHz,则由0xc010的最高两位确定I2C接口工作在快速模式,占空比为16/9。再由CCR的低12位0x010=16求得SCL脉冲高低电平的宽度分别为TH=9×CCR×TPCLK1=9×16/42M
3.4286us
TL=16×CCR×TPCLK1=16×16/42M
6.0952usSCL时钟脉冲的频率为
fs=1/(TH+TL)
105kHz5.2I2C总线接口负责控制数据的串行数据传送。当向外发送数据时,数据移位寄存器将数据寄存器中的数据逐位通过SDA信号线发送出去;当从外部接收数据时,数据移位寄存器将SDA信号线采样到的数据逐位存入数据寄存器中。若使能了数据校验,接收到的数据会经过PEC(包错误校验)计算器运算,运算结果存储在PEC寄存器中。数据控制逻辑5.2I2C总线接口整体控制逻辑负责协调整个I2C外设,控制逻辑的工作模式根据控制寄存器(CR1/CR2)配置的参数而改变。在外设工作时,控制逻辑会根据外设的工作状态修改状态寄存器(SR1和SR2),只要读取这些寄存器相关的寄存器位,就可以了解I2C的工作状态。除此之外,控制逻辑还根据要求,负责控制产生I2C中断信号、DMA请求及各种I2C的通讯信号(起始、停止、响应信号等)。整体控制逻辑I2C总线的数据传输过程5.2I2C总线接口5.2I2C总线接口在图(c)中,两次数据传送的方向是相反的。但是在切换数据传送的方向时,主器件不必发送P信号停止前一次数据传送,而是再一次发送起始信号和器件地址,并立即启动第二次数据传送,只是前后两次发送的器件地址中方向位相反。I2C总线在已经处于忙(没有发送P信号)的状态下,再一次发送起始信号,启动新一次数据传送,这种起始信号称为重复起始信号Sr。在进行多字节数据传输过程中,只要数据的收发方向需要发生切换,就必须发送重复起始信号,而不用发送P信号。I2C相关结构体的定义5.2I2C总线接口5.2.3HAL库中的封装和定义5.2I2C总线接口5.2I2C总线接口5.2I2C总线接口
双地址模式和寻址模式一般情况下,一个I2C器件具有一个器件地址,并且只有7位(另外再附加一位方向位)。如果同一I2C总线上连接的I2C器件较多,可以采用10位地址模式。在这种模式下,器件地址扩展为10位,每次数据传输时,主器件需要发送两帧地址数据。双地址模式适用于需要连接多个具有不同地址从设备的情况,允许I2C接口响应两个不同的从设备地址。在双地址模式下,可以配置两个从设备地址OwnAddress1和OwnAddress2,主设备发送其中任何一个地址都可以实现从设备的寻址。I2C接口外设的初始化5.2I2C总线接口以I2C1外设为例。I2C常用操作函数(stm32f4xx_hal_i2c.c)5.2I2C总线接口5.2I2C总线接口应用举例:采用I2C1接口将数据缓冲区buf中的100个字节数据写入某存储器芯片中地址为0x10的单元开始,已知存储器的器件地址为0xa0:
HAL_I2C_Mem_Write(&hi2c1,0xa0,0x10,1,buf,100,HAL_MAX_DELAY);也可以通过循环语句实现,相关代码如下:uint8_ti;uint8_t*pbuf;uint8_trAdrr; pbuf=buf; //数据缓冲区指针
rAdrr=0x10; //起始单元地址for(i=0;i<100;i++){HAL_I2C_Mem_Write(&hi2c1,0xa0,rAd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 龙子湖区2025届四年级数学第二学期期末检测模拟试题(含解析)
- 黔西南布依族苗族自治州册亨县2025届数学三年级下学期期末质量检测模拟试题含答案解析
- 黑龙江省齐齐哈尔市梅里斯达斡尔族区2025届三年级数学第二学期期末综合测试试题含答案解析
- 黑龙江省黑河市嫩江市墨尔根小学2025年数学四年级第二学期期中预测试题含答案解析
- 2025广东河源市龙川融和村镇银行招聘笔试历年典型考题及考点剖析附带答案详解
- 2025广东惠州市博罗县建工集团有限公司及下属子公司拟聘用人员笔试历年难易错考点试卷带答案解析
- 2025广东广州农商行信息与系统管理岗社招笔试历年典型考题及考点剖析附带答案详解
- 2025广东云浮市云创源投资控股有限公司招聘网络工程部经理1人笔试历年备考题库附带答案详解
- 2025年福建晋江市坊源生态科技有限公司招聘37人笔试历年备考题库附带答案详解
- 2025年甘肃农信校园招聘统一笔试笔试历年典型考题及考点剖析附带答案详解
- 2026郑州市新初一三科分班摸底卷摸底卷
- 2026年渭南市大荔县数学三下期末统考模拟试题含答案
- 2025年安徽省信用融资担保集团有限公司招聘17人笔试模拟试题及答案
- 雨水井安全管理制度
- 房地产估价制度与政策知识点模板
- 2025年邮储蓄银行春招笔试及答案
- 规范住院病案首页数据填报工作指南 (2022版)
- 雨水检查井施工验收标准
- 感统培训课件
- 建筑方案设计合理化建议
- 2025年急诊医学重症抢救能力检测考卷答案及解析
评论
0/150
提交评论