A45 STM32_HAL库函数 之 SMARTCARD通用驱动 -- A -- 所有函数的介绍及使用

A45 STM32_HAL库函数 之 SMARTCARD通用驱动 -- A -- 所有函数的介绍及使用

  • 1 该驱动函数预览
    • 1.1 HAL_SMARTCARD_Init
    • 1.2 HAL_SMARTCARD_DeInit
    • 1.3 HAL_SMARTCARD_MspInit
    • 1.4 HAL_SMARTCARD_MspDeInit
    • 1.5 HAL_SMARTCARD_ReInit
    • 1.6 HAL_SMARTCARD_Transmit
    • 1.7 HAL_SMARTCARD_Receive
    • 1.8 HAL_SMARTCARD_Transmit_IT
    • 1.9 HAL_SMARTCARD_Receive_IT
    • 1.10 HAL_SMARTCARD_Transmit_DMA
    • 1.11 HAL_SMARTCARD_Receive_DMA
    • 1.12 HAL_SMARTCARD_Abort
    • 1.13 HAL_SMARTCARD_AbortTransmit
  • 该文档修改记录:
  • 总结

1 该驱动函数预览

序号函数名描述
1HAL_SMARTCARD_Init()初始化智能卡接口。
2HAL_SMARTCARD_DeInit()反初始化智能卡接口。
3HAL_SMARTCARD_MspInit()初始化智能卡接口相关的MCU外设引脚或资源。
4HAL_SMARTCARD_MspDeInit()反初始化智能卡接口相关的MCU外设引脚或资源。
5HAL_SMARTCARD_ReInit()重新初始化智能卡接口。
6HAL_SMARTCARD_Transmit()智能卡接口发送数据。
7HAL_SMARTCARD_Receive()智能卡接口接收数据。
8HAL_SMARTCARD_Transmit_IT()使用中断方式发送数据。
9HAL_SMARTCARD_Receive_IT()使用中断方式接收数据。
10HAL_SMARTCARD_Transmit_DMA()使用DMA方式发送数据。
11HAL_SMARTCARD_Receive_DMA()使用DMA方式接收数据。
12HAL_SMARTCARD_Abort()终止智能卡接口操作。
13HAL_SMARTCARD_AbortTransmit()终止发送操作。
14HAL_SMARTCARD_AbortReceive()终止接收操作。
15HAL_SMARTCARD_Abort_IT()终止智能卡接口操作并启用中断。
16HAL_SMARTCARD_AbortTransmit_IT()终止发送操作并启用中断。
17HAL_SMARTCARD_AbortReceive_IT()终止接收操作并启用中断。
18HAL_SMARTCARD_IRQHandler()智能卡接口中断处理程序。
19HAL_SMARTCARD_TxCpltCallback()发送完成回调函数。
20HAL_SMARTCARD_RxCpltCallback()接收完成回调函数。
21HAL_SMARTCARD_ErrorCallback()错误回调函数。
22HAL_SMARTCARD_AbortCpltCallback()终止完成回调函数。
23HAL_SMARTCARD_AbortTransmitCpltCallback()终止发送完成回调函数。
24HAL_SMARTCARD_AbortReceiveCpltCallback()终止接收完成回调函数。
25HAL_SMARTCARD_GetState()获取智能卡接口状态。
26HAL_SMARTCARD_GetError()获取智能卡接口错误状态。

以下是使用模板:

#include "stm32f4xx_hal.h"int main(void) {// HAL初始化HAL_Init();// 初始化智能卡接口HAL_SMARTCARD_Init();// 初始化智能卡接口相关的MCU外设引脚或资源HAL_SMARTCARD_MspInit();// 进行其他操作...// 智能卡接口发送数据HAL_SMARTCARD_Transmit();// 智能卡接口接收数据HAL_SMARTCARD_Receive();// 使用中断方式发送数据HAL_SMARTCARD_Transmit_IT();// 使用DMA方式发送数据HAL_SMARTCARD_Transmit_DMA();// 终止智能卡接口操作HAL_SMARTCARD_Abort();// 获取智能卡接口状态HAL_SMARTCARD_GetState();return 0;
}

1.1 HAL_SMARTCARD_Init

函数名HAL_SMARTCARD_Init
函数原形HAL_StatusTypeDef HAL_SMARTCARD_Init(SMARTCARD_HandleTypeDef *hsmartcard)
功能描述初始化SMARTCARD外设
输入参数hsmartcard:SMARTCARD句柄结构体指针
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.2 HAL_SMARTCARD_DeInit

函数名HAL_SMARTCARD_DeInit
函数原形HAL_StatusTypeDef HAL_SMARTCARD_DeInit(SMARTCARD_HandleTypeDef *hsmartcard)
功能描述复位SMARTCARD外设
输入参数hsmartcard:SMARTCARD句柄结构体指针
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.3 HAL_SMARTCARD_MspInit

函数名HAL_SMARTCARD_MspInit
函数原形void HAL_SMARTCARD_MspInit(SMARTCARD_HandleTypeDef *hsmartcard)
功能描述初始化SMARTCARD外设时钟、引脚等底层资源
输入参数hsmartcard:SMARTCARD句柄结构体指针
输出参数
返回值
先决条件
被调用函数

1.4 HAL_SMARTCARD_MspDeInit

函数名HAL_SMARTCARD_MspDeInit
函数原形void HAL_SMARTCARD_MspDeInit(SMARTCARD_HandleTypeDef *hsmartcard)
功能描述复位SMARTCARD外设时钟、引脚等底层资源
输入参数hsmartcard:SMARTCARD句柄结构体指针
输出参数
返回值
先决条件
被调用函数

1.5 HAL_SMARTCARD_ReInit

函数名HAL_SMARTCARD_ReInit
函数原形HAL_StatusTypeDef HAL_SMARTCARD_ReInit(SMARTCARD_HandleTypeDef *hsmartcard)
功能描述重新初始化SMARTCARD外设
输入参数hsmartcard:SMARTCARD句柄结构体指针
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.6 HAL_SMARTCARD_Transmit

函数名HAL_SMARTCARD_Transmit
函数原形HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size, uint32_t Timeout)
功能描述通过SMARTCARD外设发送数据
输入参数 1hsmartcard:SMARTCARD句柄结构体指针
输入参数 2pData:待发送数据缓冲区指针
输入参数 3Size:待发送数据大小
输入参数 4Timeout:发送超时时间(毫秒)
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.7 HAL_SMARTCARD_Receive

函数名HAL_SMARTCARD_Receive
函数原形HAL_StatusTypeDef HAL_SMARTCARD_Receive(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size, uint32_t Timeout)
功能描述通过SMARTCARD外设接收数据
输入参数 1hsmartcard:SMARTCARD句柄结构体指针
输入参数 2pData:接收数据缓冲区指针
输入参数 3Size:期望接收数据大小
输入参数 4Timeout:接收超时时间(毫秒)
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.8 HAL_SMARTCARD_Transmit_IT

函数名HAL_SMARTCARD_Transmit_IT
函数原形HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size)
功能描述通过SMARTCARD外设发送数据(中断模式)
输入参数 1hsmartcard:SMARTCARD句柄结构体指针
输入参数 2pData:待发送数据缓冲区指针

| 输入参数 3 | Size:待发送数据大小 |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:函数执行状态 |
| 先决条件 | 无 |
| 被调用函数 | 无 |


1.9 HAL_SMARTCARD_Receive_IT

函数名HAL_SMARTCARD_Receive_IT
函数原形HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size)
功能描述通过SMARTCARD外设接收数据(中断模式)
输入参数 1hsmartcard:SMARTCARD句柄结构体指针
输入参数 2pData:接收数据缓冲区指针
输入参数 3Size:期望接收数据大小
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.10 HAL_SMARTCARD_Transmit_DMA

函数名HAL_SMARTCARD_Transmit_DMA
函数原形HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size)
功能描述通过SMARTCARD外设发送数据(DMA模式)
输入参数 1hsmartcard:SMARTCARD句柄结构体指针
输入参数 2pData:待发送数据缓冲区指针
输入参数 3Size:待发送数据大小
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.11 HAL_SMARTCARD_Receive_DMA

函数名HAL_SMARTCARD_Receive_DMA
函数原形HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size)
功能描述通过SMARTCARD外设接收数据(DMA模式)
输入参数 1hsmartcard:SMARTCARD句柄结构体指针
输入参数 2pData:接收数据缓冲区指针
输入参数 3Size:期望接收数据大小
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.12 HAL_SMARTCARD_Abort

函数名HAL_SMARTCARD_Abort
函数原形HAL_StatusTypeDef HAL_SMARTCARD_Abort(SMARTCARD_HandleTypeDef *hsmartcard)
功能描述终止SMARTCARD外设操作
输入参数hsmartcard:SMARTCARD句柄结构体指针
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

1.13 HAL_SMARTCARD_AbortTransmit

函数名HAL_SMARTCARD_AbortTransmit
函数原形HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit(SMARTCARD_HandleTypeDef *hsmartcard)
功能描述终止SMARTCARD外设发送数据的操作
输入参数hsmartcard:SMARTCARD句柄结构体指针
输出参数
返回值HAL_StatusTypeDef:函数执行状态
先决条件
被调用函数

该文档修改记录:

修改时间修改说明
2024年4月30日第一次发布,介绍了该博客驱动所有函数的介绍及使用

总结

以上就是该博客驱动所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/27914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 8 创建用户,并对用户授权

创建用户: 对MySQL创建新用户。命令如下: create user devuser% identified by 123456; 授予权限 grant all privileges on joolun_ry.* to devuser% with grant option; 参数说明: joolun_ry:表明对那个库进行授权&#xf…

BFD(简单配置实验)

实验拓扑 配置接口IP地址 正常互通 配置静态BFD 查看状态:为UP 与静态路由联动 查看静态路由状态为active 将交换机的接口down掉 BFD的状态为down 再次查看静态路由的状态为Inactive

Qt事件的详细介绍和原理

介绍 事件类型: 1、窗口系统事件spontaneous。 2、异步事件PostEvent。 3、同步事件SendEvent 窗体系统事件spontaneous 代表事件有:各类外设事件,如鼠标单双击、滚轮、移动,键盘按键等事件。 使用场景:该类事件都是…

RawChat:优化AI对话体验,全面兼容GPT功能平台

文章目录 一、Rawchat简介1.1 RawChat的主要特性1.2 RawChat的技术原理简述 二、使用教程三、案例应用3.1 图片内容分析3.2 生图演示3.3 文档解析3.4 探索更多 四、小结 一、Rawchat简介 RawChat平台的诞生,其核心理念是降低用户访问类似ChatGPT这类先进AI服务的门…

Git使用-gitlab上面的项目如何整到本地的idea中

场景 一般我们在开发项目或者接手某个项目时,基本都要接触Git,比如上传项目代码,下载同事给你的交接代码等等。 这是一个基本功,小小整理一下日常操作中的使用。 第一步:在 GitLab 上找到你要克隆的项目,复…

干部管理软件有哪些

随着信息技术的飞速发展,干部管理软件在各级党政机关、国企事业单位中扮演着越来越重要的角色。这些软件通过整合干部管理的各项业务流程,实现了干部信息的系统化、规范化和高效化管理。以下是几款主流的干部管理软件及其特点: 一、干部信息…

QT小技巧

QT小技巧 滑条的美化 美化前 代码如下 //滑条的美化ui->horizontalSlider->setStyleSheet("QSlider::groove:horizontal {""border:1px solid skyblue;""background-color:skyblue;""height:10px;""border-radius:5px…

NFS网络文件存储入门

一、NFS介绍 NFS全称Network Files System,中文叫网络文件系统,是1980年由SUN发展出来在UNIX&Linux系统间实现磁盘文件共享的一种方法。NFS是当前互联网系统架构中最常用的服务之一,特别是中小公司应用频率很高。大公司可能用MFS&#x…

Nextjs 集成富文本编辑器react-quill

目录 一、组件代码 二、参考文档 由于Next与react有些差别,直接调用组件会报无法找到文档的错误,于是我们只有考虑动态导入了解决问题。因为富文本编辑器一般作用与form页面对SEO意义不大,所以这里可以考虑暂时关闭SSR。 一、组件代码 /*…

【系统架构】REST风格

系列文章目录 第一章 系统架构的演进 第二章 REST风格架构 文章目录 系列文章目录前言一、进程间的通信普通管道(Pipe)或者具名管道(Named Pipe)信号(Signal)信号量(Semaphore)消息…

C++ 字符串处理5-手机号邮箱如何脱敏处理

1. 关键词2. strutil.h3. strutil.cpp4. 测试代码5. 运行结果6. 源码地址 1. 关键词 关键词: C 字符串处理 分割字符串 连接字符串 跨平台 应用场景: 有些重要信息需要保密,比如手机号、邮箱等,如何在不影响用户阅读的情况下…

Hadoop之HDFS分布式文件系统

HDFS简介 Hadoop Distributed File System (HDFS): HDFS 是 Hadoop 的分布式文件系统,它设计用于存储大量数据,并提供 高吞吐率的数据访问,通过将数据分块存储在多个节点上,实现数据的冗余存储和容错。 HDFS重要概念 HDFS 通过统一的命名空间目录树来定位文件; 另外,它…

zookeeper、kakfa添加用户加密

背景 zookeeper无权限访问到根目录 步骤 在kafka/config 目录中创建 vi config/zookeeper_jaas.conf在zookeeper_jaas.conf中添加 Server { org.apache.kafka.common.security.plain.PlainLoginModule required username"admin" password"12345" user_ad…

温泉镇旅游微信小程序的设计与实现(论文+源码)_kaic

摘要 旅游业随着经济的快速发展呈现出一派欣欣向荣的景象,尤其是近两年来,各个行业运用科技以及因特网来促进旅游迅速发展,逐渐都显示出了的问题,特别突出的是在线上推广,其缺点也是特别明显。尽管在新冠肺炎的冲击下&…

uni-app前端,社区团购系统搭建部署

目录 前言: 一、社区团购模式: 二、社区团购系统功能: 三、总结: 前言: 区团购系统是一种利用互联网技术和组织力量,通过线上线下结合的方式,为社区居民提供方便快捷的商品和服务采购平台。…

制作一个超小的docker镜像

在制作docker镜像我们都希望能够制作一个超小的镜像,那么该怎么做呢,网上有很多优化镜像大小的方法,今天就不在重复了,今天给大家分享一个从源头控制大小的方案。 Docker Scratch镜像是一个特殊的Docker镜像,它不基于任…

案例学习-存量更新规划实施探索(武汉)

案例学习-存量更新规划实施探索(武汉) 武汉市在早期旧城更新实践中发现零散化的更新往往导致资源配置分散、城市建设破碎化等弊病,特别是由于过于强调项目自身“经济平衡”,在实施过程中也逐步暴露出住宅占比过大、强度偏高、公服…

JS:获取鼠标点击位置

一、获取鼠标在目标元素中的点击位置 getClickPos.ts: export const getClickPos (e: MouseEvent) > {return {x: e.offsetX,y: e.offsetY,}; };二、获取鼠标在页面中的点击位置 getClickPos.ts: export const getPageClickPos (e: MouseEvent) > {return {x: e.pa…

算法day32

第一题 207. 课程表 步骤一: 通过下图的课程数组,首先画出DAG图(有向无环图) 步骤二: 其次我们按照DAG图,来构建该图的拓扑排序,等有效的点都按照规则排完序后,观察是否有剩下的点的入度不为0&…

MAC M1系统编译ffmpeg-gl-transition

MAC M1系统编译ffmpeg-gl-transition 1. 本人系统2. 编译💰系统准备2.1. 下载【ffmpeg-gl-transition】到用户家目录下,并解压2.2 下载ffmpeg源码2.3. brew安装GLEW glfw32.4 复制vf_gltransition.c文件到ffmpeg2.5 修改ffmpeg源码文件2.6 设置库目录和…