uint16_t MemAddSize,uint8_t*pData,uint16_t Size,uint32_t Timeout);/* 第1个参数为I2C操作句柄 第2个参数为从机设备地址 第3个参数为从机寄存器地址 第4个参数为从机寄存器地址长度 第5个参数为发送的数据的起始地址 第6个参数为传输数据的大小 第7个参数为操作超时时间 */...
uint32_t num;if(Tx_Buf_Struct.Tx_counter > 0){if(Tx_Buf_Struct.Tx_ptr_tail >= Tx_BUFFER_SIZE)Tx_Buf_Struct.Tx_ptr_tail = 0;num = Tx_Buf_Struct.Tx_counter;*ch = Tx_Buf_Struct.Tx_Buffer[Tx_Buf_Struct.Tx_ptr_tail];Tx_Buf_Struct.Tx_ptr_tail++;Tx_Buf_Struct.Tx_counter-...
extern void *malloc_Outallot(uint32_t size); //内存分配(外部调用) //外部调用内部 extern uint32_t malloc_mem(uint32_t size); //内存分配(内部调用) extern uint8_t malloc_free(uint32_t offset); //内存释放(内部调用) extern uint16_t malloc_perused(void) ; //获得内存使用率(外/内部调...
首先看到 PERIPH_BASE 这个宏,宏展开为 0x40000000,并把它强制转换为 uint32_t的 32 位类型数据,这是因为 STM32 的地址是 32 位的,是不是觉得 0x40000000 这个地址很熟?是的,这是 Cortex-M3 核分配给片上外设 512MB 寻址空间中的第一个地址,我们把0x40000000 称为外设基地址。 接下来是宏 APB2PERIPH_B...
*/ pxTopOfStack = ( StackType_t * ) ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) ); /* (断言) 检查申请的堆栈是否符合8字节对齐。 与操作后在进行断言,判断栈顶指针的值是否为0UL(无符号长整型) */ configASSERT( ( (...
登录后复制HAL_StatusTypeDefHAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout) DevAddress:7bit从机地址左移 + 1bit 1 pData:存储读到的数据,数据仍然是大端模式,即第一个接收的数据存在pData[0],第二个存在pData[1],第三...
49 typedef __I uint8_t vuc8; /*!< ReadOnly */ CMSIS IO类型限定词 固件库与CMSIS数据类型对比 stm32f10x.h文件中还包含了常用的布尔形变量定义,如: 1 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus; 2 3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; ...
32_t _sizech2, uint32_t _ulFreq) { uint32_t i; uint32_t _cmd; g_spiLen = 0; switch (_ch) { /* 通道1数据发送 */ case 1: for(i = 0; i < _sizech1; i++) { _cmd = (3 << 19) | (0 << 16) | (_pbufch1[i] << 0); g_spiTxBuf[g_spiLen++] = (uint8_t)...
一旦在AHB 目标端口上传输了一半数据,传输一半标志(HTIF) 便会置1,如果传输一半中断使能位(HTIE) 置1,还会生成中断。传输结束时,传输完成标志(TCIF) 便会置1,如果传输完成中断使能位(TCIE) 置1,还会生成中断。 DMA_ InitTypeDef 初始化结构体 DMA_ InitTypeDef 初始化结构体 ...
voidmini_i2c_dma_config(uint32_t mem_addr, uint32_t buffer_size, uint32_t direction) { dma_struct.DMA_MemoryBaseAddr=mem_addr; dma_struct.DMA_DIR=direction; dma_struct.DMA_BufferSize=buffer_size;if(direction ==USER_I2C_DMA_DIR_TX) ...