/**
******************************************************************************
* @file stm32f1xx_hal_i2c.c
* @author MCD Application Team
* @brief I2C HAL module driver.
* This file provides firmware functions to manage the following
* functionalities of the Inter Integrated Circuit (I2C) peripheral:
* + Initialization and de-initialization functions
* + IO operation functions
* + Peripheral State, Mode and Error functions
*
@verbatim
==============================================================================
##### How to use this driver #####
==============================================================================
[..]
The I2C HAL driver can be used as follows:
(#) Declare a I2C_HandleTypeDef handle structure, for example:
I2C_HandleTypeDef hi2c;
(#)Initialize the I2C low level resources by implementing the @ref HAL_I2C_MspInit() API:
(##) Enable the I2Cx interface clock
(##) I2C pins configuration
(+++) Enable the clock for the I2C GPIOs
(+++) Configure I2C pins as alternate function open-drain
(##) NVIC configuration if you need to use interrupt process
(+++) Configure the I2Cx interrupt priority
(+++) Enable the NVIC I2C IRQ Channel
(##) DMA Configuration if you need to use DMA process
(+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive channel
(+++) Enable the DMAx interface clock using
(+++) Configure the DMA handle parameters
(+++) Configure the DMA Tx or Rx channel
(+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle
(+++) Configure the priority and enable the NVIC for the transfer complete interrupt on
the DMA Tx or Rx channel
(#) Configure the Communication Speed, Duty cycle, Addressing mode, Own Address1,
Dual Addressing mode, Own Address2, General call and Nostretch mode in the hi2c Init structure.
(#) Initialize the I2C registers by calling the @ref HAL_I2C_Init(), configures also the low level Hardware
(GPIO, CLOCK, NVIC...etc) by calling the customized @ref HAL_I2C_MspInit() API.
(#) To check if target device is ready for communication, use the function @ref HAL_I2C_IsDeviceReady()
(#) For I2C IO and IO MEM operations, three operation modes are available within this driver :
*** Polling mode IO operation ***
=================================
[..]
(+) Transmit in master mode an amount of data in blocking mode using @ref HAL_I2C_Master_Transmit()
(+) Receive in master mode an amount of data in blocking mode using @ref HAL_I2C_Master_Receive()
(+) Transmit in slave mode an amount of data in blocking mode using @ref HAL_I2C_Slave_Transmit()
(+) Receive in slave mode an amount of data in blocking mode using @ref HAL_I2C_Slave_Receive()
*** Polling mode IO MEM operation ***
=====================================
[..]
(+) Write an amount of data in blocking mode to a specific memory address using @ref HAL_I2C_Mem_Write()
(+) Read an amount of data in blocking mode from a specific memory address using @ref HAL_I2C_Mem_Read()
*** Interrupt mode IO operation ***
===================================
[..]
(+) Transmit in master mode an amount of data in non-blocking mode using @ref HAL_I2C_Master_Transmit_IT()
(+) At transmission end of transfer, @ref HAL_I2C_MasterTxCpltCallback() is executed and user can
add his own code by customization of function pointer @ref HAL_I2C_MasterTxCpltCallback()
(+) Receive in master mode an amount of data in non-blocking mode using @ref HAL_I2C_Master_Receive_IT()
(+) At reception end of transfer, @ref HAL_I2C_MasterRxCpltCallback() is executed and user can
add his own code by customization of function pointer @ref HAL_I2C_MasterRxCpltCallback()
(+) Transmit in slave mode an amount of data in non-blocking mode using @ref HAL_I2C_Slave_Transmit_IT()
(+) At transmission end of transfer, @ref HAL_I2C_SlaveTxCpltCallback() is executed and user can
add his own code by customization of function pointer @ref HAL_I2C_SlaveTxCpltCallback()
(+) Receive in slave mode an amount of data in non-blocking mode using @ref HAL_I2C_Slave_Receive_IT()
(+) At reception end of transfer, @ref HAL_I2C_SlaveRxCpltCallback() is executed and user can
add his own code by customization of function pointer @ref HAL_I2C_SlaveRxCpltCallback()
(+) In case of transfer Error, @ref HAL_I2C_ErrorCallback() function is executed and user can
add his own code by customization of function pointer @ref HAL_I2C_ErrorCallback()
(+) Abort a master I2C process communication with Interrupt using @ref HAL_I2C_Master_Abort_IT()
(+) End of abort process, @ref HAL_I2C_AbortCpltCallback() is executed and user can
add his own code by customization of function pointer @ref HAL_I2C_AbortCpltCallback()
*** Interrupt mode or DMA mode IO sequential operation ***
==========================================================
[..]
(@) These interfaces allow to manage a sequential transfer with a repeated start condition
when a direction change during transfer
[..]
(+) A specific option field manage the different steps of a sequential transfer
(+) Option field values are defined through @ref I2C_XferOptions_definition and are listed below:
(++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functionnal is same as associated interfaces in no sequential mode
(++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start condition, address
and data to transfer without a final stop condition
(++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a sequence with start condition, address
and data to transfer without a final stop condition, an then permit a call the same master sequential interface
several times (like @ref HAL_I2C_Master_Seq_Transmit_IT() then @ref HAL_I2C_Master_Seq_Transmit_IT()
or @ref HAL_I2C_Master_Seq_Transmit_DMA() then @ref HAL_I2C_Master_Seq_Transmit_DMA())
(++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart condition, address
and with new data to transfer if the direction change or manage only the new data to transfer
if no direction change and without a final stop condition in both cases
(++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart condition, address
and with new data to transfer if the direction change or manage only the new data to transfer
if no direction change and with a final stop condition in both cases
(++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a restart condition after several call of the same master sequential
interface several times (link with option I2C_FIRST_AND_NEXT_FRAME).
Usage can, transfer several bytes one by one using HAL_I2C_Master_Seq_Transmit_IT(option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME)
or HAL_I2C_Master_Seq_Receive_IT(option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME)
or HAL_I2C_Master_Seq_Transmit_DMA(option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME)
or HAL_I2C_Master_Seq_Receive_DMA(option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME).
Then usage of this optio
没有合适的资源?快使用搜索试试~ 我知道了~
一款支持 KV 数据和时序数据的超轻量级数据库
共754个文件
h:372个
c:233个
md:54个
需积分: 5 0 下载量 88 浏览量
2024-07-17
17:49:26
上传
评论
收藏 7.16MB ZIP 举报
温馨提示
数据库管理系统是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML;或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。 [1] 数据库管理系统是数据库系统的核心组成部分,主要完成对数据库的操作与管理功能,实现数据库对象的创建、数据库存储数据的查询、添加、修改与删除操作和数据库的用户管理、权限管理等。它的安全直接关系到整个数据库系统的安全,其防护手段主要有: (1)使用正版数据库管理系统并及时安装相关补丁。 (2)做好用户账户管理,禁用默认超级管理员账户或者为超级管理员账户设置复杂密码;为应用程序分别分配专用账户进行访问;设置用户登录时间及登录失败次数限制, 防止暴力破解用户密码。 (3)分配用户访问权限时,坚持最小权限分配原则,并限制用户只能访问特定数据库,不能同时访问其他数据
资源推荐
资源详情
资源评论
收起资源包目录
一款支持 KV 数据和时序数据的超轻量级数据库 (754个子文件)
libarm_cortexM4l_math.a 2.99MB
libarm_cortexM4lf_math.a 2.95MB
stm32f1xx_hal_i2c.c 227KB
stm32f4xx_hal_i2c.c 223KB
stm32f4xx_hal_i2c.c 223KB
stm32f4xx_hal_fmpi2c.c 222KB
stm32f4xx_hal_fmpi2c.c 222KB
stm32f1xx_hal_tim.c 207KB
stm32f4xx_hal_tim.c 206KB
stm32f4xx_hal_tim.c 206KB
stm32f4xx_hal_cryp.c 204KB
stm32f4xx_hal_cryp.c 204KB
stm32f4xx_hal_dfsdm.c 150KB
stm32f4xx_hal_dfsdm.c 150KB
stm32f4xx_hal_rcc_ex.c 149KB
stm32f4xx_hal_rcc_ex.c 149KB
stm32f1xx_hal_spi.c 121KB
stm32f4xx_hal_spi.c 118KB
stm32f4xx_hal_spi.c 118KB
stm32f4xx_hal_hash.c 111KB
stm32f4xx_hal_hash.c 111KB
stm32f1xx_hal_uart.c 107KB
stm32f4xx_hal_uart.c 105KB
stm32f4xx_hal_uart.c 105KB
stm32f4xx_hal_sd.c 100KB
stm32f4xx_hal_sd.c 100KB
stm32f1xx_hal_sd.c 97KB
stm32f1xx_hal_usart.c 97KB
stm32f4xx_hal_usart.c 94KB
stm32f4xx_hal_usart.c 94KB
stm32f4xx_hal_smbus.c 94KB
stm32f4xx_hal_smbus.c 94KB
stm32f1xx_hal_irda.c 92KB
stm32f4xx_hal_qspi.c 91KB
stm32f4xx_hal_qspi.c 91KB
stm32f4xx_hal_irda.c 91KB
stm32f4xx_hal_irda.c 91KB
stm32f4xx_hal_mmc.c 90KB
stm32f4xx_hal_mmc.c 90KB
stm32f1xx_hal_adc.c 89KB
stm32f1xx_hal_mmc.c 88KB
stm32f4xx_hal_dsi.c 85KB
stm32f4xx_hal_dsi.c 85KB
stm32f4xx_hal_smartcard.c 83KB
stm32f4xx_hal_smartcard.c 83KB
stm32f1xx_hal_smartcard.c 82KB
stm32f4xx_hal_can.c 79KB
stm32f4xx_hal_can.c 79KB
stm32f4xx_hal_sai.c 79KB
stm32f4xx_hal_sai.c 79KB
stm32f4xx_hal_eth.c 79KB
stm32f4xx_hal_eth.c 79KB
stm32f1xx_hal_can.c 79KB
stm32f1xx_hal_eth.c 76KB
stm32f4xx_hal_adc.c 75KB
stm32f4xx_hal_adc.c 75KB
stm32f1xx_hal_nand.c 71KB
stm32f1xx_ll_usb.c 70KB
stm32f4xx_hal_ltdc.c 69KB
stm32f4xx_hal_ltdc.c 69KB
stm32f4xx_hal_nand.c 66KB
stm32f4xx_hal_nand.c 66KB
fdb_kvdb.c 66KB
stm32f4xx_hal_dma2d.c 65KB
stm32f4xx_hal_dma2d.c 65KB
stm32f4xx_hal_lptim.c 65KB
stm32f4xx_hal_lptim.c 65KB
stm32f4xx_hal_tim_ex.c 64KB
stm32f4xx_hal_tim_ex.c 64KB
stm32f4xx_hal_i2s.c 63KB
stm32f4xx_hal_i2s.c 63KB
stm32f1xx_hal_tim_ex.c 62KB
stm32f4xx_hal_rtc.c 61KB
stm32f4xx_hal_rtc.c 61KB
stm32f1xx_hal_i2s.c 59KB
stm32f4xx_hal_pcd.c 59KB
stm32f4xx_hal_pcd.c 59KB
stm32f1xx_hal_pcd.c 58KB
stm32f1xx_hal_rtc.c 57KB
stm32f4xx_ll_usb.c 56KB
stm32f4xx_ll_usb.c 56KB
stm32f1xx_hal_can.c 55KB
stm32f4xx_hal_rtc_ex.c 54KB
stm32f4xx_hal_rtc_ex.c 54KB
stm32f4xx_hal_can.c 52KB
stm32f4xx_hal_can.c 52KB
stm32f4xx_hal_spdifrx.c 52KB
stm32f4xx_hal_spdifrx.c 52KB
stm32f1xx_hal_adc_ex.c 50KB
stm32f4xx_hal_flash_ex.c 49KB
stm32f4xx_hal_flash_ex.c 49KB
stm32f1xx_hal_rcc.c 48KB
stm32f1xx_hal_dac.c 46KB
stm32f4xx_hal_hcd.c 45KB
stm32f4xx_hal_hcd.c 45KB
stm32f1xx_hal_hcd.c 44KB
stm32f4xx_hal_dac.c 44KB
stm32f4xx_hal_dac.c 44KB
stm32f4xx_hal_hash_ex.c 41KB
stm32f4xx_hal_hash_ex.c 41KB
共 754 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
野生的狒狒
- 粉丝: 3379
- 资源: 2436
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功