donatello
获得 765 次赞
帮助过2489人
上次用彩屏刷了静态的bmp位图和汉字,这次试试做点实用性更高的实时时钟和实时温度显示。其实这个做起来比刷bmp位图更简单,只需要几个步骤: 1.使用取模软件录入阿拉伯数字和部分符号如/和:的字模码; 2.将字模码排好序放到const数组中,编写调用函数(可以先尝试在屏幕中间显示一行0123456789) 3.在主循环或者定时器中断中检测温度和日历数据,存入变量中 4.以变量为实参传入字模调用函数中,达到显示变量的目的
学习单片机,总免不了要与各种各样的外设器件进行通信,与外设通信则必须通过信号线,信号线接口按照传输数据的方式分为串行接口和并行接口,其中常用的串行接口有iic,spi,u(s)art和单总线。 今天用到的ds18b20是dallas公司研发的单总线的温度传感器,主机发送温度检测命令后的规定延时后,温度数据以二进制bcd码传回到主机,数据线只有一根。由于是单总线器件,因此在写程序时必须严格控制延时,如果stm32像51单片机那样使用粗延时函数来与ds18b20通信是绝对会出错的,因此必须使用基于systick的精确延时函数。在宏定义中可以配置相关引脚,方便移植。
恩智浦maps开发套件前天刚到,离确认日期仅仅两天,对云汉家的效率点个赞。云汉家一向发顺丰快递,快递刚到的时候确实让我眼前一亮,一个边长20厘米的立方体箱子,箱子边长20厘米是什么概念!可以放得下一个台灯,或者一双鞋子,或者一罐元朗蛋卷!可想而知四色板的配件有多大! 开箱之后可以发现四色板的零件由三个小盒子装着,这三个小盒子 分别装m板(带tft彩屏的mcu主板),a板(带12864点阵屏和一些常用接 口的应用板),usb数据线和串口线。
众所周知,ucosii是非占先式实时操作系统,今天我就分享一下ucosii最简单的使用体验——任务调度。首先我们我们可以在宏定义中设置任务的堆栈大小和优先级。程序执行main函数后即创建三个实时任务,创建任务的函数有四个参数是指向任务的函数指针,指向任务的数据指针,任务堆栈,任务优先级。main函数进入任务临界区时无法被中断打断,但是退出临界区后可以。
本帖最后由 donatello 于 2017-1-18 16:57 编辑 systick是系统滴答时钟,又叫做比较精确的delay函数,之所以说它比较精确,是相对于套两个for循环的粗延时函数而言的。systick实质上是系统时钟的八分频,stm32f103系列的主频是72m,八分频就是9m,既然是9m的时钟,那么从开始计数到计数9m次溢出就可以得到一个固定的时间长度值,这个时间长度值经过误差处理后就可以当作是1微秒,计数9m次这个过程重复做1000次就是1毫秒,systick的delay函数就是这么来的。systick是stm32小白必须掌握的延时手段,因为一来,stm32与单总线器件如ds18b20,dht11,红外接收头等器件通信必须用systick延时函数而绝对不能用粗延时函数,这是我经过早期对stm32的学习实测证明的;二来systick函数可以用在rtos(实时操作系统)上面生成节拍延时,节拍是任务时间计算和任务切换的最小时间片单位。systick虽然跟粗延时函数一样也占用cpu资源,但是占用率已经大大降低。注意,使用systick必须正确初始化系统时钟!
之前那个帖子弄的彩屏显示图片只是把图片的数据定义成const数组存在内置flash里面,这次把图片数据先存到板载spi flash再读出来,那么就不占用内置flash空间并且可以掉电保存。
不够的话,给你两个:lol
我找tft彩屏的例程是去淘宝搜索同型号液晶的宝贝介绍的资料里面的,一般来说驱动芯片一样,程序就通用,这个程序是stm32的,给mm32也是适用的