推荐阅读最新更新时间:2024-03-16 15:00
自己写单片机操作系统2栈的应用
栈在MCU中有着非常重要的作用。定义局部变量,函数跳转,寄存器保护都需要使用到栈。 但是在MCU中,只会默认一定大小的栈给我们使用。那么多任务就需要多个栈了,那只能自己的创造栈了。 static unsigned int stkbuf ; //创造一个100个word的任务栈。这个是16位单片机寄存器要以16位为准 void NewFunBuff(VOID_FUN_PTR task,unsigned int* opt) { *opt = (U16)(((U32)task) 8); //将任务的指针放到stkbuf中 opt--; *opt = 0x80; //设置地址偏移 ((U8*)opt)--;
[单片机]
单片机实验开发板测试程序详解
通常我们网站提供的试验开发板是焊接并测试好的成品板,如果是购买套件的网友,可以开始51单片机实验板的一系列安装与实验,网友邮购的实验板套件包含以下的元件清单,收到货物后请仔细核对一下元件清单: AT89C51单片机实验开发板套件元件清单: 专门设计的全工艺电路板一块 电源部分元件: 1. 9伏左右直流插头式小电源,带插头(空载12伏) 2. 电源插座一个 3. 7805稳压芯片一个 4. 470UF/16V电源滤波电容两个 5. 0.1UF独石电容两个 6. 电源指示绿色LED一个 7. LED限流电阻560欧姆电阻一个 单片机必须部分的元件: 1.
[单片机]
STM32学习之通用定时器的使用
简介:STM32一共有8个通用16位Timer,其中TIMER1和TIMER8是高级定时器,其它的TIMER2~TIMER7是普通定时器。此外还有一个Systick(系统滴答定时器),这个定时器通常在操作系统中作为系统的任务切换周期。还有一个RTC,是一个毫秒定时器,支持秒级中断,用来做实时时钟计数器。看门狗定时器 也可以算一个。 8个定时器中,Timer1 和Timer8是由APB2(输出最高频率为72MHZ)预分频后,再通过一个倍频器得到时钟频率,最高为72MHz。Timer2~Timer7则是由APB1(输出最高频率为36MHZ)预分频后,再通过一个倍频器得到时钟频率,最高为36MHz。 1、如何进行程序编写 这
[单片机]
STM32之IIC通讯升级版--SHT30温湿度读取
针对上篇文章对于程序可移植性不强的问题进行优化,基本思路是首先搭建好IIC底层驱动程序,该程序可用于任何IIC通讯设备,然后针对不同的IIC设备单独编写应用程序,本篇文章仍以SHT30为例。 一、IIC底层驱动之myiic.h #ifndef __MYIIC_H #define __MYIIC_H #include sys.h //IO方向设置 #define SDA_IN() {GPIOC- CRH&=0XFFFF0FFF;GPIOC- CRH|=8 12;} #define SDA_OUT() {GPIOC- CRH&=0XFFFF0FFF;GPIOC- CRH|=3 12;} //IO操作函数
[单片机]
单片机典型案例开发(二)
一、宿舍智能报警系统设计方案 摘要:该系统以凌阳公司的16位单片机SPCE061A作为主控制器,通过烟雾传感器与人体热释电红外传感器分别感应烟雾与人体红外信号,通过单片机做出报警动作。本系统设计主要是满足宿舍自动报警的需要,设计的目标是要实现语音报警、时间设定和显示、灯光报警并实现网络报警等功能。 1 设计方案 1.1 主控制器的选择 采用凌阳公司的16位单片机SPCE061A作为主控制器。由于SPCE061A内置有2 KB的SRAM和32 KB的内存FLASH,能满足本系统存储密码及各类数据的要求,且CPU时钟频率高达49.152 MHz,能保证响应的快速性,内置的语音模块更提高了系统人机界面的友好性。
[单片机]
PIC16F84A单片机教程板详解(PCB图和原理图
这是一个新的设计,基于流行PIC16F84A单片机教程板 。它具有8个单个的LED,7段显示器,LCD显示器和五个按钮 。这是一个理想的解决方案,为初学者采取/她在微控制器的世界第一的编程步骤。有一个在电路编程(ICP)头,它可以轻松地重新编程,无需拔下单片机每次,提供程序员也支持此功能(如OziPic'er) 。 连接 功能说明 - S1 开关板的开启和关闭。时,LED指示灯LED9点亮 - S2的 复位微控制器。 - S8 开关液晶显示器和关闭 - S9 交换机八个单独的LED和七段显示和关闭。 -按钮 S3,S6对应的RA0 - RA3投入。他们SW
[工业控制]
stm32 PWM驱动舵机
今天使用stm32控制舵机,调试了许久,总结如下: 注意事项: 1.PWM周期的设定:初值,20000-1,分频=72-1。周期是:72M/72*20000=20ms 频率=50hz; 2.这个型号的舵机应该是5VPWM信号输出。而STM32是0-3.3,引起无法驱动。 更新:原来我上次无法驱动舵机是因为我把舵机的三条线搞错了,大写的尴尬 VCC——– 红 GND——– 黑 DATA——– 白 幸亏我潜意识里吧黑色的当成GND。。。。。。。。不然。。。。 故:以下程序成立。 #include pbdata.h void RCC_Configuration(void); void GPIO_Confi
[单片机]
STM32硬件IIC操作解析
IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的一种简单、双向、二线制、同步串行总线,主要是用来连接整体电路(ICS) ,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线接口。 I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。 为了避免总线信号的混乱,要求各设备连接到总线的输出端时必须是漏极开路(OD)输出或
[单片机]