摘要: 背景 STM32的很多系列都带有USB功能,USB的作为通用接口,可以减少一些用户在使用RS232时所用的一根转换线。 但是USB复杂的协议提高了使用USB的入门门槛,一般人要完全了解USB协议就需要花很多时间。实际应用中也不可能在完全学习了USB的所有知识才开始做应用。 不过ST为我们封装好了US 阅读全文
posted @ 2022-04-29 10:18 cau_par 阅读(3572) 评论(0) 推荐(0) 编辑
摘要: 背景 单片机开发,入门从最开始的IO置位(点亮LED)开始,裸机开发来说整个是面向过程开发,最终所有的功能都在一个While循环之中,这样的好处在于模块逻辑很直观,流程比较清晰,但是在程序功能增多的时候整体功能会显得不直观。 且需要很多的标志位,同时由于所有的功能循环在一起运行,对于任务的运行间隔并 阅读全文
posted @ 2022-02-24 10:54 cau_par 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 应用背景 对于一些测量系统,有时直接看数据并不是很直观,若将数据转换成图像来显示,会更直观,同时也能根据图像或曲线引出新的规律。 将数据换成图像显示时,有些也能验证的整个系统的测量是否正确。接下来介绍一种易用基于QT的曲线控件QCustomPlot。 介绍 QCustomPlot是一个用绘图与数据可 阅读全文
posted @ 2021-12-03 09:31 cau_par 阅读(492) 评论(0) 推荐(0) 编辑
摘要: Standby模式 STM32有多种低功耗模式,Sleep,Stop,Standby,三种模式,Standby模式是功耗是最低的,同时MCU不保存大部分状态,唤醒后系统将重新开始运行。 IWDG 对于一些设计来说,不存在复位按键,因此需要配置看门狗防止系统死机,不然死机后需要拨电池,这样就不太人性化 阅读全文
posted @ 2021-02-25 15:25 cau_par 阅读(640) 评论(0) 推荐(0) 编辑
摘要: 使用stm32cubemx生成硬件I2C的代码 不过自动生成的代码,调用HAL_I2C_XXX的API工作不正常,返回错误代码为I2C_BUSY 使用STM32的I2C接口使用时需要注意很多细节,不过HAL库中官方已经为用户根据这些细节做了处理,可以直接使用。不过这个I2C代码并不稳定,有些板子可以 阅读全文
posted @ 2021-01-09 08:50 cau_par 阅读(4202) 评论(0) 推荐(0) 编辑
摘要: UCOSIII之STM32上下文切换理解 程序上下文(context) 上下文(context),指的是什么呢,个人可以理解为一个任务或者线程控制的一些变量及CPU的寄存器状态,就是说任务被打断执行以后还可以还原回来。所以上下文就指的是两个操作,被打断任务状态的保存及就绪作务的还原。如果说一个任务的 阅读全文
posted @ 2020-09-14 17:28 cau_par 阅读(1669) 评论(0) 推荐(0) 编辑
摘要: RGB屏驱动 这里讲下大致的流程,不作具体详细代码示例。 TFT LCD的屏幕驱动方式有很多种,以12864来说,一般是直接由SPI来操作屏的驱动IC,再来IC来负责驱动屏幕,还有一个驱动接口如8080或者6800,相对于SPI来说这两种并口的数据处理方式会提高相应的数据传输速度,上述的接口都称之为 阅读全文
posted @ 2020-08-06 10:56 cau_par 阅读(6181) 评论(0) 推荐(2) 编辑
摘要: Modbus的CRC校验实验 表述 Name : "CRC-16/MODBUS" Width : 16 Poly : 8005 Init : FFFF RefIn : True RefOut : True XorOut : 0000 Check : ? 先参考一些厂家给的MODBUS校验程序 con 阅读全文
posted @ 2020-07-11 08:28 cau_par 阅读(1172) 评论(0) 推荐(0) 编辑
摘要: 概念 CRC(Cyclic redundancy check),循环冗余校验 CRC校验是用于检测一帧数据发送是否正确,只有确认对错的作用,并没有纠错的能力。 还有一点就是CRC校验通过了,并不代表这个数据肯定就是正确的,只能说尽可能减少出错的概率,当然 CRC错了那么这个数据肯定是不正确的。 而这 阅读全文
posted @ 2020-07-08 22:23 cau_par 阅读(1978) 评论(0) 推荐(0) 编辑
摘要: STM32一种使用HAL,DMA,IDLE,POLLING的方式来处理UART的不定长接收机制 设备接收数据 (DMA) 采用的HAL库,同时在UART初始化的时候添加DMA相关操作,在系统开始运行时,开始使用HAL_UART_Receive_DMA来启动UART的接收,同时需要定义一个接收的buf 阅读全文
posted @ 2020-06-26 18:01 cau_par 阅读(1908) 评论(7) 推荐(1) 编辑