![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 78
无聊达612
这个作者很懒,什么都没留下…
展开
-
bq4050芯片SMBUS(IIC/i2c)使用
说明书中bq4050的默认设备地址为0x16。很多人做i2c的时候,是这样操作的: (0x16<<1)|0x01 ,通过这样的方式来设置读写位为1,也就是读取,但是不知道是我这个电池的问题还是什么的,说明书中的0x16这个地址位其实是包含了读写位的,也就是说写的地址是0x16,读的地址是0x17,如果左移的话,地址反而不对了。更坑到我的是我用的atmel atmega 4809的芯片,直接调用系统的硬件i2c发送,会自动左移1位,也就是说,0x16发送出来变成0x2c了,那么这时...原创 2020-08-27 17:39:34 · 7356 阅读 · 1 评论 -
atmelstudio atmega4809无法通过printf打印浮点数到串口
选择右侧的项目,右键,选择properties原创 2019-11-27 15:11:18 · 436 阅读 · 0 评论 -
two or more data types in declaration
修改的时候多写了一个void原创 2019-11-22 09:51:34 · 396 阅读 · 0 评论 -
封装自己的printf函数
#include <stdio.h>#include <stdarg.h>#define DBG_PRINT (printf("%s:%u %s:%s:\t", __FILE__, __LINE__, __DATE__, __TIME__), printf)#define TESTFLAG 1void my_trace(const char *cmd, ...)...原创 2019-10-21 15:17:13 · 824 阅读 · 0 评论 -
编码开关驱动代码
下图是我正在使用的编码开关的时序图(可能你用的编码开关的时序图是反过来的,这不重要,稍微改一下就能用了), 其实鉴别编码开关正反转的关键地方就是找到编码开关正反转时序图不同的地方。可以发现,正转时,A比B快半个波形,反转时,B比A快半个波形。A、B管脚容易抖动,建议两个引脚各加105电容到地消抖。第一种的方法:我们设置A为下降沿中断当A下降沿时,判断B的状态,若是...原创 2019-08-20 14:53:03 · 3909 阅读 · 0 评论 -
mplab x ide安装mcc(MPLAB代码配置器)
1、打开tools-plugins,在打开的plugins窗口中找到MPLAB Code Configurator,勾选,点击Install2、出现安装向导,一路next和agree,安装结束之后restart3、打开tools-Embedded-MPLAB Code Configurator,启动代码配置器...原创 2019-03-25 09:50:49 · 10374 阅读 · 2 评论 -
GPIO output level 和 GPIO Pull-up/Pull-down的区别
GPIO output level :是默认输出电平 GPIO Pull-up/Pull-down:上下拉模式原创 2019-01-30 15:51:50 · 17389 阅读 · 2 评论 -
截取字符串中需要的一段字符串
我的目的是从char str[] = "+ADVADDR: 0,BCC080EE000D,-78,AWDHAFK";这串字符串中截取到我需要的MAC地址BCC080EE000D,备注:同一个厂家的模块一般MAC地址的前三个字节是相同的,剩下的前三个字节由厂家分配 #include <stdio.h>#include<string.h>int m...原创 2019-01-31 14:26:48 · 3396 阅读 · 0 评论 -
stm32 hal printf重定向
usart1配置如下打开中断(也可以不开,只是顺手开了)时钟配置:如果不严格要求就按软件自己配的来,如果是外部时钟源,晶振的频率一定要选对,否则会乱码 生成报告以及代码,编译程序。在usart.c文件中可看到串口1的初始化函数MX_USART1_UART_Init(void),以及管脚配置函数HAL_UART_MspInit()。 C语言中的...原创 2019-01-09 09:44:57 · 11402 阅读 · 3 评论 -
stm32f0 hal adc配置
Clock Prescaler:和系统时钟同步并且二分频Sampling Time :采样时间,采样时间是你通过寄存器告诉STM32采样模拟量的时间,设置越长越精确原创 2019-01-08 17:21:32 · 2822 阅读 · 2 评论 -
0error,0warning保佑
效果图链接:https://pan.baidu.com/s/1rjA908GXaT-zVyKBYYNFJw 提取码:ugry 如果网盘失效了:传送门原创 2019-01-24 12:16:54 · 2669 阅读 · 0 评论 -
stm32 hal 定时器
配置tim17 定时器频率计算方式f=8M/8000/1000= 1Hz (我的时钟主频是8M,只有APB1)中断顺手勾上代码部分:在while循环前加上HAL_TIM_Base_Start_IT(&htim17);//开启定时器在/* USER CODE BEGIN 4 */和/* USER CODE END 4 */中添加/******...原创 2019-01-08 11:54:33 · 3566 阅读 · 0 评论 -
stm32f0独立看门狗配置
独立看门狗STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。设置好看门狗的分频系数 prer 和重装载值就可以知道看门狗的喂狗时间 (也就是看门狗溢出时间) ,该时间的计算方式为Tout=((4×2^prer) ×rlr) /40具体配置先开启看门狗对看门狗进行设置,这里主要的是设置IWDG down-counter...原创 2019-01-08 10:59:40 · 2261 阅读 · 0 评论 -
stm32 hal 模拟i2c
管脚配置(我是用的是PA9和PA10)://i2c.h#include "stm32f0xx_hal.h"#define GPIO_PORT_I2C GPIOA // GPIO端口 #define I2C_SCL_PIN SCL_Pin // 连接到SCL时钟线的GPIO #define I2C_SDA_PIN SDA_Pin // 连接到SD...原创 2019-01-10 15:23:02 · 10092 阅读 · 1 评论 -
STM32 HAL库串口发送4字节数据
uint32_t MotorEncoder = 0xff3c1A09; uint8_t code[4]; code[0]=(uint8_t)(MotorEncoder>>24); code[1]=(uint8_t)(MotorEncoder>>16&0xFF); code[2]=(uint8_t)(MotorEnc...原创 2019-01-04 17:32:18 · 3678 阅读 · 0 评论