2.1 Stm32 Gpio

引脚的信息

stm32 pins

图中带FT的引脚就是能容忍5v的电压,不带FT的引脚就只能容忍3.3v电压
注意:其中PA15,PB3,PB4,三个端口尽量不要用做普通端口。因为这三个是调试端口。

Gpio

Gpio都是APB21的外设

•可配置为8种输入输出模式

•引脚电平:0V~3.3V,部分引脚可容忍5V

输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等

输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等

GPIO默认状态是什么


I/O端口位的基本结构

IO口进化史_洋桃电子

图13详解_江科大

推挽输出讲解

structure


八种Gpio模式

模式名称性质特征
浮空输入数字输入可读取引脚电平,若引脚悬空,则电平不确定
上拉输入数字输入可读取引脚电平,内部连接上拉电阻,悬空时默认高电平
下拉输入数字输入可读取引脚电平,内部连接下拉电阻,悬空时默认低电平
模拟输入模拟输入GPIO无效,引脚直接接入内部ADC
开漏输出数字输出可输出引脚电平,高电平为高阻态,低电平接VSS (pmos无效)
推挽输出数字输出可输出引脚电平,高电平接VDD,低电平接VSS (pmos,nmos均有效) stm32对io口有绝对控制
复用开漏输出数字输出由片上外设控制,高电平为高阻态,低电平接VSS
复用推挽输出数字输出由片上外设控制,高电平接VDD,低电平接VSS

个人理解:

上拉 下拉输入:用于给输入提供一个默认的输出电平的 接的电阻的阻值都比较大 属于弱上拉

推挽输出就是两个人轮流交替干活,不管怎样都有人在工作(即有一个mos导通)

而对于开漏输出,是只有一个人干活,只要他罢工,就没有人在工作

注意 在输入模式下输出是关闭的,而输出模式下输入可正常运转

输出pin_江科大

Pmos与Nmos的区别

Nmos:以P型半导体为衬底,加上两块N型半导体。

三种输出控制

控制方式_江科大

  1. 整体读出“输出数据寄存器”,用&= |=的操作更改对应位,再写入.(软件层)
  2. 用“位设置/位清楚寄存器”按位更改对应位。(硬件层)
  3. 位带

通过寄存器配置IO口

寄存器配置io口_江科大

通过视频可以学会基本的翻阅数据手册配置寄存器的能力

GPIO相关寄存器

其中ODR寄存器用于控制 GPIOx 的输出高电平或者低电平。
也就是说既能控制管脚为高电平,也能控制管脚为低电平。管脚对于位写1,GPIO 管脚为高电平,写 0 则为低电平。不过缺点是:会因中断而打断,关闭中断明显会延迟或丢失一事件的捕获,所以控制GPIO的状态最好还是用BSRR和BRR。
(详见STM32F10xxx参考手册(中文)的p115页)

Gpio Mode

GPIO_Mode值模式
GPIO_Mode_AIN模拟输入
GPIO_Mode_IN_FLOATING浮空输入
GPIO_Mode_IPD下拉输入
GPIO_Mode_IPU上拉输入
GPIO_Mode_Out_OD开露输出(out drain)
GPIO_Mode_Out_PP推挽输出(push and pull)
GPIO_Mode_AF_OD复用开露输出
GPIO_Mode_AF_PP模拟推挽输出

  1. 详见专栏中的系统结构图 系统结构图 ↩︎

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32 LIN 2.1程序是一种针对STMicroelectronics的STM32系列微控制器的应用程序开发。LIN(局域网互联网络)是一种用于汽车电子系统的串行通信总线协议。 STM32 LIN 2.1程序的开发可以分为以下步骤: 1. 配置硬件:首先,需要按照所需的功能配置STM32微控制器的引脚和其他硬件资源。这包括设置LIN总线的通信引脚、配置UART串口通信等。 2. 初始化LIN总线:在程序中,需要初始化LIN总线的参数和配置。这包括设置波特率、帧长度和校验模式等。 3. 编写数据发送函数:根据应用需求,编写数据发送函数。这个函数用于将数据封装成LIN帧并发送到LIN总线上。 4. 编写数据接收函数:同样地,根据应用需求,编写数据接收函数。这个函数用于从LIN总线接收数据并解析LIN帧,获取有效的数据。 5. 编写主程序逻辑:根据应用需求,编写主程序逻辑。这个逻辑可能涉及到多个数据发送和接收的过程,以及其他应用功能的处理。 6. 进行测试与调试:完成以上步骤后,进行测试与调试。通过使用LIN总线分析工具和其他相关设备,可以验证程序的功能和正确性。 总的来说,STM32 LIN 2.1程序的开发主要包括了硬件配置、LIN总线初始化、数据发送和接收函数的编写,以及程序主逻辑的实现。通过这个程序,可以实现STM32微控制器与外设或其他汽车电子设备之间的通信。 ### 回答2: STM32是一种嵌入式微控制器,可以编程控制各种外设,其中包括LIN2.1总线协议的应用。 在STM32中使用LIN2.1协议,首先需要配置相关的硬件和外设。通过配置串口通信参数,例如波特率、数据位、校验位和停止位等,来设置通信参数以与LIN总线兼容。 然后,需要编写代码来实现LIN通信的功能。可以使用STM32的UART或USART外设来发送和接收LIN消息。在发送消息时,需要将消息的ID、数据、校验和等信息封装为LIN消息帧,并通过UART发送出去。在接收消息时,需要监听UART接收缓冲区,当接收到完整的LIN消息帧时,解析消息内容,并进行相应的处理。 在编写LIN2.1程序时,需要根据具体的需求来处理不同的LIN消息类型。例如,可以通过发送命令帧给LIN从设备,来控制其执行相应的功能。还可以通过发送诊断帧,获取LIN从设备的状态信息和故障码等。 同时,还需要实现错误检测和错误处理的功能。通过校验和等机制来确保数据的完整性和正确性,避免在数据传输过程中出现错误。在接收到错误帧时,可以通过相应的错误处理流程进行处理,例如重新发送消息或者记录错误日志等。 总之,STM32可以通过编写相应的代码来实现LIN2.1协议的功能,包括配置通信参数、发送和接收LIN消息、处理LIN消息类型和错误处理等。这样,就可以与使用LIN2.1协议的外设进行通信和控制。 ### 回答3: STM32是一款集成电路产品系列,而LIN是一种通信协议。The LIN (Local Interconnect Network)协议是一种串行通信协议,专门用于汽车电子系统中的从机设备之间的通信。它通过单一的总线连接多个从机设备,提供低速、简单和经济实惠的通信方式。 在STM32系列中,LIN通信协议的程序编写如下: 1. 首先,需要选定一个具备LIN通信功能的STM32微控制器,如STM32F1系列。 2. 在工程中,需要添加适当的库文件和头文件,以便能够使用与LIN通信相关的函数、定义和配置。 3. 配置STM32GPIO引脚,将它们设置为正确的输入/输出模式,并选择相应的LIN通信功能。 4. 设置STM32的时钟和波特率,确保与其他从机设备相匹配。 5. 依据LIN协议的要求,编写主机或从机设备的程序。主机设备负责初始化LIN总线并发送帧数据,而从机设备则接收并响应来自主机的数据。 6. 在主机设备程序中,可以使用适当的函数来发送LIN帧。这些函数将数据传输到LIN总线上,并根据LIN协议来生成适当的帧。 7. 在从机设备程序中,可以使用适当的函数来接收来自LIN总线的数据。这些函数将读取接收到的帧,并提取出数据以供处理或响应。 8. 在每个设备程序中,可以添加适当的错误检测和处理机制,以确保通信的可靠性和正确性。 总结起来,STM32系列微控制器能够通过适当的配置和编程来实现LIN2.1通信协议。这需要在工程中添加相应的库文件和头文件,并编写主机和从机设备的程序来实现LIN通信的初始化、数据传输和处理。 注意:以上回答仅为简要示例,并不能涵盖所有细节和具体实现方法,因此在实际应用中需根据具体要求和方案进行适当的设置和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值