C语言
williamlee_
提问请讲礼貌
展开
-
敏源M117 IIC CRC校验程序(X8+X5+X4+1)
/****************************************************************************** * Name: CRC-8/MINGYUAN x8+x5+x4+1 * Poly: 0x31 * Init: 0xFF * Refin: False * Refout: False * Xorout: 0x00 ****************************************原创 2022-06-20 20:13:55 · 727 阅读 · 0 评论 -
将一个浮点数,拆分成两个整数表示
在做串口收发的时候出现的一个问题,废了一些功夫,借鉴了一些代码。解决方案如下:#include "stdio.h"float shift_coefficient = 10.2;static int modff(const char* value, int* iptr){ int fractional; sscanf(value, "%d.%d", &fractional, iptr); return fractional;}int main(){ int原创 2021-04-02 15:17:34 · 1220 阅读 · 0 评论 -
学习笔记:如何将已经初始化的HAL_SPI_Receive_DMA改变其函数入口参数(1)
我在工作中碰到了这个问题:我初始化了一个SPI+DMA的接收函数,我看到函数内部就是一个初始化过程。HAL_SPI_Receive_DMA(&hspi1, Spi_Buff, size)当函数完成调用后,DMA就一直准备接收了。想问在这过程之后,数据到来之前,我还有办法修改size参数,或者彻底清除本次接收吗我试过将spi1复位,都不能把size变量清掉我试了如下办法:...原创 2019-12-04 14:14:44 · 4196 阅读 · 0 评论 -
关于SPI的HAl库函数为什么入口参数位 uint8_t *TxData,但是却可以传递16bit的参数
uint8_t 指的是指针,而不是变量本身数据寄存器本身是16bit的没有问题原创 2019-12-02 18:04:08 · 1576 阅读 · 0 评论 -
计算一个数组中三个最小值的算法
void Sort_incream(uint16_t Arr[DEALY_RANGE] ){ uint16_t i, j, temp, isSorted; for(i=0; i<(DEALY_RANGE)-1; i++){ isSorted = 1; for(j=0; j<(DEALY_RANGE)-1-i; j++){...原创 2019-12-01 14:23:56 · 1169 阅读 · 0 评论 -
IIC地址的移位
从工作以来一直在调芯片。使用IIC协议配置过LT8619C,LT8618,ADV7619这些芯片,他们的IIC通信地址和芯片手册上一致,读写均正常。最近在调一块特别的IIC芯片,LMH1983。它的IIC地址经过实验,才发现需要对IIC地址向左移位一位,个人理解的是需要流出一位表示读写状态。首先I2C的从机地址时MSB先发送的,所以需要左对齐,其次I2C时序中第8位即LSB使其R/W即读写控制...原创 2019-11-14 20:49:18 · 2053 阅读 · 1 评论 -
SPI发送函数
uint8_t SPI4_ReadWriteByte(uint8_t TxData,uint8_t reg){ uint8_t Rxdata; uint8_t get_error; Write_Data[0] = 0x01; Write_Data[1] = reg; Write_Data[2]...原创 2019-11-13 19:25:39 · 1363 阅读 · 0 评论 -
关于sizeof踩过的一个小坑
在DEV C++中写了一个例程,来表示我在项目中遇到的问题#include <stdio.h> char diff[19] = {0};int main(){ printf("%d\r\n",sizeof(diff)); }我习惯性的认为对数组diff[19]使用sizeof,得到的是20,但是经过验证,应当为19,以后注意。...原创 2019-10-05 16:21:58 · 194 阅读 · 0 评论