摘要:
DS18B20是由DALLAS半导体公司推出的一种的“一线总线”接口的温度传感器移植了正点原子的驱动,单总线时序,在神舟IV进行验证,只改动了读取函数,之前返回short类型,我改成了float,正点原子在小数显示时用了/10,我没用液晶直接串口输出,printf %f 原子地址:http://openedv.com/posts/list/13366.htm神舟板子上使用PE1作为DS18B20的DQ另:DS18B20可以总线挂很多传感器,ROM指令也有四五个,可以查询,操作特定的某个器件,我这里只用了一颗DS18B20,所以用了最简单的初始化,读取温度值流程。.h1 //PE1作为DS18B 阅读全文
摘要:
实时系统的两个基本要求:1,实时系统的计算必须产生正确的结果,称为逻辑或功能正确2,实时系统的计算必须在预订的时间内完成,称为时间正确按时间程度又分为:硬实时操作系统和软实时操作系统,如果要求系统必须在严格的时间内完成实时任务,那么这样的系统就叫做硬实时操作系统。内核类型:可剥夺型,不可剥夺型 可剥夺型:CPU总是运行多个任务中优先级别最高的那个任务,即使CPU正在运行某个低优先级别的任务,当有高优先级别的任务准备就绪的时候,该高级别的任务就会剥 夺正在运行任务的CPU使用权 可剥夺型内核实时性较好uc/os-II:uc/os-II的任务就是一个函数。从任务的结构上看,uc/os-II的任务由 阅读全文
摘要:
大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如图2.1所示:小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。如图2.2所示:请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1解答:int checkCPU( ){ { union w { int a; char b; } c; c.a = 1; return(c.b ==1); }}剖析:嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。例如,16bit宽 阅读全文
摘要:
FIFO芯片第一次接触,主要作用是匹配不同速率传输,作为缓存SCCB初始化错误,持续三四天了,写出电平和调试都没看出问题,SDA的读始终是1,郁闷,纠结 阅读全文
摘要:
Code是代码占用的空间,RO-data是 Read Only 只读常量的大小,如const型,RW-data是(Read Write) 初始化了的可读写变量的大小,ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化。简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code+ROData+RWData程序运行的时候,芯片内部RAM使用的空间为:RWData+ZIDataCode, RO-data,RW-data ..............flash RW-data, ZIdata.............. 阅读全文
摘要:
使用原子模块,以及驱动:http://openedv.com/posts/list/0/11969.htm#74038我们使用的是ALINETEK的OLED显示模块,该模块有以下特点:1)模块有单色和双色两种可选,单色为纯蓝色,而双色则为黄蓝双色。2)尺寸小,显示尺寸为0.96寸,而模块的尺寸仅为27mm*26mm大小。3)高分辨率,该模块的分辨率为128*64。4)多种接口方式,该模块提供了总共5种接口包括:6800、8080两种并行接口方式、3线或4线的穿行SPI接口方式,、IIC接口方式(只需要2根线就可以控制OLED了!)。5)不需要高压,直接接3.3V就可以工作了。这里要提醒大家的是 阅读全文
摘要:
关于STM32映射地址空间,以及战舰板子的外加SRAM地址等有些不解,论坛和原子讨论了一下,稍微明白了一些,记录在此,不一定正确http://openedv.com/posts/list/0/13394.htm?privmsg=1#73668原子哥,还有一个小问题,也是关于地址的,在手册4.6节,讲MDK中地址映射,两个相邻寄存器之间的偏移都是0X04,这是因为寄存器都是32位,32/8=4byte么? 在sram中地址都是偏移0x01,这是因为512k*16位=1MB,我们寻址时候只寻址512k的数据量。而上面寄存器映射的寻址如果也是1MB空间,我们就相当于寻址1MB的数据量。 这样理解对么 阅读全文
摘要:
本文转载1. __attribute__GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)__attribute__前后都有两个下划线,并且后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数__attribute__语法格式为:__attribute__ ( ( attribute-list ) )函数属性(Function Attribute),函数属性可以帮助开发者把一些特性 阅读全文
摘要:
原子的地址:http://openedv.com/posts/list/13103.htmSPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,STM32也有SPI接口。SP 阅读全文
摘要:
正点原子的教程:http://openedv.com/posts/list/12146.htmSTM32的低功耗模式有3种:1)睡眠模式(CM3内核停止,外设仍然运行)2)停止模式(所有时钟都停止)3)待机模式(1.8V内核电源关闭)在运行模式下,我们也可以通过降低系统时钟关闭APB和AHB总线上未被使用的外设的时钟来降低功耗。三种低功耗模式一览表见表21.1.1所示:表21.1.1 STM32低功耗一览表在这三种低功耗模式中,最低功耗的是待机模式,在此模式下,最低只需要2uA左右的电流。停机模式是次低功耗的,其典型的电流消耗在20uA左右。最后就是睡眠模式了。用户可以根据自己的需求来决定使用 阅读全文