- 博客(27)
- 资源 (4)
- 收藏
- 关注
原创 RT-Thread学习笔记
背景:参加2020嵌入式暨智能互联大赛,使用的是此前已经成型的作品:外卖自提柜:https://blog.csdn.net/weixin_44578655/article/details/105945891比赛有使用RT-thread的选项,由于此前作品使用FreeRTOS,大体看了一下RT-thread的API文档,发现跟FreeRTOS比较像,决定移植一下。感想:RT-thread有原生中文文档,示例丰富,有官方的视频教程,对于初学者相当友好,相比FreeRTOS,我更推荐这个国产的实时操作
2020-12-01 18:28:16 2170
原创 2020年TI杯大学生电子设计大赛 无线运动传感器节点 作品开源( PCB、设备/服务器工程、文档、测试视频、设计报告)
简介作者博客主页:https://blog.csdn.net/weixin_44578655该文档及相关资料系博主参加2020年TI杯大学生电子设计大赛的作品,关联博客:https://blog.csdn.net/weixin_44578655/article/details/109020022资料链接(百度网盘):链接:https://pan.baidu.com/s/1WnXZ1bDB-cs1LRwfiP6rYg提取码:iqek目录:原理图、PCBPCB是使用立创EDA绘制的,文件夹
2020-10-18 22:59:29 12972 72
原创 2020年TI杯大学生电子设计大赛 无线运动传感器节点 备赛、参赛实录(历时一个月)
10.9晚上出题,看了两三道题,果断选了A题(无限运动传感器节点设计),赛前备赛情况:ADS1292已调通已完成模拟器的心电信号LCD显示和上位机显示,能够实现稳定的心率测量(使用心电信号模拟器)接入人体测试时,存在基线漂移和肌电信号干扰,开提前暂未得到解决(此前搜过不少相关文献,处理办法比较多,但一直没测试)题目下发后,由于没仔细读要求,以为心电可以接模拟器测(我们此前使用模拟器的效果非常好),因此觉得第一问的分已经拿到,第二问是送分题,第三题看起来不难,第四题备赛期间已经实现。当晚很自信的
2020-10-16 01:32:50 15653 25
原创 NXP恩智浦智能车四轮组--3. STC8的ADC使用注意事项
简要之所以要单独测试一下STC8的ADC,主要有两个问题。STC8手册里的ADC输入阻抗极低,需要实测是否影响正常使用。ADC的测量电压范围受Vref影响,0<Vin<Vref。STC8手册中的ADC输入阻抗:可以看到 ,输入阻抗仅有几百欧,低到变态。如果真的只有几百欧,拿运放检波后的输出为例:信号经过检波,接入STC8的ADC以后,检波的RC滤波中的R,由原来的R3=51k,变为R3与ADC的等效输入电阻并联,即51k*500/(51k+500) ≈ 500这会直接导致
2020-07-11 21:39:35 3332 3
原创 proteus仿真有源/无源蜂鸣器
proteus仿真有源蜂鸣器1.在器件选择中找到有源蜂鸣器(第二个):2.找一个NPN三极管3.按图示连接4.双击蜂鸣器,将电压参数改为5V5.开始仿真,按下按键时蜂鸣器响。6.改为使用单片机控制,IO口为高电平时蜂鸣器鸣叫:蜂鸣器的驱动电流较大,IO口无法直接驱动,所以需要经过三极管放大电流驱动,其中R1为三极管基极的限流电阻,R2是基极下拉电阻,保证基极浮空或处于高阻态时,三极管有效关断,防止误触发。...
2020-07-02 21:27:46 61795 12
原创 Proteus8.9 安装教程、闪退问题解决
经常有同学使用Proteus时出现这样的问题:在对LCD、数码管等器件仿真时,仿真运行一段时间后闪退。问题原因:安装步骤错误。网上有不少安装教程中没有纠正这一点,安装后虽然可以正常使用,使用数码管等器件时就会暴露问题。安装Proteus8.9的正确姿势:为什么选择8.9版本?因为8.9版本开始支持stc15w4k32s4、stm32f401安装包链接:第一步双击打开P8.9 sp0.exenext勾选同意协议,next选择本地密钥,next如果你之前安装过proteus,
2020-06-08 07:44:22 52583 65
原创 NXP恩智浦智能车四轮组-- 2.电磁检波电路、运放模块原理图
上一篇:恩智浦智能车四轮组-- 1.电磁检测方案、运放选型之前对运放的选型基本确定下来,除了运放,如果搭配STC8单片机的ADC做电磁信号的采集,运放模块设计时还要注意一些细节。检波电路对于检波电路,组委会给过一个参考设计:翻看了几个队伍的技术报告,基本都是沿用组委会的电路:经运放放大过的电磁信号经过C3耦合,去除直流偏置,D1和D2进行半波检波(单独D2也可以检波,D1起到了倍压的作用),再经C4和R3滤波,输出变为直流。检波电路的工作原理,可以参考这个博客:为何使用峰值检波电路?峰值检波
2020-05-21 19:20:10 12339 3
原创 proteus仿真stc15--P0 IO口的BUG
仿真矩阵键盘时,发现仿真中的stc15的IO口有蜜汁bug…首先,P0M0,P0M1之类的IO口配置语句完全无效。按上图中不论怎么配置都无效。如果说这算正常,暂且都默认它们是准双向IO口。这些IO口的输出阻抗非常玄学,上图:先放一个正常点的图,这里不加电阻,是直接拉低的:图中,P0.0~P0.3输出为低电平,P0.4 ~ P0.5输出为高电平,按理说,准双向IO口是弱上拉,300欧的下拉,完全是可以拉低的,结果没有。这个输出有16mA了,已经是达到推挽的输出能力了。我加了一个10k的上拉
2020-05-20 22:31:51 3701 1
原创 恩智浦智能车四轮组-- 1.电磁检测方案、运放选型
电磁检测电路方案、选型比赛场地是20kHZ的信号,使用LC并联谐振进行选频,放大电路放大,经过检波输出为直流信号,接入ADC。LC并联谐振LC并联谐振原理LC并联谐振选频公式为:看了不少报告、淘宝成品,基本用的都是:10mH电感+6.8nF电容严格来说,根据上述公式,将20kHZ代入,10mH应该对应6.33nF。此外,电感和电容的Q值影响选频的精度,Q 越大,振幅特性曲线越尖锐,在f=fo附近相频特性变化越快,选频性能越好。另外,电感和电容的制造误差,会导致不对称的情况,有条件的话
2020-05-17 19:22:03 20607 4
原创 项目实战-外卖自提柜 6. 硬件工作与测试(原理图、PCB绘制、测试视频)
项目实战-外卖自提柜 1.项目介绍、协议制定项目实战-外卖自提柜 2. CubeMX + FreeRTOS入门项目实战-外卖自提柜 3. FreeRTOS主要API的应用项目实战-外卖自提柜 4. FreeRTOS 堆栈分配、调试技巧项目实战-外卖自提柜 5. ESP8266 01S配置与掉线处理软件基本完工后,开始画PCB,这里还是吹一波立创EDA,不是盲目吹,因为AD我也一直在用,AD确实专业,但普通双层板立创EDA也完全能胜任(白嫖一时爽的那种),即便是用AD画板,我也都是从立创EDA导出封
2020-05-09 00:05:39 6360 2
原创 项目实战-外卖自提柜 5. ESP8266 01S配置与掉线处理
项目实战-外卖自提柜 1.项目介绍、协议制定项目实战-外卖自提柜 2. CubeMX + FreeRTOS入门项目实战-外卖自提柜 3. FreeRTOS主要API的应用项目实战-外卖自提柜 4. FreeRTOS 堆栈分配、调试技巧其实不想ESP8266还要单独水一篇,以前玩过,以为AT指令挺好调的,实际调的时候遇到不少小问题,有的问题在网上没找到,自己摸索摸索了挺久,所以就单独写了。ESP8266 01S配置TCP透传,用到的AT指令如下:AT指令功能AT测试硬件是
2020-05-08 23:21:32 2832
原创 项目实战-外卖自提柜 4. FreeRTOS 堆栈分配、调试技巧
项目实战-外卖自提柜 1.项目介绍、协议制定项目实战-外卖自提柜 2. CubeMX + FreeRTOS入门项目实战-外卖自提柜 3. FreeRTOS主要API的应用堆栈空间分配这部分很重要,如果选择的单片机RAM比较吃紧,那就要精打细算了。这个问题牵连了不少容易混淆的概念,我在学习的时候也翻了很多帖子,按照自己的理解梳理了一下,有错误请评论区或私信指出。参考博客:https://www.cnblogs.com/CaesarTao/p/9816965.html先是RAM,我选用的是st
2020-05-08 19:01:50 5511 2
原创 项目实战-外卖自提柜 3. FreeRTOS主要API的应用
项目实战-外卖自提柜 1.项目介绍、协议制定项目实战-外卖自提柜 2. CubeMX + FreeRTOS入门第一个任务初步入门FreeRTOS以后,着重解决通信部分,重新梳理一下与服务器通信部分的需求:设备端和服务器通信,发送方每发送一条指令,接收方都要在收到后返回一个应答帧,发送方收到应答帧后,才判断此次通信正常,若规定时间内未收到应答帧,则重新发送。另外需要注意的是,发送方在等待...
2020-05-08 00:15:20 4002 4
原创 项目实战-外卖自提柜 2. CubeMX + FreeRTOS入门
上一篇 项目实战-外卖自提柜 1. 项目介绍,协议制定 简要选择使用FreeRTOS,除了需求原因,还有这是第一个接触的RTOS,也想把它用到项目上。这一阵子刚好从标准库脱坑,加入到HAL库的大家庭中,所以CubeMX+FreeRTOS成为理所当然的选择,也省了我很多时间。HAL库先说HAL库,这个在网上褒贬不一,我也算标准库、HAL库都用过,HAL库开发快,HAL库在开发周期上是比标准...
2020-05-06 23:12:04 4636 28
原创 项目实战-外卖自提柜 1.项目介绍、协议制定
项目介绍外卖自提柜,类似蜂巢之类的快递柜。工作包括与服务器通信,控制开柜,显示信息,验证码输入等等。服务器和APP是别人做的,我做设备端,柜体用下面这种。方案选型方案:MCU+WIFI模块+GPRS模块+显示屏+键盘选型:stm32f103rbt6+esp8266+sim800+lcd彩屏+矩阵键盘一开始觉得这个项目so easy 烂大街 ,乍一看确实,这选型也太烂大街了(笑)...
2020-05-06 15:16:48 10779 15
原创 HAL库PWM输出不正常-已解决
调无源蜂鸣器的时候,发现蜂鸣器间歇性失声。CubeMX里的配置PWM是照着别人的帖子搞的,我用相同的配置移植到标准库中发现问题消失了,反复尝试了很多次,找到了问题。一般情况下(比如PWM控制电机啥的)不会遇到这个问题,因为大部分情况下我们都是固定周期,调占空比,但由于驱动无源蜂鸣器既改变周期也改变占空比,所以我在初始化的时候,周期和占空比都是默认的0,没有动,如下。然后程序一开始启动PWM的...
2020-04-29 16:01:54 2022
原创 proteus仿真stc15--仿真开发板
proteus在8.9版本正式支持stc单片机,虽然只有一个型号(stc15w4k32s4),不过这是stc家功能很齐全的一款的单片机。最近刚好开单片机课程使用的就是这款,因为疫情上网课没有实物,就用proteus做了一块仿真开发板。仿真开发板的原型是stc家的一款试验箱:仿真开发板全貌:20204.20:今日测试:IO口模式配置LCD12864硬件PWM问题:IO口...
2020-04-20 22:58:34 17752 10
原创 STM32使用局部变量+DMA发送数据出现的问题——已解决
这天在用DMA发送数据时,由于要处理协议,在一个函数中定义了一个局部的数组。为了演示方便,简化了一下,函数原型如下:经测试DMA配置是没有问题的,收发数据都正常。按理说,串口助手收到数据应该为1,2,3,4,5,6,7实际数据为:首先是怀疑栈溢出,但这个数组只有7字节,抱着怀疑的态度,我把系统stack调大了一倍,由于只测试这一处,我把其他部分都屏蔽了,程序使用的RAM非常小,结果仍是...
2020-04-05 20:14:52 2127 9
原创 串口-TCP调试助手
疫情期间待在家做项目,手头没有网络模块无法调试,就做了这个串口转TCP调试助手。C#编程,将网络调试助手和串口助手整合了一下,实现数据转发。由于项目需求,只做了TCP Client模式,也就是说,单片机通过串口连接助手,助手作为TCP客户端连接TCP服务器,实现数据收发。源码和exe文件都有。想自己做一个串口助手可以参照下面的帖子:https://www.cnblogs.com/liao...
2020-03-09 12:09:40 2754 3
原创 CubeMX STM32 HAL库中串口收发的正确打开方式(串口失效及解决方法)
问题:在大数据量频繁收发时出现串口接收失效。分析:HAL库对串口中断进行了封装,留给用户的接口只有一个回调函数void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) //接收中断回调函数在使用库函数或寄存器时,我们通常要自己清除中断标志位,且接收中断的使能和失能可以由用户直接操作寄存器控制,而这些都被HAL库进行了封装,呈现在用户...
2020-03-05 20:40:38 8545 4
原创 CubeMX FreeRTOS uxTaskGetStackHighWaterMark()的使用
每个任务都独立维护自己的栈空间, 栈空间总量在任务创建时进行设定。uxTaskGetStackHighWaterMark()主要用来查询指定任务的运行历史中, 其栈空间还差多少就要溢出。这个值被称为栈空间的”高水线(High Water Mark)”。我们一般用此函数优化任务栈空间的分配,在CubeMX生成的FreeRTOS工程中,需要先在Middleware->FreeRTOS->...
2020-03-05 16:10:26 6392 1
转载 FreeRTOS堆内存管理(转载)
使用pvPortMalloc时,读到一篇好文,是关于FreeRTOS内存管理的,读完对收获很大,标记一下:https://www.cnblogs.com/LinTeX9527/p/8007541.html
2020-03-04 17:14:00 178
原创 CubeMX FreeRTOS(cmsis os)函数API一览 (附可以在中断中调用的API)
以下所有资料来源于cmsis rtos官方说明文档,在keil5本地就有:Function Overview函数一览:Kernel Information and Control osKernelInitialize : Initialize the RTOS kernel. osKernelStart : Start the RTOS kernel. osKern...
2020-03-03 11:58:09 3822 2
原创 CubeMX FreeRTOS(cmsis os)信号量的使用,Signal Events
相关函数官方解释:资料来源,参照https://blog.csdn.net/weixin_44578655/article/details/104622287int32_t osSignalSet (osThreadId thread_id, int32_t signals)//Set the specified Signal Flags of an active thread.给一个...
2020-03-03 11:22:30 2325
原创 cubemx freertos(cmsis os) osThreadDef中instances的作用
图示,官方说明,The argument instances defines the number of times that osThreadCreate can be called for the same osThreadDef。翻译为:instances这个参数为改osThreadDef能够被实例化的最大数量。由于cmsis os对freertos进行了封装,原来的xTaskCreat...
2020-03-02 23:03:30 2464
原创 FreeRTOS学习笔记:FreeRTOS如何入门?任务就绪态、阻塞态、挂起态,傻傻分不清?
由于项目需要,开始学习FreeRTOS我看的这本书比较不错的,《FreeRTOS实时内核实用指南》,通俗易懂。第一章看完,解答了我很多疑惑:最基本的机制是任务调度任务总是处于运行态和非运行态每一个心跳周期,任务调度器就会执行一次(类似系统中断),来仲裁接下来CPU交给哪个任务来使用,获得CPU使用权的任务处于运行态,其他任务处于非运行态,同一时刻,只有一个任务处于运行态。...
2020-02-28 14:41:16 3425 20
原创 2019全国大学生电子设计竞赛备赛笔记--风力摆--板球--模拟曲射电磁炮
对今年电赛博文有兴趣的大概你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;...
2020-02-27 19:39:21 9460 14
TCP-串口助手(源码+exe文件).zip
2020-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人