摘要:
信号量使用说明 (1)定义信号量 struct semaphore sem; (2)初始化信号量 void sema_init(struct semaphore *sem, int val); 该函数初始化信号量,并设置信号量sem的值为val。 (3)获得信号量 extern void down( 阅读全文
摘要:
通信速度和距离 can通讯的最高速率为1 Mbps,而485通讯的最高速率为10 Mbps。can通讯在低速时可以达到10 km的距离,而485通讯的距离通常不超过1200 m。因此,can通讯适合于实时性要求高、距离较远的场合,而485通讯适合于速率要求高、距离较近的场合。 网络拓扑结构 can通 阅读全文
摘要:
一、字符设备 字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。 比如我们最常见的点灯、按键、串口、IIC、SPI,LCD等等都是字符设备,这些设备的驱动就叫做字符设备驱动。 二、块设备 系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备 阅读全文
摘要:
实时操作系统的定义 实时操作系统是保证在一定时间限制内完成特定功能的操作系统(执行时间的确定性是实时操作系统最根本的,其代价往往就是吞吐量低)。 实时操作系统有硬实时和软实时之分,软实时仅仅要求事件的响应是实时的,并不要求任务必须在多长的时间内完成。硬实时不但要考虑响应速度(即从一个事件发生到系统对 阅读全文
摘要:
简介 高速CAN(经典CAN):ISO11898 低速CAN:ISO11519 CAN FD:兼容经典CAN 使用场景 多主机场景,每个设备都可以主动发送数据 物理层 CAN收发器的功能是将CAN控制器的TTL信号转换成CAN总线的差分信号 和单片机连接的接收引脚的信号表示总线当前的信号,主要两个目 阅读全文
摘要:
使用场景 单主多从,只有一个主机控制通信,其他节点只能被动接收或应答 物理层规定 485 有两个线,A线和B线。空闲状态:AB线悬浮在2.3V的样子;工作时,AB线在2.3v上做逻辑01(-2v,+2v)跳变。 485标准规定: 对于发送端,逻辑1以AB两线间的电压差为 正(2~6)V 表示;逻辑0 阅读全文
摘要:
电池(电芯)分类 正极材料 三元锂电池 优点:能量密度高、低温性能好(放电性能衰减) 缺点:化学性能活跃、耐高温性差(容易着火)、成本较高、充放电次数1000~2000 磷酸铁锂电池 优点:化学性能稳定、耐高温性好、成本较低、充放电次数3000 缺点:能量密度低、低温性能差 放电电流 动力电池 放电 阅读全文
摘要:
STM32在使用时有时需要禁用全局中断,比如MCU在升级过程中需禁用外部中断,防止升级过程中外部中断触发导致升级失败。ARM MDK中提供了如下两个接口来禁用和开启总中断:__disable_irq(); // 关闭总中断__enable_irq(); // 开启总中断 但测试发现这样一个问题,在关 阅读全文
摘要:
临界区 FreeRTOS: 非中断的临界区,根据优先级关中断,不会把所有中断都关了;使用了一个变量记录进临界区的次数,保证嵌套不出问题 void vPortEnterCritical( void ) // 进入临界区 { portDISABLE_INTERRUPTS(); uxCriticalNes 阅读全文
摘要:
明确问题 首先,让我们明确一下问题。 对于这个问题,稍微准确一点的问法是:为什么在 Linux 的中断里,不能 sleep? 但是这个问法仍然不准确。 中断 (interrupt) 和中断服务程序 (interrupt service routine, ISR,或者是 interrupt handl 阅读全文