- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 I2C通信协议
以上是主机对从机的操作,图中灰色为主机发送的内容白色从机发送的内容,如果需要读取数据在发送从机地址数据的第八位写1,然后在写入寄存器地址后读取SDA电平状态进行接收从机数据。如上图所示,完成一帧数据以起始信号开始,首先发送从机地址->等待应答->发送寄存器地址->等待应答->发送数据->等待应答->结束。参考链接:https://blog.csdn.net/Dawn_Burning/article/details/134181024。
2024-03-29 15:01:31
518
1
原创 ODrive驱动笔记
电流环添加完毕,电流环的PI参数是根据电机的参数计算的,这点要注意。新建UpperComputer.c、UpperComputer.h文件放到APP里,配合匿名上位机查看波形。在FOC中添加FOCConfig.c、FOCConfig.h、FOC.c、FOC.h。在MCUDriver中添加TIM1Driver.c、TIM1Driver.h。在main函数中添加 FOCINIT();在main.函数中添加#include "arm_math.h"头文件。FOC增加AS5600.c、AS5600.h文件。
2024-02-27 21:07:30
975
原创 【GD32】GD32F103RCT6运行RT-Thread实现IAP升级
最近在使用gd32单片机,bootloader是产品不能少的一部分,所以准备基于rtt实现一个bootloader以及iap升级。众所周知gd32f103rct6是可以平替stm32f103rct6,但是作为强迫症的我不想用st的固件库或者hal库,但是rtt对gd32没有做板级支持包的设计,只能自己写,所以这里准备使用rtt 4.1内核+env进行制作bsp,bsp就不说了教程有很多直接讲开发过程。
2024-02-05 11:32:54
1548
1
原创 Agile Modbus 轻量型协议栈 移植笔记
函数可以发现都是函数指针,使用什么方式绑定对应的指针函数就可以,但是不用我们自己绑定,有写好的代码,了解一下就可以,他的结构体也是一个封装原理。这里没什么讲的,就是把数据发送出去,这里要注意的就是第一个形参必须要是地址类型,因为发送长度不是固定的。,他就存到初始化时指向的数组里了,然后会返回一个长度,就可以通过串口发送了,发送完了要立刻接收,,这个是自己实现的接收我通过指针把他指向的地址的值修改了,然后返回修改了的长度。他三个形参就是解析地址,解析长度,解析完了寸哪的地址。进行解析了,实际上就是解析它。
2023-12-08 18:08:11
2764
1
原创 【AT32】第三章 雅特力AT32F437VGT7GPIO串口轮询,中断,弹性DMA解析
进行填充默认值,然后对串口的RX、TX引脚进行复用,到这里GPIO的配置有完毕了,最后对串口进行配置,波特率我使用的传参的形式,其他的值配置成了8数据位,1个停止位,无校验,最后对发送、接收以及串口进行使能,,到这里串口阻塞式轮询就配置完了,为了修改方便我对它进行了宏定义封装。我是用的是dma1的ch1和ch2,至于没什么没有中断,是因为懒,后期有时间改进吧,由于打开中断后,比如dma1的ch1和ch2它会进入这两通道的回调函数,要添加自己的回调函数,有兴趣的朋友可以参考串口中断的方式进行添加。
2023-07-14 10:34:18
923
原创 【AT32】第二章 雅特力AT32F437VGT7GPIO输入与输出的解析
我们都知道AT32几乎平替STM32,实际上用CubeMX生成的配置也是可以驱动AT32的,但是我这里推荐使用AT32的官方库,因为他官方的库适配性肯定是最好的,而且性能和功能上能得到深度开发,比如弹性DMA这个是STM32没有的,当然at32的库理解起来不是很难,而且资料健全,也有相关的demo,使用过stm32固件库的配用上手应该能快一点,这里就不多说了,因为芯片内部都大同小异,只是函数上有所区别而已。如上是配置及输入输出函数想必大家都能够看懂。新建一个结构体来管理io口。注册IO口及功能实现。
2023-07-12 17:20:33
1531
8
原创 【AT32】第一章 雅特力AT32F437VGT7工程模板创建
这篇文章的目的是为了了解AT32工程模板的创建,方便后期调用。其模板工程包含默认的UART1串口作为printf输出,工程文件参考雅特力官方提供的library。链接:固件库,雅特力提供的文档还是很详细的,而且有中文数据手册👍。这里没什么说的,根据个人习惯。接下来进入主题:如何创建一个工程模板,事实上在我们平时使用CUBEMX配置工程的时候他就会生成一个工程模板,那么我们就可以参考它的模板来进行构建,我们所需要的文件都在project和libraries这两文件夹里。
2023-07-07 13:28:27
840
1
原创 【RT-Thread】RT-Thread PWM 实现互补输出功能
直接进入主题,rtthread pwm驱动库是没有包含互补输出配置,我们想要实现互补输出看看单端PWM与差分PWM配置用什么区别。这段代码是通过CUBEMX生成的互补输出PWM初始化配置这段代码是通过CUBEMX生成的单端PWM初始化配置比较两段代码看看有什么区别?经过比较只有函数有区别,而这段函数正好是rtthread驱动库 drv_pwm.c调用的函数,所以可以无缝衔接,我们只对函数稍作修改。这里先贴上drv_pwm.c 再哪里调用的函数接下来修改drv_pwm.c中的函数。
2023-03-20 21:41:06
607
原创 【RT-Thread】使用RT-Thread Studio 配置BootLoader及App实现OTA功能
OTA是“over-the-air”的缩写,是一种无线技术,用于在不需要接触设备的情况下向移动设备或物联网设备提供更新、补丁或新版本的软件。OTA更新通常通过无线网络(如Wi-Fi或移动数据)进行,这使得设备可以在不需要任何物理连接的情况下获得更新。这种技术在智能手机、智能家居设备和车载系统等设备中得到广泛应用。
2023-03-16 15:49:09
4022
2
原创 MP-2烟雾传感器
MP-2 烟雾检测气体传感器采用多层厚膜制造工艺,在微型 Al2O3陶瓷基片的两面分别制作加热器和金属氧化物半导体气敏层,封装在金属壳体内。当环境空气中有被检测气体存在时传感器电导率发生变化,该气体的浓度越高,传感器的电导率就越高。采用简单的电路即可将这种电导率的变化转换为与气体浓度对应的输出信号MP-2技术手册根据测试电路和敏感特性曲线可以看MP-2类似于铂电阻,内部的电阻阻值会随浓度变化,串联负载电阻对地产生一个电压,而且这个电压曲线是非线性的。所以要根据这个曲线进行曲线拟合得到一个拟合公式,
2022-06-25 14:04:30
2632
13
原创 记录一次rt-thread studio与CubeMx配合构建PWM工程
记录一次rt-thread studio与CubeMx配合构建工程前言最近在入门rtthread操作系统,教程挺多的但是内核入门教程挺多rt-thread studio的配置教程有点少。之前配置工程的方法是用RTT创建工程,cube复制配置函数感觉有点麻烦。提示:以下是本篇文章正文内容,下面案例可供参考二、使用步骤1.创建工程工程创建好后编译下载到板子。把clock_information的打印信息复制到主函数中,同时添加<board.h>头文件我们可以看到时钟频率的默认的
2022-04-08 00:51:02
4321
2
原创 记录rt thread studio 配置PWM遇到的问题
前言最近在学习rt thread 操作系统配置PWM遇到了一个奇怪的问题PWM1_CONFIG’ undeclared here (not in a function)我使用的野火f103指南者开发板(stm32f103vet6),rt thread 系统版本是V4.0.3.我想用板载的蜂鸣器输出PWM 这里PA8正好对应得实TIM1CH1,于是就出现开头的那一幕一、官方配置说明我查阅了相关的文章配置教程但是用的TIM2我跟着配置了一遍,没有报错还有一点要注意的是输出通道要手动添加进去(例如
2022-04-04 01:07:24
1903
7
原创 c primer plus第六章习题答案
第六章习题/*第六章 练习题1题目:1.编写一个程序,创建一个包含26个元素的数组,并在其中储存 26个小写字母。然后打印数组的所有内容。分析:定义一个26元素的字符型数组,所以占用26个字节,然后还有把 他们全部打印出来,所以循环的次数要与元素的长度相等。*/#include <stdio.h>#define length 26//声明循环长度。unsigned char letter = 'A';//letter字母 声明起始字母‘A’。cha
2021-04-23 16:32:56
1632
4
原创 c primer plus习题答案[1~11]
第六章习题/*第六章 练习题1题目:1.编写一个程序,创建一个包含26个元素的数组,并在其中储存 26个小写字母。然后打印数组的所有内容。分析:定义一个26元素的字符型数组,所以占用26个字节,然后还有把 他们全部打印出来,所以循环的次数要与元素的长度相等。*/#include <stdio.h>#define length 26//声明循环长度。unsigned char letter = 'A';//letter字母 声明起始字母‘A’。cha
2021-04-23 08:44:50
1039
原创 关于西门子PLC modbus通讯与运动控制的应用
关于西门子PLC modbus通讯与运动控制的应用应用的设备昆仑通态1570gi(15寸)西门子plc smart-st20昆仑通态参数的设置与组态的重点组态软件选用型号1570gi的屏幕设置通讯地址 192.168.190报警参数的配置脚本的编写关于组态过程中遇到的问题由于这是我参加工作自己独立的完成的,这个期间真的是太坎坷了,我来说说我遇到的问题吧脚本应用if和if的嵌套IF THEN IF THEN ENDIFENDIF由于画面中关联着报
2020-08-27 12:02:12
554
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人