- 博客(13)
- 收藏
- 关注
原创 I2C器件地址扫描(GD32)
前几天用linux时候碰到一个有趣的工具,i2ctools,发现可以使用这个工具去扫描挂载在同一IIC总线上的所有设备的器件地址,刚好手上有个GD32的板子,模仿下做个类似的功能。
2023-11-08 14:14:50 603 1
原创 FreeRTOS知识点汇总(一)
任务状态运行态阻塞态: 等待事件发生,时间相关事件或者同步事件暂停态主动休息被动休息就绪态状态转换图阻塞态和暂停态区别可以这么理解,路上塞车了,需要等待前面的车通行了才能继续往前开,即等待一定条件,满足这一条件后可以继续执行,这个条件可以是同步事件,也可以是时间超时事件。这个是阻塞态。暂停态就相当于你辞职了,想玩多久就多久,不必等待条件。...
2022-04-16 19:56:31 348
原创 I2C使用上拉电阻详解
SDA使用上拉电阻?设备的SDA中有一个三极管,使用开极/开漏电路(三极管是开极,CMOS管是开漏,作用一样),如下图:真值表如下:从真值表和电路图我们可以知道: 当某一个芯片不想影响SDA线时,那就不驱动这个三极管 想让SDA输出高电平,双方都不驱动三极管(SDA通过上拉电阻变为高电平) 想让SDA输出低电平,就驱动三极管 从下面的例子可以看看数据是怎么传的(实现双向传输)。 举例:主设备发送(8bit)给从设备 前8个clk ..
2022-04-15 12:06:58 3528 1
原创 嵌入式C语言语法(一)
数据类型的作用指定类型,确定编码指令,优化编译速度合理分配内存大小(如char: 1byte, short: 2bytes, int: 4bytes)位运算设置指定位a |= 1<< bit;清除指定位a &= ~(1<<bit);测试指定位if(a&(1<<bit)){}else{}指针内存与地址在计算机中,数据是存放在内存单元中的,一般把内存中的一个字节称为一个内存单元。为了更方便地访问这些内存
2022-04-14 17:11:20 912
原创 裸机和rtos两种开发方式的区别
一、裸机开发1.轮询方式轮询,顾名思义就是事情一件件按顺序来,同一时间只能做一件事情。举个例子,一个妈妈要做两件事情,喂饭和回信息,只能先喂好饭,然后再回信息,两件事情不能同时做有先后顺序。void main(){ while (1) { 喂一口饭(); 回一个信息(); }}2.事件驱动事件是一个宽泛的概念,什么叫事件?可以是:按下了按键、串口接收到了数据、模块产生了中断、某个全局变量被设置了。什么叫事件驱动?当某个事件
2022-03-14 20:55:34 2642
原创 STM32之GPIO工作模式
一、GPIO工作状态stm32或者说基本上所有MCU的工作状态都基本可以分为以下几种,输出模式:推挽输出、开漏输出、复用推挽输出和复用开漏输出;输入模式:上拉输入、下拉输入、浮空输入和模拟输入。1.输出状态①推挽输出推挽输出由一对P-MOS和N-MOS组成,当输出控制端输出为高时,上端的PMOS导通,NMOS截止, 电流方向为VDD->PMOS->输出端,对外呈现高电平;当输出控制端输出为低时,上端的PMOS截止,NMOS导通, 电流方向为VSS->NMOS->输
2022-03-14 18:02:54 1220
转载 转载-Cortex-M系列内核启动文件分析
转载出处:https://blog.csdn.net/zuixin369/article/details/85570338 启动文件简介启动文件由汇编编写,是系统上电复位后第一个执行的程...
2020-04-13 11:27:04 158
原创 数据结构学习: 剩下的树
题目描述有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,...,L共L+1个位置上有L+1棵树。 现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。 可能有M(1<=M<=100)个区间,区间...
2019-11-24 18:24:07 210 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人