- 博客(39)
- 资源 (16)
- 收藏
- 关注
原创 FreeRTOS学习笔记(三)—— 信号量应用
信号量的概念及其作用信号量(semaphores)是20世纪60年代中期Edgser Dijkstra发明的。使用信号量的最初目的是为了给共享资源建立一个标志,该标志表示该共享资源被占用情况。这样,当一个任务在访问共享资源之前,就可以先对这个标志进行查询,从而在了解资源被占用的情况之后,再来决定自己的行为。 实际的应用中,信号量的作用又该如何体现呢?比如有个30人的电脑机房,我们就可以创建信号量...
2019-07-04 21:54:51 1755
原创 FreeRTOS学习笔记(二)——消息队列应用
6.3 消息队列cubemx配置freertos的消息队列消息队列的概念及其作用消息队列就是通过 RTOS 内核提供的服务,任务或中断服务子程序可以将一个消息(注意,FreeRTOS消息队列传递的是实际数据,并不是数据地址,RTX,uCOS-II 和 uCOS-III 是传递的地址)放入到队列。同样,一个或者多个任务可以通过 RTOS 内核服务从队列中得到消息。通常,先进入消息队列的消...
2019-07-04 09:19:41 3087
原创 FreeRTOS学习笔记(一)——基础知识体系
一、任务管理单任务系统(裸机)主要是采用超级循环系统(前后台系统),应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看做后台行为;中断服务程序处理异步事件,这部分可以看做是前台行为。后台也可以叫做任务级,前台也叫作中断级。前后台系统的编程思路有两种:轮询方式(实时性得不到保障,紧急与非紧急消息不能有效管理)、中断方式(可以保证一定的实时性,紧急消息可以得到响应)。...
2018-12-26 15:29:52 5602 6
原创 cJSON STM32F4移植
1. 下载cJSON源码2. 建立STM32工程3. 移植源文件4. 修改源文件修改malloc和free函数修改串口接收5. 测试{"test":{"id":"1","name":"jack","url":"www.zjrobot.com"}}
2021-08-25 10:14:15 835 2
原创 STM32 CAN 参数设置
这里以STM32F103为例已知:1. CAN1挂载在APB1时钟线上,查看时钟配置得到APB1的外设时钟为36M2. 目标波特率为 125k3. 采样率设置在80%-90%为佳,最佳为87.5%计算公式 波特率 = (APB1时钟频率)/(Prescaler *( SW1+BS1+BS2)) 采样点 = (1+BS1)/(1+BS1+BS2)可以看出最佳采样点设置规律BS1=7 BS2=1,这样采样点刚好为87.5%,但是往往事与愿违,这个时候得到的波特率不...
2021-01-31 13:48:05 3392
原创 QT5 基础一:编译输出可以执行文件
一、编译动态连接可执行文件Qt5编译后的可执行文件是不能直接双击运行的,会报缺号库文件错误,这里以我的IAP_GC.exe为例1. 首先将Qt编译的可执行文件拷贝出来放在单独的文件夹下2.选择qt自带的cmd命令行3. 使用windeployqt命令找到1中的文件夹QtTest,使用Qt自带的工具 windeployqt来运行可执行文件将所需的动态链接库拷贝进来拷贝完成,可以看到文件夹下多了很多文件,此时双击可执行文件即可运行程序二、编译静态连接可执行文.
2020-11-24 14:24:59 1463
转载 关于CubeMX的串口全双工接收发送锁死的问题
关于CubeMX的串口全双工接收发送锁死的问题https://blog.csdn.net/mickey35/article/details/74255041
2020-06-16 09:10:31 482
原创 STM32 F103串口同时收发出现死锁问题解决办法
一直使用F4系列,没有出现此类现象,也可能出现了没有发现。最近在做和研华工控机通讯时出现串口接收问题。总结如下:1. 使用DMA+空闲中断未出现串口同时收发死锁现象,但是由于研华某款工控机在与板子通信时,出现丢包现象工控机接收到板子发送数据正常,无丢包 工控机发送数据到板子,发送正常,接收总是显示校验不通过,不通过时只收到部分包。 板子与电脑通过串口工具相互发送数据,板子无丢包现象,串口工具无丢包现象。 工控机与电脑通过串口工具相互发送数据,工控机无丢包现象,串口工具无丢包现象。由于此.
2020-05-29 11:51:20 6413 3
原创 KEIL5 生成bin文件设置
选择程序C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin --output .\DxE_Stationary\DxE_Stationary.bin .\DxE_Stationary\DxE_Stationary.axf文件夹格式
2020-03-16 21:23:15 562
原创 CUBEMX配置LWIP的STM32工程下的网线热插拔功能配置
网上有很多基于自己移植lwip源码配置热插拔功能的实例,今天猛然发现,CUBEMX配置LWIP的STM32工程下的网线热插拔功能已经配置好了只需一步即可实现网线的热插拔。首先可以在lwip.c文件中看到函数MX_LWIP_Init(),在这个函数里看到这里很明确的说了这个回调函数在网络连接状态改变的时候会调用,既然已经说了,那我们只要在这个回调函数里做一些变化即可实现热插拔。进入回调函数...
2020-02-26 18:07:31 5395 20
原创 Source Insight4.0修改源文件目录为相对目录
Source Insight4.0修改源文件目录为相对目录方便复制工程Source Insight4.0版本2. 新建工程3.修改工程设置将上图的红色框图修改为下图4. 源文件添加5. 相对目录设置点击 菜单栏的 Project 然后选择 Project Settings,得到如下的界面再一次点击 菜单栏的 Project 然后...
2019-12-17 13:24:24 981
原创 LWIP教程1——Cubemx 配置无操作系统下的LWIP初始化
文章目录LWIP教程1——Cubemx 配置无操作系统下的LWIP初始化1. 环境1.1 软件环境:1.2 硬件环境2. cubemx配置主要内容2.1 RCC配置2.2 SYS配置2.3 USART1配置2.4 ETH配置2.5 LWIP配置LWIP使能LWIP参数配置2.6 时钟配置3. 代码完善3.1 添加对PHY硬件复位的代码3.2 主函数添加LWIP线程函数4. 实验效果4.1 路由器端...
2019-05-23 15:51:23 3207 4
原创 cubemx 配置多通道ADC进行ADC采样
cubemx 配置多通道ADC进行ADC采样AD的基础知识AD很复杂,其实也不复杂,因为我们用的不多。AD:模拟量转换数字量(模拟信号转换数字信号)。ADC:模拟量转数字量的转换器。为什么需要AD呢?自然界宏观的物理量都是连续的。而机器识别的信号0与1是离散的。为了让机器能够采集、分析、储存这些连续的量,所以要把需要被模拟的量转换为数字量。主要的参数:采样精度与转...
2019-05-16 23:07:21 16371 11
原创 cubemx配置FreeRTOS串口输出任务信息
cubemx配置FreeRTOS串口输出任务信息关键步骤:1. cubemx中使能任务信息相关宏(3个);2. 配置2个宏定义3. 开启一个定时器,作为计算任务信息的时钟;4. 调用函数输出任务信息1.环境:packages版本(STM32F4 1.21)cubemx版本(version4.27.0 && STM32Cube v1.0)MDK版本(KEIL6 ...
2019-05-14 20:16:48 1906
原创 CUBEMX+CANOPEN教程二:can功能代码完善
在教程一基础上进行can功能完善主要工作:can筛选器配置can发送与接收的相关结构体构建can发送与接收等函数构建can festival移植定时器配置文章目录1. can筛选器配置2. can发送与接收的相关数据结构构建3. can发送与接收等函数构建4. can festival移植5. 定时器配置小结1. can筛选器配置在bsp_can.c文件中添加void ...
2019-04-10 22:04:55 4434 3
原创 CUBEMX+CANOPEN教程一:实现cubemx工程配置以及实现串口不定长度收发
一、cubemx配置工程CAN1参数设置USART1设置DMA设置GPIO设置定时器设置中断分组设置工程设置生成工程工程生成成功打开工程二、代码完善2.1串口功能完善采用DMA+串口空闲中断方式实现串口收发不定长数2.1.1 新添加工程文件bsp_usart.c及bsp_usart.h/***************...
2019-04-10 17:46:55 2916 1
原创 STM32硬件I2C问题
1.CUBEMX生成代码后I2C总线初始化一直出现I2C_FLAG_BUSE1.1 环境:1.2 硬件I2C配置为默认,管脚如下1.3 时钟等其他 配置完成后生成工程1.4 添加代码在i2c.c文件中的的void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)函数中添加如下代码 __I2C2_FORCE_RE...
2019-04-10 16:33:03 1582 2
原创 基于CUBEMX5.0的Touchgfx移植教程
参考:http://forum.armfly.com/forum.php?mod=viewthread&tid=90710环境:步骤:1、2、3、4、5、6、7、8、9、10、11、12、13、14、返回cubemx打开touchgfx15、设置界面生成代...
2019-02-28 23:36:15 9073 6
原创 基于科沃斯地宝研究红外对接系统
1.基本资料2.科沃斯地宝拆解3.科沃斯红外编解码分析 左1发射器编码 左2发射器编码 右1发射器编码右2发射器编码单发射器发射周期(180ms)单红外发射器连发码占空比 4.基于开发板实现多接收器模拟对接过程红外信号差异...
2018-11-29 14:25:53 1118
原创 sourceinsight4 工程文件 相对路径设置
有很多坑,我是在代码工程文件下新建一个si目录用来存放si工程文件。代码工程目录名:MOTORSI4工程目录名:MOTOR\si主要步骤:1、在代码工程文件下新建si目录2、在si4中新建工程,设置代码源文件目录MOTOR&si4的工程文件存放目录(刚才新建的si目录)3、不添加文件,直接关闭弹出的添加源文件框4、设置默认工程设置,设置代码源文件目录为 .....
2018-11-23 12:02:47 5586
原创 C语言基础不过关踩过的坑
C语言基础不过关踩过的坑strlen函数问题描述原因浮点型数存在整型数组中问题描述原因strlen函数问题描述在stm32开发中在计算数组实际长度时出现有时候长度计算出错原因strlen()用来计算指定的字符串s 的长度,不包括结束字符"\0"。如果用来计算字符串中赋值操作中的有一个值十进制为0(asiic码对应字符’\0’),则只能计算这个十进制为0数之前的数组长度。如果数组第一个...
2018-11-21 22:19:57 347
原创 sourcetree 提交仓库出现的问题
error: failed to push some refs to 原因就是本地和远程的文件需要合并后才能上传本地的新文件解决步骤:1.先拉取2、再推送参考博客: git 错误error: failed to push some refs todev:dev fatal: HttpRequestException encountered. remote: Inval...
2018-11-20 15:44:11 1178
原创 通过cubemx生成STM32工程文件后保存源代码空间缩减
一般cubemx生成代码设置成复制需要的库而不是所有库会减少生成工程文件大小,但是实际用起来文件还是很大,在做版本管理及备份转移的过程中会很麻烦,这里看到硬石工程有一个脚本文件可以删除工程编译过程中的中间文件,大大缩小了工程文件的大小。实际效果如下:这是编译后不做处理的工程文件大小(足足200M+):通过执行脚本文件 删除无关文件后(小于50M),效果很棒,版本管理及转移都方便多了...
2018-11-20 11:16:49 2305 4
原创 quicker.em在sourceinsight 4中的使用问题
uicker.em可以在sourceinsight 3.5中很好使用;也很方便;先多谢大牛。但是,将quicker.em添加到sourceinsight 4中,绑定快捷键,根本就找不到autoExpand的宏。可能主要原因是:souceinsight 4对宏解析的规范有些变动;所以quicker.em某些地方产生了冲突(代码的注释)。具体办法:1、修改GetFunctionDef函...
2018-11-19 17:41:49 2847 2
原创 CUBEMX教程—— STM32F407实现多步进电机型加减速全过程
cubemx配置图先配置定时器,选择定时器8,内部时钟源,通道1,2,3,4 时钟配置,查看手册可以知道TIM8连接在APB2,定时器8时钟频率为168M。 定时器8参数配置定时器8GPIO设置 定时器8 中断设置(比较中断) 生成代码代码修改1、生成S型加速点比较值及自动重装载值添加bsp_stepmotor.c文件,主要是计算加速过程中确定加...
2018-11-16 15:20:47 11790 7
原创 步进电机S型加速
S型曲线的的方程,在[-5,5]的图形如下图所示:如要将此曲线应用在步进电机的加、减速过程中,需要将方程在XY坐标系进行平移,同时对曲线进行拉升变化:其中的A分量在y方向进行平移,B分量在y方向进行拉伸,ax+b分量在x方向进行平移和拉伸。根据项目的需要,在加速过程中采用的曲线方程为:。其中的Fcurrent为length(3000)个点中的单个频率值。Fmin起始频率为500...
2018-11-16 10:35:19 9673 2
转载 关于IO模式(浮空、推挽、开漏...)描述及应用
Ⅰ、写在前面在开发STM32的时候,都需要对IO的模式进行配置(GPIO_InitStructure. GPIO_Mode = xxx)。但是,你们都知道各种模式的具体意义吗? 有的人问:IO口输出可以上拉吗? 开漏输出是干什么用的? 其实这些问题并不难,只要你了解到每一种模式的真正意思,相信这些问题都不会难道你。本文的内容比较基础,也比较实用,希望对你有所帮助。 关于本文的详细内容请看下面章节 ...
2018-07-12 17:27:25 2689 1
转载 keil5 总是编译所有文件
正常情况下,Keil只是会对编辑过的文件进行重新编译,但是有的时候只是修改一个文件也会全部编译,两个地方需要检查:1,project--option for target 'xxx' ---target---Code Generation-- 将Use Cross-Module Optimization勾选去掉2,工程文件是否是只读属性,如果是只读,那去掉整个工程文...
2018-07-12 14:12:14 4645 1
原创 关于UCOSIII的时钟节拍定时精度
一、首先在os_cfg_app.h中找到系统时钟节拍设置,一般设置为1-1000,及最小节拍为1ms最大为1s,一般设置200(5ms)或者500(2ms)。其实可以理解为一个计数器,计数到这个OS_CFG_TICK_RATE_HZ值记为1s,自然而然设置为1000就有1000次计数一次计数就是1ms其他也是这样。二、获取当前时钟节拍计数值的函数为OSTimeGet(),函数原型为OS_TICK ...
2018-07-05 15:46:04 3607 2
原创 gitbook与github关联
主要内容:注册gitbook账户和github账户然后在gitbook里进行关联注意事项gitbook新域名注册需要翻墙,老域名不用翻墙关联github时看不到建立的仓库是github账户设置成了对gitbook所有仓库不可见或者部分仓库不可见(我就被这这个坑了一把)详细图文教程如下1、注册github账号并新建仓库,图示如下2、仓库下创建SUMMARY.md文件,输入图示内容保存提交3、注册gi...
2018-04-27 15:37:32 1634
原创 嵌入式Linux驱动学习笔记(一)------第一个LED驱动程序
1、查看原理图,得到控制led的管脚GPF4/GPF5/GPF6 2、查看datasheet,找到LED对应的寄存器(GPFCON, GPFDAT)目的是得到控制寄存器和数据寄存器的地址以及控制寄存器的控制模式选择该寄存器占用16个字节,其中4个字节是保留字节 3、开始编写LED驱动程序1/*my01leds_driver.c*/2#i
2017-09-03 10:03:01 2342
翻译 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-08-15 09:18:35 231
原创 DAC7724数模转换芯片小结
DAC7724的主要特点 DAC7724是TI公司生产的12位并行输入4通道D/A转换器,该转换器具有以下特征: ◇±15V以内的双电源工作; ◇输出电压:VREFL~VREFH,VREF:-10~+10V; ◇采用12位并口输入和4通道隔离输出方式; ◇可以上电自动复位; ◇转换速率快,更新率为1 MHz; ◇工作温度范围在-
2017-08-15 08:58:32 8730
LWIP_FreeRTOS.zip
2019-11-21
CUBEMX生成STM32代码删除编译信息文件(缩小体积方便备份)
2018-11-20
quicker.em 适配sourceinsight4
2018-11-19
lwip_cubemx.zip
2007-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人