版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
GPIO输出GPIO是什么GPIO(generalpurposeintputoutput)是通用输入输出端口的简称,可以通过软件来控制其输入和输出。STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。山东师范大学信息科学与工程学院GPIO基本结构山东师范大学信息科学与工程学院GPIO工作模式1、输入浮空2、输入上拉3、输入下拉4、模拟输入5、开漏输出6、推挽输出7、推挽式复用功能8、开漏复用功能山东师范大学信息科学与工程学院GPIO端口寄存器STM32的每个IO端口都有7个寄存器来控制。分别是:配置模式的2个32位的端口配置寄存器
CRL和CRH;
2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;1个16位的复位寄存器BRR;
1个32位的锁存寄存器LCKR;我们常用的IO端口寄存器只有4个:CRL、CRH、IDR、ODR。山东师范大学信息科学与工程学院举例:GPIO端口配置寄存器CRL山东师范大学信息科学与工程学院该寄存器的复位值为0X44444444,从左侧图可以看到,复位值其实就是配置端口为浮空输入模式。十六进制4转换为二进制为0100硬件分析山东师范大学信息科学与工程学院硬件分析LED1对应的芯片引脚是PE7,LED2对应的芯片引脚是PE6,……如果需要点亮某个LED灯,则需要对应的端口引脚置低位输出低电平。如果需要熄灭某个LED灯,则需要对应的端口引脚置高位输出高电平。山东师范大学信息科学与工程学院HAL库开发配置GPIO在HAL库开发中,初始化GPIO是通过GPIO初始化函数完成。GPIO_Initure.Pin=GPIO_PIN_7;//PE7GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;//推挽输出GPIO_Initure.Pull=GPIO_PULLUP;//上拉GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;//高速HAL_GPIO_Init(GPIOE,&GPIO_Initure);山东师范大学信息科学与工程学院HAL库开发GPIO山东师范大学信息科学与工程学院ST公司提供的HAL库中,与GPIO配置及使用有关的函数在“stm32f1xx_hal_gpio.c”和“stm32f1xx_hal_gpio.h”中。其中包括初始化和反初始化函数:HAL_GPIO_Init();HAL_GPIO_DeInit();IO端口操作函数:HAL_GPIO_ReadPin(in);HAL_GPIO_WritePin();HAL_GPIO_TogglePin();HAL_GPIO_LockPin();HAL_GPIO_EXTI_IRQHandler();HAL_GPIO_EXTI_Callback();函数的具体定义与功能,请参考函数定义处源码说明。按照书中指导进行练习要求:通过对STM32的GPIO的配置,实现LED1至LED8的循环点亮功能。了解掌握书中程序下载方法的一和三。山东师范大学信息科学与工程学院KEIL软件工具栏说明山东师范大学信息科学与工程学院KEIL软件工具栏说明山东师范大学信息科学与工程学院KEIL软件工具栏说明山东师范大学信息科学与工程学院按照书中指导进行练习要求:通过对STM32的GPIO的配置,实现LED1至LED8的循环点亮功能。了解掌握书中程序下载方法的一和三。山东师范大学信息科学与工程学院STM32CubeMx使用1.双击打开软件,软件图标为:2.打开后界面如右图所示:山东师范大学信息科学与工程学院STM32CubeMx使用山东师范大学信息科学与工程学院3.点击FileNewProject,进入MCU选择界面STM32CubeMx使用山东师范大学信息科学与工程学院4.在MCU/MPUSelector界面的左上角搜索框内,输入MCU型号,本例使用的是STM32F103VET6型号,所以输入STM32F103VE,右下角的MCU列表中就会筛选出一些型号,左键选择正确的型号。选取好型号后,右上角的StartProject图标就会变成蓝色,点击进入下一步。STM32CubeMx使用山东师范大学信息科学与工程学院5.在新打开的界面中,在Pinout&Configuration标签下,左键点击Categories->SystemCore->RCC,点击后,右侧出现RCCModeandConfiguration框,在Mode里的HighSpeedClock(HSE)右侧的下拉框中,选择“Crystal****”STM32CubeMx使用山东师范大学信息科学与工程学院6.在界面右侧的芯片图形化界面中,找到需要设置的管脚(如PE0,PE1),鼠标左键点击该管脚,在弹出的界面中,设置好参数(鼠标左键单击需要设置的值)。本例中,将PE0和PE1均设置为普通IO口输出模式。6.在界面右侧的芯片图形化界面中,找到需要设置的管脚(如PE0,PE1),鼠标左键点击该管脚,在弹出的界面中,设置好参数。设置参数的管脚在图形中会变成绿色。STM32CubeMx使用山东师范大学信息科学与工程学院7.在GPIOModeandConfiguration栏中,可以看见刚刚完成配置的PE0和PE1。选中一行,即可进行更改。
本例中,鼠标左键选中PE0行,下方出现参数配置内容,如右图所示。根据需要修改参数即可。其中最后一行“UserLabel”为“用户标签”,选填。如果填写,会有相应的宏定义改变。本例中,将PE0的标签设置为LED8,与硬件电路对应。STM32CubeMx使用山东师范大学信息科学与工程学院8.ClockConfigurationSTM32CubeMx使用山东师范大学信息科学与工程学院9.ProjectManager根据需要,填写工程名字,工程保存路径(不要出现中文及特殊符号,尽量全英文)“Toolchain/IDE”选择MDK-ARMV5因为本课程的实验资源安装的固件库是1.8.0版本,所以选择1.8.0,并取消“Uselatestavailableversion”前面的勾选。取消”UseDefaultFirewareLocation”前面的勾选。并在下方的框中选择正确的路径。(请根据实际情况填写/选择)STM32CubeMx使用山东师范大学信息科学与工程学院3.点击工具右上角的“GENERATECODE”按钮。等待系统完成设置,生成对应工程。GPIO输入GPIO是什么GPIO(generalpurposeintputoutput)是通用输入输出端口的简称,可以通过软件来控制其输入和输出。STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。山东师范大学信息科学与工程学院GPIO基本结构山东师范大学信息科学与工程学院GPIO工作模式1、输入浮空2、输入上拉3、输入下拉4、模拟输入5、开漏输出6、推挽输出7、推挽式复用功能8、开漏复用功能山东师范大学信息科学与工程学院GPIO端口寄存器STM32的每个IO端口都有7个寄存器来控制。分别是:配置模式的2个32位的端口配置寄存器
CRL和CRH;
2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;1个16位的复位寄存器BRR;
1个32位的锁存寄存器LCKR;我们常用的IO端口寄存器只有4个:CRL、CRH、IDR、ODR。山东师范大学信息科学与工程学院举例:GPIO端口配置寄存器CRL山东师范大学信息科学与工程学院该寄存器的复位值为0X44444444,从左侧图可以看到,复位值其实就是配置端口为浮空输入模式。十六进制4转换为二进制为0100硬件分析山东师范大学信息科学与工程学院HAL库开发GPIO山东师范大学信息科学与工程学院ST公司提供的HAL库中,与GPIO配置及使用有关的函数在“stm32f1xx_hal_gpio.c”和“stm32f1xx_hal_gpio.h”中。其中包括初始化和反初始化函数:HAL_GPIO_Init();HAL_GPIO_DeInit();IO端口操作函数:HAL_GPIO_ReadPin();HAL_GPIO_WritePin();HAL_GPIO_TogglePin();HAL_GPIO_LockPin();HAL_GPIO_EXTI_IRQHandler();HAL_GPIO_EXTI_Callback();函数的具体定义与功能,请参考函数定义处源码说明。硬件分析KEY1对应的芯片引脚是PC13,KEY2对应的芯片引脚是PD13。
按键没被按下时,引脚处于高电平状态。按键被按下时,引脚处于低电平状态。利用函数HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)来获取PC13引脚的电平状态,进而判断KEY1按键是否被按下。山东师范大学信息科学与工程学院按键抖动山东师范大学信息科学与工程学院STM32CubeMx使用1.双击打开软件,软件图标为:2.打开后界面如右图所示:山东师范大学信息科学与工程学院STM32CubeMx使用山东师范大学信息科学与工程学院3.点击FileNewProject,进入MCU选择界面STM32CubeMx使用山东师范大学信息科学与工程学院4.在MCU/MPUSelector界面的左上角搜索框内,输入MCU型号,本例使用的是STM32F103VET6型号,所以输入STM32F103VE,右下角的MCU列表中就会筛选出一些型号,左键选择正确的型号。选取好型号后,右上角的StartProject图标就会变成蓝色,点击进入下一步。STM32CubeMx使用山东师范大学信息科学与工程学院5.在新打开的界面中,在Pinout&Configuration标签下,左键点击Categories->SystemCore->RCC,点击后,右侧出现RCCModeandConfiguration框,在Mode里的HighSpeedClock(HSE)右侧的下拉框中,选择“Crystal****”STM32CubeMx使用山东师范大学信息科学与工程学院6.在界面右侧的芯片图形化界面中,找到需要设置的管脚(如PE0,PE1),鼠标左键点击该管脚,在弹出的界面中,设置好参数(鼠标左键单击需要设置的值)。本例中,将PE0和PE1均设置为普通IO口输出模式。设置参数的管脚在图形中会变成绿色。STM32CubeMx使用山东师范大学信息科学与工程学院7.在GPIOModeandConfiguration栏中,可以看见刚刚完成配置的PE0和PE1。选中一行,即可进行更改。
本例中,鼠标左键选中PE0行,下方出现参数配置内容,如右图所示。根据需要修改参数即可。其中最后一行“UserLabel”为“用户标签”,选填。如果填写,会有相应的宏定义改变。本例中,将PE0的标签设置为LED8,与硬件电路对应。STM32CubeMx使用山东师范大学信息科学与工程学院8.在界面右侧的芯片图形化界面中,找到需要设置的管脚(如PC13,PD13),鼠标左键点击该管脚,在弹出的界面中,设置好参数(鼠标左键单击需要设置的值)。本例中,将PC13和PD13均设置为普通IO口输入模式。STM32CubeMx使用山东师范大学信息科学与工程学院9.在GPIOModeandConfiguration栏中,可以看见刚刚完成配置的PE0.PE1.PC13,PD13。选中一行,即可进行更改。
STM32CubeMx使用山东师范大学信息科学与工程学院10.ClockConfigurationSTM32CubeMx使用山东师范大学信息科学与工程学院11.ProjectManager根据需要,填写工程名字,工程保存路径(不要出现中文及特殊符号,尽量全英文)“Toolchain/IDE”选择MDK-ARMV5因为本课程的实验资源安装的固件库是1.8.0版本,所以选择1.8.0,并取消“Uselatestavailableversion”前面的勾选。取消”UseDefaultFirewareLocation”前面的勾选。并在下方的框中选择正确的路径。(请根据实际情况填写/选择)STM32CubeMx使用山东师范大学信息科学与工程学院12.点击工具右上角的“GENERATECODE”按钮。等待系统完成设置,生成对应工程。代码部分山东师范大学信息科学与工程学院外部中断什么是中断计算机在执行某一程序的过程中,由于自身系统之外的原因,有必要尽快中止当前程序的运行,而去执行相应的处理程序,待处理程序结束后,再返回继续执行被中止的那个程序。这种某一程序在执行过程中由于外界的原因,中间被打断的情况称为“中断”。能够打断当前程序的外部事件,被称为中断源。山东师范大学信息科学与工程学院什么是中断一个计算机一般具有多个中断源,这就存在中断优先级和中断嵌套的问题。能够打断当前程序的外部事件,被称为中断源。山东师范大学信息科学与工程学院基本知识STM32的中断有两种优先级:1、抢占式优先级2、响应式优先级。每一个中断源都必须定义2个优先级。每一个中断都有一个专门的寄存器来描述该中断的抢占式优先级和响应式优先级。山东师范大学信息科学与工程学院基本知识第0组:所有4位用于指定响应式优先级;(最高0位用于指定抢占式优先级)第1组:最高1位用于指定抢占式优先级,后面3位用于指定响应式优先级;第2组:最高2位用于指定抢占式优先级,后面2位用于指定响应式优先级;第3组:最高3位用于指定抢占式优先级,后面1位用于指定响应式优先级;第4组:所有4位用于指定抢占式优先级。
(数值越小,优先级越高)山东师范大学信息科学与工程学院Stm32外部中断STM32F103的19个外部中断为:
①EXTI线0~15:对应外部IO口的输入中断。
②EXTI线16:连接到PVD输出。
③EXTI线17:连接到RTC闹钟事件。
④EXTI线18:连接到USB唤醒事件。山东师范大学信息科学与工程学院Stm32外部中断STM32中,每一个GPIO都可以作为外部中断触发的引脚,但是,GPIO的中断是以组为单位的,同组间的外部中断同一时间只能使用一个。山东师范大学信息科学与工程学院Stm32外部中断触发方式:STM32的外部中断是通过边沿来触发的。每一组使用一个中断标志EXTIx。EXTI0–EXTI4这5个外部中断有自己的单独的中断响应函数,EXTI5-9共用一个中断响应函数,EXTI10-15共用一个中断响应函数。山东师范大学信息科学与工程学院中断配置步骤1、初始化IO口为输入。2、开启IO口复用时钟,设置IO口与中断线的映射关系。3、开启与该IO口相对的线上中断/事件,设置触发条件。4、配置中断分组(NVIC),并使能中断。5、编写中断服务函数。山东师范大学信息科学与工程学院中断过程简述EXTI15_10_IRQHandler(void)HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13)HAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin)山东师范大学信息科学与工程学院中断过程简述voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin){ switch(GPIO_Pin) { caseGPIO_PIN_13: flag=1; break; default: break; }}山东师范大学信息科学与工程学院硬件分析山东师范大学信息科学与工程学院STM32CubeMx使用山东师范大学信息科学与工程学院STM32CubeMx使用山东师范大学信息科学与工程学院STM32CubeMx使用山东师范大学信息科学与工程学院ClockConfiguration串口串口基础嵌入式开发中,UART串口通信协议是我们常用的通信协议(UART、I2C、SPI等)之一,全称叫做通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter),是异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。山东师范大学信息科学与工程学院串口通信设备之间的通信方式可以分为两种,一种是并行通信,另一种是串行通信。山东师范大学信息科学与工程学院并行通信串行通信传输原理数据各个位同时传输数据位按顺序传输优点速度快占用引脚资源少缺点占用引脚资源多速度相对较慢串口通信山东师范大学信息科学与工程学院单工:数据的传输是单向的。半双工:允许数据在两个方向上传输。但是,在某一个时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信。全双工:允许数据同时在两个方向上传输。按照数据传送方向,可以分为单工、半双工、全双工。串口通信山东师范大学信息科学与工程学院按照通信方式,分为:同步通信:带时钟同步信号传输。比如:SPI,IIC通信接口。异步通信:不带时钟同步信号。比如:UART(通用异步收发器),单总线。在同步通信中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。串口通信山东师范大学信息科学与工程学院单工:半双工:全双工:串口通信山东师范大学信息科学与工程学院通信标准引脚说明通信方式通信方向UARTTXD:发送RXD:接收GND:共地异步通信全双工SPISCK:同步时钟MISO:主机输入,从机输出MOSI:主机输出,从机输入同步通信全双工IICSCK:同步时钟SDA:数据输入/输出端同步通信半双工串口通信山东师范大学信息科学与工程学院串口通信山东师范大学信息科学与工程学院电路图山东师范大学信息科学与工程学院CubeMX配置山东师范大学信息科学与工程学院CubeMX配置山东师范大学信息科学与工程学院串口山东师范大学信息科学与工程学院串口的发送接收函数:HAL_UART_Transmit();串口轮询模式发送,使用超时管理机制。HAL_UART_Receive();串口轮询模式接收,使用超时管理机制。HAL_UART_Transmit_IT();串口中断模式发送,HAL_UART_Receive_IT();串口中断模式接收HAL_UART_Transmit_DMA();串口DMA模式发送HAL_UART_Receive_DMA();串口DMA模式接收
串口山东师范大学信息科学与工程学院串口相关的中断函数:HAL_UART_TxHalfCpltCallback():一半数据(half
transfer)发送完成后,通过中断处理函数调用。HAL_UART_TxCpltCallback():发送完成后,通过中断处理函数调用。HAL_UART_RxHalfCpltCallback():一半数据(half
transfer)接收完成后,通过中断处理函数调用。HAL_UART_RxCpltCallback():接收完成后,通过中断处理函数调用。HAL_UART_ErrorCallback():传输过程中出现错误时,通过中断处理函数调用。
串口中断过程山东师范大学信息科学与工程学院
USART1_IRQHandler(void)HAL_UART_IRQHandler(&huart1)HAL_UART_RxCpltCallback()串口中断过程山东师范大学信息科学与工程学院
DMADMA概念DMA(DirectMemoryAccess,直接存储器访问)这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据。整个数据传输操作在一个称为"DMA控制器"的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外(开始和结束时候要做中断处理),在传输过程中CPU可以进行其他的工作(前提是未设置停止CPU访问)。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。
山东师范大学信息科学与工程学院应用场景DMA方式主要适用于一些高速的I/O设备。这些设备传输字节或字的速度非常快。对于这类高速I/O设备,如果用输入输出指令或采用中断的方法来传输字节信息,会大量占用CPU的时间,同时也容易造成数据的丢失。而DMA方式能使I/O设备直接和存储器进行成批数据的快速传送。山东师范大学信息科学与工程学院DMA传输类型山东师范大学信息科学与工程学院1、两个设备之间;2、设备和内存之间;(多数情况下,DMAC进行的是外设接口和内存之间的传输。)3、内存和内存之间。DMA技术缺点山东师范大学信息科学与工程学院DMA技术的弊端DMA传送的优点是以增加系统硬件的复杂性和成本为代价的,因为DMA是用硬件控制代替软件控制的。另外,DMA传送期间CPU被挂起,部分或完全失去对系统总线的控制,这可能会影响CPU对中断请求的及时响应与处理。
因此,在一些小系统或速度要求不高、数据传输量不大的系统中,一般并不用DMA方式。因为DMA允许外设直接访问内存,从而形成对总线的独占。这在实时性强的硬实时系统嵌入式开发中将会造成中断延时过长。DMA参数山东师范大学信息科学与工程学院传输模式:数据传输的方向有三个(存储器到外设、外设到存储器、
存储器到存储器)通道选择:数据传输走哪条路仲裁器:多个DMA进行传输时,优先级高的先传输数据长度:每次传输的数据长度(1个字节、2个字节、4个字节)指针递增:使能此模式侯,则下次传输的地址将是前一次传输的地址
递增1【注意这个1的含义的理解】CubeMX配置DMA(USART1举例)山东师范大学信息科学与工程学院1.添加串口及中断CubeMX配置DMA山东师范大学信息科学与工程学院CubeMX配置DMA山东师范大学信息科学与工程学院CubeMX配置DMA山东师范大学信息科学与工程学院CubeMX配置DMA山东师范大学信息科学与工程学院编写代码山东师范大学信息科学与工程学院//usart.c和usart.h中#defineUSART1_DMA_TX_SIZE200uint8_tUSART1_DMA_TX_BUFFER[USART1_DMA_TX_SIZE];#defineUSART1_DMA_RX_SIZE200uint8_tUSART1_DMA_RX_BUFFER[USART1_DMA_RX_SIZE];volatileuint8_tDMA_usart1_Rx_Size;volatileuint8_tDMA_usart1_Rx_Flag=0;volatileuint8_tDMA_usart1_Tx_Flag=1;编写代码山东师范大学信息科学与工程学院//main.c中voidInitXXX(void){//使能IDLE中断
__HAL_UART_ENABLE_IT(&huart1,UART_IT_IDLE);//使能IDLE中断
//打开DMA接收,数据存入USART1_DMA_RX_BUFFER数组中
HAL_UART_Receive_DMA(&huart1,USART1_DMA_RX_BUFFER,USART1_DMA_RX_SIZE);}【在main函数的主循环之前,调用此函数,使能串口空闲中断,打开DMA接收】编写代码山东师范大学信息科学与工程学院//stm32f1xx_it.c中voidUSART1_IRQHandler(void){if(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE)!=RESET){__HAL_UART_CLEAR_IDLEFLAG(&huart1);DMA_usart1_Rx_Size=USART1_DMA_RX_SIZE-__HAL_DMA_GET_COUNTER(&hdma_usart1_rx);HAL_UART_DMAStop(&huart1);for(uint8_tk=0;k<DMA_usart1_Rx_Size;k++){USART_RX_BUF[k]=USART1_DMA_RX_BUFFER[k];}DMA_usart1_Rx_Flag=1;HAL_UART_Receive_DMA(&huart1,USART1_DMA_RX_BUFFER,USART1_DMA_RX_SIZE);}HAL_UART_IRQHandler(&huart1);}编写代码山东师范大学信息科学与工程学院//usart.c中voidUSER_DMA_send(uint8_t*buf,uint8_tlen){ if(1==DMA_usart1_Tx_Flag) { HAL_UART_Transmit_DMA(&huart1,buf,len); DMA_usart1_Tx_Flag=0; }}编写代码山东师范大学信息科学与工程学院//stm32f1xx_it.c中voidDMA1_Channel4_IRQHandler(void){if(__HAL_DMA_GET_FLAG(&hdma_usart1_tx,DMA_FLAG_TC4)!=RESET){__HAL_DMA_CLEAR_FLAG(&hdma_usart1_tx,DMA_FLAG_TC4);
DMA_usart1_Tx_Flag=1;
}if(__HAL_DMA_GET_FLAG(&hdma_usart1_tx,DMA_FLAG_HT4)!=RESET){__HAL_DMA_CLEAR_FLAG(&hdma_usart1_tx,DMA_FLAG_HT4);}if(__HAL_DMA_GET_FLAG(&hdma_usart1_tx,DMA_FLAG_TE4)!=RESET){__HAL_DMA_CLEAR_FLAG(&hdma_usart1_tx,DMA_FLAG_TE4);}
HAL_DMA_IRQHandler(&hdma_usart1_tx);}编写代码山东师范大学信息科学与工程学院//main.c中,main函数的while(1)循环中if(DMA_usart1_Rx_Flag==1){DMA_usart1_Rx_Flag=0; len=DMA_usart1_Rx_Size;//可添加自己的处理代码for(uint8_tm=0;m<len;m++){USART1_DMA_TX_BUFFER[m]=USART_RX_BUF[m];}USER_DMA_send(USART1_DMA_TX_BUFFER,len);}定时器定时器stm32f103VE型号MCU共有8个定时器,编号为TIM1--TIM8,其中包括2个高级控制定时器、4个通用定时器和2个基本定时器。山东师范大学信息科学与工程学院定时器类型定时器编号计数器位数计数器类型捕获/比较通道数挂载总线/接口时钟定时器时钟高级控制定时器TIM1、TIM816位向上、向下、向上/向下4APB2/72MHz72MHz通用定时器TIM2、TIM3TIM4、TIM516位向上、向下、向上/向下4APB1/36MHz72MHz基本定时器TIM6、TIM716位向上无APB1/36MHz72MHz定时器山东师范大学信息科学与工程学院用于独立时间计时功能,当定时时间到时,可产生“定时器中断”。定时器的寄存器计数器寄存器(TIMx_CNT)预分频器寄存器(TIMx_PSC)自动重载寄存器(TIMx_ARR)山东师范大学信息科学与工程学院定时器山东师范大学信息科学与工程学院定时器发生中断时间的计算方法定时器时钟频率为72M分频系数Prescaler=71重装载值Arr=999计算定时时间为(71+1)*(999+1)/72000000=0.001秒山东师范大学信息科学与工程学院定时时间=
(Prescaler+1)*(CounterPeriod+1)/定时器时钟频率实现功能山东师范大学信息科学与工程学院实现LED1—LED4的闪烁,闪烁周期精准,可调(重新编写程序实现)请考虑需要设置定时器的哪些参数?STM32CubeMx使用1.双击打开软件,软件图标为:2.打开后界面如右图所示:山东师范大学信息科学与工程学院STM32CubeMx使用山东师范大学信息科学与工程学院3.点击FileNewProject,进入MCU选择界面STM32CubeMx使用山东师范大学信息科学与工程学院4.在MCU/MPUSelector界面的左上角搜索框内,输入MCU型号,本例使用的是STM32F103VET6型号,所以输入STM32F103VE,右下角的MCU列表中就会筛选出一些型号,左键选择正确的型号。选取好型号后,右上角的StartProject图标就会变成蓝色,点击进入下一步。STM32CubeMx使用山东师范大学信息科学与工程学院5.在新打开的界面中,在Pinout&Configuration标签下,左键点击Categories->SystemCore->RCC,点击后,右侧出现RCCModeandConfiguration框,在Mode里的HighSpeedClock(HSE)右侧的下拉框中,选择“Crystal****”STM32CubeMx使用山东师范大学信息科学与工程学院6.在界面右侧的芯片图形化界面中,找到需要设置的管脚(如PE0,PE1),鼠标左键点击该管脚,在弹出的界面中,设置好参数(鼠标左键单击需要设置的值)。本例中,将PE0和PE1均设置为普通IO口输出模式。设置参数的管脚在图形中会变成绿色。STM32CubeMx使用山东师范大学信息科学与工程学院7.在GPIOModeandConfiguration栏中,可以看见刚刚完成配置的PE0和PE1。选中一行,即可进行更改。
本例中,鼠标左键选中PE0行,下方出现参数配置内容,如右图所示。根据需要修改参数即可。其中最后一行“UserLabel”为“用户标签”,选填。如果填写,会有相应的宏定义改变。本例中,将PE0的标签设置为LED8,与硬件电路对应。STM32CubeMx使用山东师范大学信息科学与工程学院8.在界面右侧的芯片图形化界面中,找到需要设置的管脚(如PC13,PD13),鼠标左键点击该管脚,在弹出的界面中,设置好参数(鼠标左键单击需要设置的值)。本例中,将PC13和PD13均设置为普通IO口输入模式。STM32CubeMx使用山东师范大学信息科学与工程学院9.在GPIOModeandConfiguration栏中,可以看见刚刚完成配置的PE0.PE1.PC13,PD13。选中一行,即可进行更改。
STM32CubeMx使用山东师范大学信息科学与工程学院10.
STM32CubeMx使用山东师范大学信息科学与工程学院11STM32CubeMx使用山东师范大学信息科学与工程学院12.
STM32CubeMx使用山东师范大学信息科学与工程学院13.ClockConfigurationSTM32CubeMx使用山东师范大学信息科学与工程学院14.ProjectManager根据需要,填写工程名字,工程保存路径(不要出现中文及特殊符号,尽量全英文)“Toolchain/IDE”选择MDK-ARMV5因为本课程的实验资源安装的固件库是1.8.0版本,所以选择1.8.0,并取消“Uselatestavailableversion”前面的勾选。取消”UseDefaultFirewareLocation”前面的勾选。并在下方的框中选择正确的路径。(请根据实际情况填写/选择)STM32CubeMx使用山东师范大学信息科学与工程学院15.点击工具右上角的“GENERATECODE”按钮。等待系统完成设置,生成对应工程。代码编写山东师范大学信息科学与工程学院代码编写山东师范大学信息科学与工程学院//tim.c中voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef*htim){
if(htim->Instance==TIM1){
HAL_GPIO_TogglePin(GPIOE,LED1_Pin);}}代码编写山东师范大学信息科学与工程学院//main.c中voidInitXXX(void){……HAL_TIM_Base_Start_IT(&htim1);//开启定时器1}PWM任务要求本任务要求设计一个可通过定时器进行控制的呼吸灯系统,具体要求如下:LED9灯的显示效果为“逐渐变亮”然后“逐渐变暗”(重复此过程)山东师范大学信息科学与工程学院设计思路山东师范大学信息科学与工程学院想一想,在中学物理课程中,调整灯泡的亮度,咱们怎么实现?在传统的模拟控制灯亮度调整中,可以采用一个可变电阻。调整电阻值变大或变小;流经这个电阻的电流也随之增加或减少,从而改变了LED的电流值,使灯泡的亮度相应变大或变小。设计思路—模拟电路部分缺点尽管模拟控制看起来可能直观而简单,但它并不总是非常经济或可行的。(不适用我们STM32开发)1.模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常庞大、笨重(如老式的家庭立体声设备)和昂贵。2.模拟电路还有可能严重发热,其功耗相对于工作元件两端电压与电流的乘积成正比。3.模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流值的大小。山东师范大学信息科学与工程学院设计思路山东师范大学信息科学与工程学院调整亮的时间比例实现灯亮度的逐步控制设计思路山东师范大学信息科学与工程学院PWM是PulseWidthModulation的缩写,中文意思就是脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信,功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些音频放大器,因此学习PWM具有十分重要的现实意义。实现功能山东师范大学信息科学与工程学院实现LED9的呼吸灯效果!
这里面的脉冲宽度即在一个周期内输出高电平的时间与整个周期的比值,也叫占空比。设计思路山东师范大学信息科学与工程学院用PWM技术实现模拟信号:若调制信号的频率远远大于信号接受者的分辨率,则接收者并不能感知数字信号的0和1,它获得的是信号的平均效果,平均值与占空比成有关(正比关系)。
PWM采用调整脉冲占空比的方式达到调整电压与电流的效果。如:在1ms内,高电平占0.3ms,低电平占0.7ms。LED灯通电0.3ms,断电0.7ms,这样的脉冲占空比为30%。PWM工作模式山东师范大学信息科学与工程学院常用的PWM模式有以下两种:PWM1模式山东师范大学信息科学与工程学院常用的PWM模式有以下两种:PWM信号的生成样式与计数器寄存器(TIMx_CNT)、自动重载寄存器(TIMx_ARR)、捕获/比较寄存器(TIMx_CCRy)PWM2模式山东师范大学信息科学与工程学院常用的PWM模式有以下两种:PWM信号的生成样式与计数器寄存器(TIMx_CNT)、自动重载寄存器(TIMx_ARR)、捕获/比较寄存器(TIMx_CCRy)PWM占空比调节图山东师范大学信息科学与工程学院PWM输出频率是不变的,改变的是CCR寄存器内的值,此值的改变将导致PWM输出信号占空比的改变。选择呼吸灯对应的定时器山东师范大学信息科学与工程学院实现呼吸灯流程分析山东师范大学信息科学与工程学院2.默认PWM的输出功能时关闭的,需要调用函数开启。HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_3);(开启)HAL_TIM_PWM_Stop(&htim4,TIM_CHANNEL_3);(停止)1.使用CubeMX软件对定时器4通道3进行初始化配置。(PB8对应TIM4_CH3)3.主循环中,编写程序控制PWM输出信号的占空比STM32CubeMX配置山东师范大学信息科学与工程学院打开最左侧的Timers选项,在其内部选项中,点击TIM4。在中间列,“TIME4MODEandConfiguration”中,Mode参数作如下设置:ClockSource:InternalClockChannel3:PWMGenerationCH3STM32CubeMX配置山东师范大学信息科学与工程学院“TIME4MODEandConfiguration”中,Configuration中参数作如下设置:Prescaler:72-1
CounterMode:Up
CounterPeriod:500-1auto-reloadpreload:EnablePWMGenerationChannel3中,Mode:PWMmode1Pulse:100CHPolarity:Low代码山东师范大学信息科学与工程学院在初始化函数中调用HAL_TIM_PWM_Start()函数代码山东师范大学信息科学与工程学院voidTIM_SetTIM4Compare3(uint32_tcompare){ TIM4->CCR3=compare;}定时器4通道三占空比值(灯的亮度值)代码山东师范大学信息科学与工程学院while(1){HAL_Delay(5);if(dir)led9pwmval++;elseled9pwmval--;if(led9pwmval>360)dir=0;if(led9pwmval==0)dir=1;TIM4->CCR3=led9pwmval;}500T11003000T2TIM4_ARR的值TIM4_CNT的值TIM4_CCR3的值PWM1模式有效电平为低
uint8_tdir=1; uint16_tled9pwmval=0;代码山东师范大学信息科学与工程学院while(1){HAL_Delay(5);if(dir)led9pwmval++;elseled9pwmval--;if(led9pwmval>360)dir=0;if(led9pwmval==0)dir=1;TIM4->CCR3=led9pwmval;}500T11003000T2TIM4_ARR的值TIM4_CNT的值TIM4_CCR3的值PWM1模式有效电平为低
uint8_tdir=1; uint16_tled9pwmval=0;实践山东师范大学信息科学与工程学院无源蜂鸣器:PA8对应的是定时器1通道1用4000、2000、1000HZ的方波进行驱动。HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);期中实践任务要求山东师范大学信息科学与工程学院1.LED1-LED8总共8个LED灯,开发板上电后,LED1,LED3,LED5,LED7是点亮状态,LED2,LED4,LED6,LED8是熄灭状态。2.按下KEY2按键一次,8个LED灯的状态反转一次。3.配置无源蜂鸣器的驱动波形为2000HZ的方波。4.通过串口线与开发板相连,PC端使用“串口调试助手软件”来接收、发送数据。当发送指令#cmd1时,蜂鸣器开始发声;#cmd2时,蜂鸣器停止发声;5.请在给出的工程基础上,继续完善代码,实现以上4个要求。6.本节课需要填写实验报告。电路图山东师范大学信息科学与工程学院LED1-LED8电路图电路图山东师范大学信息科学与工程学院按键KEY2电路图电路图山东师范大学信息科学与工程学院无源蜂鸣器电路图PA8对应的是高级定时器1的通道1用2000HZ频率的方波驱动蜂鸣器发声。HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);RS-485通信应用开发1.总线概述总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线。(公路)当总线被引入嵌入式系统领域后,它主要用于嵌入式系统的芯片级、板级和设备级的互连。山东师范大学信息科学与工程学院在总线的发展过程中,有多种分类方式。一是按照传输速率分类:可分为低速总线和高速总线。二是按照连接类型分类:可分为系统总线、外设总线和扩展总线。三是按照传输方式分类:可分为并行总线和串行总线。2.1串行通信方式山东师范大学信息科学与工程学院单工方式半双工方式全双工方式2.1串行通信方式通讯速率指的就是1S内通讯端口发送0/1代码(或者说是高低电平)的数量。打个比方如果我们说通讯速率是9.6kbps那就表示通讯端口每秒发送9600个bit的数据也就是每秒可以产生9600个高低电平(注意这里是高低电平总共加起来9600个)。
主从通讯,指的是在一个通讯网络中一个站点是主站,其他站点作为从站,主站和从站之间可以直接进行数据的传递,但是从站与从站之间不能直接进行数据的传递,如果从站之间想要交换数据也必须要通过主站如图所示。山东师范大学信息科学与工程学院2.2通信协议山东师范大学信息科学与工程学院通信协议硬件层协议软件层协议解决发声器官的构造(是猫叫还是狗叫)解决内容含义(汪汪汪和汪汪,汪汪汪的含义)001010112.3硬件层协议山东师范大学信息科学与工程学院解决数据怎么传,例如:RS-232RS-485,CAN,IIC,SPI等都是约定怎么传数据,如何把1发给给对方,这条线的电压应该是多少伏等,即都是解决0和1怎么传送的问题。2.4485收发器山东师范大学信息科学与工程学院TTL—485需要发送器485—TTL接要接收器通常发送器和接收器做在同一个芯片中,但是发送器和接收器不能同时工作,通过硬件上的连线,单片机来操作控制引脚让它某一时刻是工作在接收状态还是发送状态。485发送器和接收器合在一起,称为485收发器
485发送器规定在发送时,对方不可以发送,只能传一个方向(单工)便是就是同样的一根线,又想发数据给对方,又想收到对方返回来的数据,即想实现半双工,需要软件层的协议做保障。485要想实现半双工式通信,要进行约定,其中主从模式就是一种约定。2.4485收发器山东师范大学信息科学与工程学院管脚编号名称功能描述1RO接收器输出(至MCU)2接收允许(低电平有效)3DE发送允许(高电平有效)4DI发送器输入(来自MCU)5GND接地6A发送器同相输出/接收器同相输入7B发送器反相输出/接收器反相输入8VCC电源电压2.5总线与主从模式山东师范大学信息科学与工程学院2.6RS485原理与驱动程序山东师范大学信息科学与工程学院1)RS-485网络的拓扑结构一般采用:带有终端匹配的总线型结构(也称“手拉手”方式),不支持环形或星形网络。A、B、C为错误连接方式D、E、F为正确连接方式2.6RS-485连接方式山东师范大学信息科学与工程学院RS485工业总线标准要求各设备之间采用链条式连接方式,两头必须接有120Ω终端电阻。2.6RS485连接方式山东师范大学信息科学与工程学院RS-485网络施工中的注意事项:★485+和485-数据线一定要互为双绞,即使用双绞线。★条件允许的话,RS-485网络可采用“多股屏蔽双绞线”。(多股是为了备用,屏蔽是为了便于出现特殊情况时调试。)
★485总线一定要用手牵手式的总线结构,坚决避免星型连接和分叉连接。★设备供电的交流电及机箱一定要真实接地,而且接地良好,以防止雷击、浪涌冲击等意外情况损坏485设备。★为避免强电对其干扰,485总线应避免和强电走在一起。3Modbus协议山东师范大学信息科学与工程学院Modbus通信协议是全球第一个(1979年)真正用于工业现场的总线协议,完全免费。Modbus通信协议是应用于电子控制器上的一种通用协议,目前已成为通用工业标准。多种工业设备包括PCL\DCS\变频器\智能仪表等都在使用。Modbus使不同厂商生产的控制设备可以连成工业网络,进行集中监控。Modbus支持多种电气接口,如RS-232、RS-485,还可以在各种介质上传输,如双绞线、光纤、无线等。Modbus协议是典型的主从型协议。3Modbus协议山东师范大学信息科学与工程学院Modbus是一种单主/多从的通信协议,即:在同一时间里,总线上只能有一个主设备,但可以有一个或多个(最多247个)从设备。主设备是指发起通信的设备,而从设备是接收请求并做出响应的设备。在Modbus网络中,通信总是由主设备发起,而从设备没有收到来自主设备的请求时,不会主动发送数据。MODBUS协议的某些特性是固定的,如信息帧结构,帧顺序,通讯错误和异常情况的处理,以及所执行的功能码等,都不能随便改动。其他特性是属于用户可选的,如传输介质,波特率,字符奇偶校验,停止位个数,参数字址定义等。Modbus请求报文的模式山东师范大学信息科学与工程学院在Modbus网络中,主设备向从设备发送Modbus请求报文的模式有两种:单播模式与广播模式:单播模式:主设备寻址单个从设备。广播模式:主设备向Modbus网络中的所有从设备发送请求报文,从设备接收并处理完毕后不要求返回响应报文。在Modbus网络中,主设备没有地址,每个从设备都具有唯一的地址。从设备的地址范围是0—247.其中地址0作为广播地址,因此从设备实际的地址范围是1至247。Modbus协议帧构成山东师范大学信息科学与工程学院设备地址:被选中的从设备地址。功能码:告知被选中的从设备要执行何种功能。数据段:包含从设备要执行功能的附加信息。
如:功能码“03”要求从设备读保持寄存器并响应寄存器的内容,
则数据段必须包含要求从设备读取寄存器的起始地址及数量。差错检测区:为从机提供一种数据校验方法,以保证信息内容的完整性。Modbus寄存器山东师范大学信息科学与工程学院寄存器是Modbus通信协议的一个重要组成部分,它用于存放数据。寄存器种类特性说明实际应用线圈状态(Coil)输出端口(可读可写),相当于PLC的DO(数字量输出)LED显示,电磁阀输出等离散输入状态(DiscreteInput)输入端口(只读),相当于PLC的DI(数字量输入)接近开关,拨码开关等保持寄存器(HoldingRegister)输出参数或保持参数(可读可写),相当于PLC的AO(模拟量输出)模拟量输出设定值、PID运行参数、传感器报警阈值等输入寄存器(InputRegister)输入参数(只读),相当于PLC的AI(模拟量输入)模拟量输入值Modbus请求报文的格式山东师范大学信息科学与工程学院MODBUS通信协议提供了ASCIl和RTU(远程终端单元)两种通信模式。ASCll模式的主要优点是允许字符之间的时间间隔长达1S,也不会出现错误。RTU模式的优点是在相同波特率下其传输的字符的密度高于ASCIl模式,每个信息必须连续传输。ASCII消息帧格式山东师范大学信息科学与工程学院ASCIl模式数据传送约定在数据格式中每个16进制字符(0~9)、(A~F)都转换成ASCll码发送。这种方式的主要优点是字符发送的时间间隔可达1秒,而不产生错误。起始位:1位数据长度:7位,低位先送校验位:1位(有校验),0位(无校验)停止位:1位(有校验),2位(无校验)波特率:可选RTU消息帧格式山东师范大学信息科学与工程学院起始位:1位数据长度:8位,低位先送校验位:1位(有校验),0位(无校验)停止位:1位(有校验),2位(无校验)波特率:可选应答与错误监测山东师范大学信息科学与工程学院当主站向从站发送信息时,整个通信过程由二部份组成:一是主站向从站的发送,我们叫查询,又叫请求。二是从站对主站的应答,也叫回传,响应。应答的目的是告诉主站是否有错和回答主站的相关通信请求。通信协议对查询和应答的时间,数据格式,验错方法都会给出相应的规定。从设备的响应信息也包含设备地址、功能码、数据段和差错检测区。其中从设备地址为本机地址,数据段包含了从设备采集的数据。MODBUS规定:用主站查询的功能码变化来指示是否有错误发生。无错误正常应答,从站仅回应相同的功能码。对有错或异常的应答,从站应答时,将其功能码最高位b7置1。同时,从站还应将错误代码放入数据区告诉主站发生了什么错误。Modbus功能码山东师范大学信息科学与工程学院用户自定义的功能码由用户自己定义,无法确保其唯一性,代码范围为:65~72和100~110。本节主要讨论RTU模式的公共功能码。代码功能码名称位/字操作操作数量01读线圈状态位操作单个或多个02读离散输入状态位操作单个或多个03读保持寄存器字操作单个或多个04读输入寄存器字操作单个或多个05写单个线圈位操作单个06写单个保持寄存器字操作单个15写多个线圈位操作多个16(0x10)写多个保持寄存器字操作多个读线圈/离散量输出状态功能码01山东师范大学信息科学与工程学院请求报文:线圈寄存器的值:
响应报文:从设备地址功能码起始地址寄存器个数CRC校验0601001600211C
61地址范围取值字节值22~29ON-ON-OFF-OFF-OFF-ON-OFF-OFF0x23(0b00100011)30~37ON-ON-OFF-ON-OFF-OFF-OFF-ON0x8B(0b10001011)38~45OFF-OFF-ON-OFF-OFF-ON-OFF-OFF0x24(0b00100100)46~53OFF-OFF-ON-OFF-OFF-OFF-ON-ON0xC4(0b11000100)54ON0x01(0b00000001)从设备地址功能码数据域字节数5个数据CRC校验060105238B24C401ED9C读离散量输入值功能码02山东师范大学信息科学与工程学院请求报文:线圈寄存器的值:
响应报文:从设备地址功能码起始地址寄存器个数CRC校验04020077001E484D地址范围取值字节值119~126ON-OFF-ON-ON-OFF-ON-OFF-ON0xAD127~134ON-ON-ON-OFF-ON-ON-OFF-ON0xB7135~142ON-OFF-ON-OFF-OFF-OFF-OFF-OFF0x05143~148OFF-OFF-OFF-ON-ON-ON0x38从设备地址功能码数据域字节数5个数据CRC校验040204ADB705383CEA读保持寄存器值功能码03山东师范大学信息科学与工程学院请求报文:
响应报文:从设备地址功能码起始地址寄存器个数CRC校验060300D20004E587从设备地址功能码数据域字节数8个数据CRC校验060308026E01F3010659AB1E6A
注意:Modbus的保持寄存器和输入寄存器是以字为基本单位,即:每个寄存器分别对应2个字节。请求报文连续读取4个寄存器的内容,将返回8个字节。读输入寄存器值功能码04山东师范大学信息科学与工程学院请求报文:
响应报文:从设备地址功能码起始地址寄存器个数CRC校验060401900005306F从设备地址功能码数据域字节数10个数据CRC校验06040A1CE2135A35DB233F56E3513A写单个线圈或单个离散输出功能码05山东师范大学信息科学与工程学院
请求报文:
响应报文:从设备地址功能码起始地址变更数据CRC校验04050098FF000D80从设备地址功能码起始地址变更数据CRC校验04050098FF000D80写单个保持寄存器功能码06山东师范大学信息科学与工程学院请求报文:
响应报文:从设备地址功能码起始地址变更数据CRC校验0306008202AB68DF从设备地址功能码起始地址寄存器数CRC校验0306008202AB68DF写多个线圈功能码15(0x0F)山东师范大学信息科学与工程学院
请求报文:
响应报文:从设备地址功能码起始地址寄存器数字节数变更数据CRC校验030F0014000F02C203EEE1地址范围取值字节值20~27OFF-ON-OFF-OFF-OFF-OFF-ON-ON0xC228~34ON-ON-OFF-OFF-OFF-OFF-OFF0x03从设备地址功能码起始地址寄存器数CRC校验030F0014000F5429写多个保持寄存器功能码16(0x10)山东师范大学信息科学与工程学院
请求报文:
响应报文:从设备地址功能码起始地址寄存器数字节数变更数据CRC校验05100015000306536B05F32A083E72从设备地址功能码起始地址寄存器数CRC校验05100015000390484智能安防系统的构成山东师范大学信息科学与工程学院本案例要求搭建一个基于RS-485总线的智能安防系统,系统构成如下:PC机一台(作为上位机);RS-485通信节点三个(一个作为主机、两个作为从机);火焰传感器一个(安装在从机1上);可燃气体传感器一个(安装在从机2上);USB转485调试器一个。整个系统由两个RS-485网络构成,RS-485网络1含一个主机节点,两个从机节点,使用Modbus通信协议作为应用层协议。主机节点与PC机(上位机)的连接基于RS-485网络2,通过上位机查看主机上报的数据。5硬件连接山东师范大学信息科学与工程学院各类传感器山东师范大学信息科学与工程学院
同学们在使用各类传感器时,请保存好其带有标签的包装,实验完毕后,将传感器装回原包装中,并将传感器(带包装,封好口)放回对应桌子的抽屉里。RS-485网络1的数据帧山东师范大学信息科学与工程学院在RS-485网络1中,从机节点可连接三种类型的传感器:开关量、模拟量和数字量。另外,我们需要对从机节点的地址与传感器类型编号进行配置,它们的数据类型为数字量。根据Modbus功能码的相关基础知识,我们可规划本系统的功能码、寄存器地址与传感器的对应关系。RS-485网络1的数据帧山东师范大学信息科学与工程学院功能码寄存器地址传感器(数据)类型传感器(数据)名称0x02读离散输入状态0x0000开关量人体红外传感器0x0001声音传感器0x0002红外传感器0x03读保持寄存器0x0000数字量温湿度传感器0x0001本节点地址0x0002节点连接的传感器类型0x04读输入寄存器0x0000模拟量光敏传感器0x0001空气质量传感器0x0002火焰传感器0x0003可燃气体传感器0x06写单个保持寄存器0x0001数字量配置(写)节点地址0x0002配置(写)传感器类型RS-485网络1的数据帧山东师范大学信息科学与工程学院本案例的RS-485通信采用ModbusRTU模式,接下来对几种常用的主机请求与从机响应的通信帧进行介绍。①可燃气体传感器数据采集(模拟量,功能码0x04)如果主机需要读取从机2的可燃气体传感器数据,主机发送请求帧从机2收到Modbus通信帧后,响应帧中返回ADC值300(0x012C)。地址1个字节功能码1个字节寄存器地址2个字节寄存器数量2个字节CRC校验2个字节0x020x040x00030x00010xC1CA地址1个字节功能码1个字节返回字节数1个字节寄存器值2个字节CRC校验2个字节0x020x040x020x012C0xB97DRS-485网络1的数据帧山东师范大学信息科学与工程学院②火焰传感器数据采集(模拟量,功能码0x04)如果主机需要读取从机1的火焰传感器数据,主机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黑龙江成考高升专语文全套历年真题卷
- 27银行秋招考前线上模考考试备考试题及答案解析
- 2026交通银行交银理财有限责任公司社会招聘笔试备考题库及答案解析
- 2026广东粤财投资控股有限公司社会招聘9人考试备考试题及答案解析
- 2026福建厦门市集美区田头小学产假顶岗教师招聘1人考试参考题库及答案解析
- 成都市青白江区“蓉漂人才荟”城市行 (重庆站)公开招聘区属国有企业工作人员(8人)考试参考题库及答案解析
- 2026江苏海洋大学招聘体育学院教师考试考试备考题库及答案解析
- 2027年陕西地矿第三地质队有限公司招聘考试备考试题及答案解析
- 金华市城市规划设计院有限公司 2026年秋季招聘12人笔试备考试题及答案解析
- 2026黑龙江双鸭山市集贤县水资源中心公益性岗位招聘1人笔试备考题库及答案解析
- 《秋晚的江上》素养课件
- (2026年)脑梗合并糖尿病护理查房课件
- 工程工期延误处置方案
- 人工智能:从基础到实践(微课视频版)课件 第3章 语音处理及其应用
- 基坑工程监理实施细则
- 仓库管理考试试题及答案
- 教育心理学(第4版)课件 第四章 行为主义学习理论
- 住宅小区消防灭火器更换方案
- 2026年六年级上册数学第三单元测试题及答案
- 2025~2026学年山东省青岛市崂山区七年级上学期期末地理试卷
- 2026年4月自考13180操作系统试题
评论
0/150
提交评论