很多用户拿到板子以后说没有资料。在此再次公开下eBox生态圈的技术群:139218853群里有所有的资料。上传下教程:源码:源码不断更新最新下载地址:https://github.com
2015-12-14 13:47
`硬件【ebox生态圈】技术支持群:139218853Spark为STM32主板SPARK是基于STM32F103C8T6的控制板,作为eBox入门级的控制板,主要起到引导用户熟悉eBox固件库
2015-12-15 16:30
Spark详解(一):Spark及其生态圈概述
2019-06-21 16:45
为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。MQ 遥测传输 (MQTT) 是轻量级基于代理
2015-11-24 00:19
深圳智能硬件交流圈是几个在深圳热爱智能硬件技术的发烧友在2014年创立的交流圈,志在和对智能硬件有共同爱好的发烧友共同分
2014-10-25 14:55
串口在嵌入式设备中无疑是排在第一位的调试、输入输出接口!STM32中的串口应用起来比较简单,代码量不太复杂。但是一般用户的设计都是使用最基本的功能没有完全发挥串口硬件的功能,使得串口这个低速设备,严重影响了32的性能。一般情况下,使用串口的发送会浪费掉CPU的大量时间,到底有多大,你自己可以算算。为了解决这个问题eBox使用DMA来实现异步执行,使得单片机即使在没有操作系统的情况下也大大提高效率。此处讲解下异步执行的概念,当用户需要通过串口发送数据的时候,用户只需要将数据填充到发送缓冲区(指DMA发送缓冲区),然后开启DMA发送。MCU的任务就完成了,不用做任何等待就可以继续执行其他任务。这是,真正的发送是有DMA和串口自动配合完成字符串的发送。这就是简单的异步执行的概念。此例程用到USART类成员函数class USART{public:USART(USART_TypeDef *USARTx,GPIO *tx_pin,GPIO *rx_pin);void begin(uint32_t baud_rate);void printf(const char *fmt,...);此处没有将所有的成员函数列出,只列出了关键方法。详细内容请查看下面的附件。应用实例:#include "ebox.h"void setup(){ ebox_init(); uart1.begin(9600);}int main(void){ setup(); while(1) {uart1.printf("hello World !\r\n");delay_ms(1000); }}好清晰的赶脚啊!uart1对象在哪里创建的呢?USART uart1(USART1,&PA9,&PA10);这是串口1对象的创建。在object.cpp中。声明在eBox.h中。串口详解:我的众筹项目地址:http://z.elecfans.com/30.html 期待大家一起来完善和发展eBox,打造国人自己的库,不仅仅支持STM32,更能支持飞思卡尔MCU、NXP MCU······
2015-11-27 18:51
内容包含:广和通无线通信模组、广和通&ST通信解决方案和生态合作三个部分。
2023-09-05 08:08
这段时间eBox在不断的更新内容,先上一个最新的支持!定时器输入捕获模式基础知识:STM32输入捕获模式,主要用于测量输入信号的周期,进而计算波形的频率。正常情况下。输入捕获模式只能测量周期,因为stm32在输入捕获模式设置为检测上升沿或者下降沿。当检测到边沿后,保存定时器的当前值到TIMx->CCR1寄存器。在中断中读取此寄存器就可以得到两个上升沿或者下降沿之间的脉冲数,然后在根据定时器的时钟去计算波形的周期。如果要测量占空比就要在中断中重新设置边沿即可。特点1.支持TIM2,3,4的ch1,2,3,4.共计12个通道2.支持测量周期、频率、高级用法支持测量占空比3.定时器计数器最大值为0xffff,为了突破这个限制, 在本例程中,如果使用了update溢出中断调用overflow_event_process可以将计数器 拓展至2^32。大大提高测量范围,可以实现最高频率(1分频)测量周期低于60s的信号,如果信号长度。 如果使用2分频,可测量周期低于120s的信号,如果信号长度。以此类推。4.get_captur()的精度补偿值 //此处要加一个简单的修正值,此数为测试大致测试结果 //分频系数 | 补偿值 | TIM时钟频率 | 测试频率 //7200分频 | 0| 0.01M |1hz-100hz //720分频| 1| 0.10M |100-1K //72分频| 2| 1.00M |1K //64分频| 3| 1.125M|1K //36分频| 5| 2.00M |1K //32分频| 6| 2.25M |1K //18分频| 11| 4.00M |1K //16分频| 11| 4.50M |1K //9分频 | 18| 8.00M |10K //8分频 | 21| 9.00M |10K-50K //4分频 | 42| 18.0M |10K-50K //2分频 | 84| 36.0M |10K-50K //1分频 | 168 | 72.0M |10K-50K5.关于分频系数和脉冲宽度测量的计算关系,要遵循一个原则:在不溢出的情况下尽量使用低分频系数(高TIM时钟)去检测对象重点: 在采用低分频系数的时候,可以保证测量精度,但是会增大定时器溢出频率,进而增大cpu开销, 在采用高分频系数的时候,测量精度较低,但是会降低定时器溢出频率,进而降低cpu开销, stm32在72M主频下,最高可测160Khz的信号。如果再大,将无法测量。测试例程/*本例程为使用输入捕获模式测量一个PWM信号的周期和频率*/#include "ebox.h"IN_CAPTURE ic(&PA0);//创建一个输入捕获的对象PWM pwm1(&PB8);//创建一个PWM输出对象uint32_t value1;uint32_t value2;void mesure_frq()//输入捕获中断事件{ ic.set_count(0); value1 = ic.get_capture() + 170;//此处是一个校正值,查表可得。}void update_event(){ ic.overflow_event_process();}uint16_t p;void setup(){ebox_init();uart1.begin(115200); p = 1; ic.begin(p);//初始化输入捕获参数,p分频 ic.attch_ic_interrupt(mesure_frq);//绑定捕获中断事件函数 ic.attch_update_interrupt(update_event); pwm1.begin(1000,900); pwm1.set_oc_polarity(1);}int main(void){setup();while(1) {if(value1){uart1.printf("overtimes = %d\r\n",ic.get_overflow_state());uart1.printf("value1 = %d\r\n",value1);//输出PWM周期uart1.printf("frq = %0.0f\r\n",(72000000.0/p)/(value1));//输出PWM频率value1 = 0;}}应用场合 1.红外遥控接收解码。2.DS18B20温度解读。DHT11温湿度模块读取温度3.测电机转速。等等,只要是需要测频率、周期、占空比相关的,都可以用此代码来实现!上传一个工程:我的众筹项目地址:http://z.elecfans.com/30.html 期待大家一起来完善和发展eBox,打造国人自己的库,不仅仅支持STM32,更能支持飞思卡尔MCU、NXP MCU······
2016-01-09 15:35
《智能小车机器人制作大全》汇集了多位创客在智能小车机器人方面的丰硕成果,不仅为刚接触机器人制作的初学者提供了详尽的入门教程,还为有一定基础和经验的
2019-05-05 13:19
前言:入FPV的坑,买的五寸太大,飞起来就是个移动的血滴子,有点害怕,所以想做个低成本、有保护圈的FPV练手。空心杯材料:7.4V 2S 8520空心杯电机
2021-09-13 07:56