STM32
jacklood
这个作者很懒,什么都没留下…
展开
-
STM32实现多级菜单界面显示
1、main函数中,while循环之前。3、MultiMenu.c中。4、MultiMenu.h中。2、while循环中。原创 2024-06-15 13:47:18 · 522 阅读 · 0 评论 -
STM32开发遇到问题解决2024.6.14
第一次使用开关电源,可以正常打到200kpa,第二次使用电池,上电后电磁阀直接动作,经过排查mos管是否损坏,测量控制极的上电电压,只有mos2的上电电压正常,说明其他三个mos管都损坏了,原因可能是在使用开关电源供电时,在结束时没有先拔掉mos控制板上的电源供电导致的。检查气压传感器采集气压不行的原因,审核原理图、接线并在开发板上测试都没有问题,不知原因,最后讨论后,试试3.3V供电,可以,原因找到:之前设计时以为5V和3.3V供电都可以,实际传感器手册上面写的是3.3V电压供电。1、电路板打样出问题。原创 2024-06-14 14:01:16 · 264 阅读 · 0 评论 -
STM32开发遇见问题解决2024.6.13
修改程序,将中断按钮的case中key置0,下载测试,按键按下后几乎没有反应;测试使用12V4.3寸工业屏,修改屏幕制作文件的字体大小为合适,中文字库重新生成测试,仍然有字体不能显示是红色方块,和屏技术支持沟通后,原因是因为串口屏的存储位置有分区,23号中文字库编号和41号变量图标的存储区有冲突导致。由于更换串口屏,把USB口的电路板供电拔了,主板断了电,但是,电池的电源线没断,导致12V电源一直给mos板供电了十多分钟,后面气泵电机突然蹦跶几下,发现有胶糊味道,把电池的电源线拔掉,线已发软了;原创 2024-06-13 13:59:48 · 117 阅读 · 0 评论 -
STM32开发遇见问题解决2024.6.12
解决深度不显示的bug,修改程序代码后,先是查看从flash中读出来的datatemp数据,发现没有深度数据,不知为何,查看代码,看到之前每次写入flash中的数据长度都是20,以为这种余量够了,加上了深度的2字节长度数据应该可以,测试把写入和读出长度都修改为了size的结构体长度,调试看到深度数据在第20和21位,而不是18和19位,因为时间时期的数据在结构体中的存储长度有字节对齐的原因,所以这样,所有读写的代码修改为size后,和读出的深度的数组位置后,测试,深度数据显示正常。1、历史数据存储混乱。原创 2024-06-12 14:04:50 · 185 阅读 · 0 评论 -
STM32开发遇到问题解决2024.6.7
汉字显示功能一开始不知道,用的是0号字库,查询“正常”的GBK的ASCII码后,修改程序,下载,显示的字为乱码,问询迪文屏技术支持后,得知0号字库不包含汉字,需要生成汉字字库,即ts3字库生成工具,又根据迪文哔哩哔哩官网的文本显示实现,迪文屏制作软件上带有字库生成工具DGUS字库,使用用制作字库,字库开头须为23,多次测试字体大小,最终确定字体大小为30*30的宋体可以,最终,汉字显示正常,测试,没有问题。拔掉12V电源,后测量mos板,没有问题,但实际已烧坏,不能工作。改为使用3A的保护板电池后没问题。原创 2024-06-07 13:57:22 · 236 阅读 · 0 评论 -
STM32开发遇见问题解决2024.6.6
查看迪文串口屏的使用手册,了解文本显示的方法,发送的指令中数据为ASCII码,找到一个十六进制数据转化为ASCII码的代码做参考,复制到程序工程中,并完善编写时间显示的串口指令程序,重新制作串口屏显示文件,下载程序后,文本显示日期时间正常,注意发送的指令的数组的数据长度如果短的话,显示会不完整。与迪文屏技术支持联系后,用描述指针来隐藏数据,查看使用手册后,修改制作文件和程序代码,测试,发现数据隐藏后还需要隐藏后显示数据指令,已添加左右翻页的部分,当数据量不大于6的情况下也需修改完善。1、实时时钟掉电保存。原创 2024-06-06 14:01:23 · 334 阅读 · 0 评论 -
STM32项目开发遇见问题解决2024.6.4V2
下载程序后,程序倒计时不显示,进入调试界面,查看倒计时变量是变化的,说明定时器已工作,再核对倒计时程序里面的地址和屏幕制作软件里面的地址不同一个1100一个1110,修改程序里面的地址为1100后,下载,运行正常。修改程序代码,加入按键按下后开始启动倒计时,并且在定时器回调函数中设计倒计时为0后,停止定时器工作,存储参数1和参数2和测量值保存在flash中,下载,测试,按下按键不工作,查看按键的接线没有接,接上后,按下,倒计时启动,当为0后,查看历史记录,数据有保存。2、串口屏变量地址不对应。原创 2024-06-04 14:13:56 · 451 阅读 · 0 评论 -
STM32项目开发遇见问题解决2024.6.4
并找来一个按键板,接好线到单片机,查看之前的按键程序,移植过来并修改。程序初步编写完成后运行,按下增加、减小、切换按键没有反应,单步调试查看不了按键的值,查看变量值没有改变,后来又把增加减小按键代码放在while循环中也不行,经过排查,调试程序观察按键扫描函数的返回值,让程序一直全速运行,按下增加、减小按键后返回值一直是0,说明按键扫描函数有问题,进入按键扫描函数,发现keyscan()函数中新增加的4个按键的对应的代码没有添加,修改后,下载程序,可以正常运行,可以增加、减小。2、按键需要按多次才起作用。原创 2024-06-04 13:59:01 · 158 阅读 · 0 评论 -
STM32单片机遇见问题总结1
2、修改后采集的ADC值仍不准确,初始ADC引脚应该为0.5V,测量出来却有0.89V,误差较大,排查原因,发现用的ADC引脚为PA7,该引脚在开发板上接的有上拉电阻,换用其他没有接任何器件的ADC引脚PC0和PB0,测试还是不行,在不接传感器输出线的情况,ADC口的电压应为0,采集后却有1.15V的电压,原因在排查中。7、使用USB转TTL模块在串口调试助手发送读屏指令,测试成功,屏有回复数据,单独再测试写数据指令,数据写入成功,写入的数据需要是2字节的,但是在界面制作数据变量时,数据是4字节的。原创 2024-06-01 13:55:03 · 135 阅读 · 0 评论 -
串口屏变量图标显示电量
2、然后可以使用美图秀秀逐个修改图片的像素为一致,比如像素为55*32,修改后如下。3、然后打开DGUS_V7.647软件,点击ICL生成工具。6、在变量图标右侧属性修改框修改属性,添加36变量图标文件。4、导入图片,点击生成ICL,如文件命名为36变量图标。7、这样变量图标配置完毕,生成屏幕文件。8、将以下屏幕文件下载到串口屏即可。5、然后在配置界面设置变量图标。原创 2024-05-31 13:49:51 · 180 阅读 · 0 评论 -
STM32待机休眠指令设置
1、如果使用STM32单片机需要在不工作的时候进入待机休眠模式,通过查询STM32的数据手册,可以通过几个指令语句设置先关的寄存器即可。当按键按下的时候,取消待机休眠模式,进入正常工作的状态。原创 2024-05-20 13:42:59 · 219 阅读 · 0 评论 -
迪文串口屏的中文字体显示
注意:如果汉字库的存储大小为2.4M字节,编号为26,如果实际的字库储存大小超过了串口屏分配的储存大小(22到32之间的大小),则就会不能完全将汉字库下载进入串口屏,汉字就不能完全显示。(3)需要注意的是,文件的数字编号一定要仔细,否则汉字不能完全显示,会出现某些字显示位红色的方框,这和串口屏的flash存储分配有关,因为查看DGUSII 应用开发指南。4、需要注意的是,在串口屏上显示汉字,还需要使用串口屏文件制作工具,生成汉字库,下载到串口屏中。(1)打开串口屏文件制作工具,选择DGUS字库。原创 2024-05-18 14:10:51 · 467 阅读 · 0 评论 -
立创EDA批量放置过孔及删除
2、然后选中铺铜的边框,再点击工具,选择铺铜批量过孔。1、首先将绘制好的电路板顶底铺铜,如下图。3、设置批量过孔的参数后点击确定。原创 2024-05-17 13:44:09 · 572 阅读 · 0 评论 -
STM32程序下载电路设计
使用STM32F103RCT6作为单片机主控芯片,在进行电路板设计过程中,需要预留程序下载接口,可以选择使用JLINK下载器下载程序。1、查看STM32F103RCT6的芯片手册,找到下载程序的引脚端口PA13和PA14,如下。3、绘制完PCB电路板就可以使用JLINK仿真下载器和keil5下载程序了。需要注意的是:JLINK仿真器和单片机电路板之间要有一个转换小板如图。4、连上JLINK下载器后。原创 2024-05-16 13:56:10 · 298 阅读 · 0 评论 -
从嘉立创EDA提取PCB封装到Altiumdesigner的步骤
8、然后在AD点击设计---生成PCB库,即可生成AD使用的拨码开关PCB库。2、然后点击数据手册,显示出来4位拨码开关的封装图。5、点击文件,导出Altiumdesigner。9、原理图封装过程与PCB封装生成过程相同。3、点击立即打开,进入立创EDA编辑界面。6、勾选同意,并导出,放至一个文件夹。7、然后用AD打开这个文件。原创 2024-05-14 14:06:48 · 604 阅读 · 0 评论 -
STM32控制蜂鸣器
电路中使用的三极管为NPN三极管,控制方法为BEEP引脚输入高电平,则三极管自上而下导通,蜂鸣器鸣响,BEEP引脚输入低电平,则三极管不导通,蜂鸣器不响。在一些设备仪表中,都需要蜂鸣器来发出提示音或者按键操作的声音,这里就用到蜂鸣器。1、蜂鸣器的分类为有源蜂鸣器和无源蜂鸣器,其区别是有没有振动源,这里我们常用有源蜂鸣器。原创 2024-03-07 09:34:28 · 825 阅读 · 0 评论 -
将结构体中的浮点数数据提取出来并发送至串口屏显示
3、这样,就可以使用pdata2指针按字节地址访问结构体中的成员数据,这里通过提取,将float LiuLiang_Value数据存放在了liuliang_buff[i]中。5、需要注意的是,直接将float LiuLiang_Value值给串口屏是无法实现的。现需要将其中的float LiuLiang_Value;4、然后,可以发送串口屏指令,将浮点数据显示在串口屏上。可以看到,单精度浮点数占据4个字节长度。再讲结构体指针做一个转化。2、先定义结构体变量。原创 2024-02-03 14:26:31 · 489 阅读 · 0 评论 -
迪文串口屏数据的隐藏功能
由于项目中在使用迪文屏显示数据的时候,需要在数据为0的时候不显示0,而迪文屏默认的数据变量在无值的时候显示为0,此时可以使用数据的隐藏功能指令。3、设置完描述指针地址和变量地址后,就可以发送指令5A A5 05 82 80 00 FF 00,将该变量数据隐藏。FF 00即表示将数据隐藏。原创 2024-02-03 13:47:17 · 584 阅读 · 0 评论 -
迪文串口屏文本显示的使用
从图中看出如果想显示日期、时间,则需要的串口发送数据的时候先转化为ASCII码才能在屏幕上显示出来,如图,数字1的ASCII码为31,数字2的ASCII码为32。变量地址为串口要控制文本框显示的地址,范围为1000到FFFF,编码方式这里选择GBK,文本长度为要显示的文本的字节数,这里期日、时间的字节长度设置为24,X\Y方向的点阵数为这里显示的字符的字体大小。注意,日期、时间中的“-”、空格和“:”需要查询ASCII码值,分别为0x2d、0x20和0x3A。原创 2024-01-27 11:45:56 · 1566 阅读 · 0 评论 -
基于cubeMX的正点原子miniSTM32对W25Q64的存储使用
可以实现将TEXT_Buffer数组的数据写入flash中,地址为倒数第100个地址,该地址也可以更改为从0地址开始写,然后从该地址读出数据,显示在屏幕上,从而实现了数据存储在flash中,掉电后flash中的数据不会清空。5、添加正点原子hal库的w25q64驱动程序,如下图,注意先添加.C程序后也要添加w25q64.h的头文件路径,具体添加过程不再叙述。使用cubeMX建立项目工程,结合正点原子提供的hal库对W25Q64闪存调用的例程,实现W25Q64的读写。3、设置完成,生成代码。原创 2024-01-24 17:06:33 · 736 阅读 · 0 评论 -
关于变量在多个.C文件中使用(Undefined symbol tempbuff (referred from main.o).问题解决)
于是,就将使用的代码移动了过来,为SetTxData1_toLCD(0x00,0x01);和UserUart1Send( tempbuff1,sizeof(tempbuff1));另外,如果是函数在别的文件中使用,可以不用加extern,如void UserUart1Send(uint8_t *send_data,uint8_t send_len);1、如图结构,想在multimenu.C和usart1.c中使用变量tempbuff。提示未定义,原因是只在usart1.h中做了extern的声明,如图。原创 2024-01-17 17:01:42 · 451 阅读 · 0 评论 -
迪文串口屏屏幕界面制作软件T5L_DGUS Tool\\DGUS_V7647的使用
使用迪文串口屏要首先用屏幕界面制作软件T5L_DGUS Tool制作界面,然后在直面上设置变量,变量对应有地址。单片机可以使用串口发送数组,数组为迪文屏的控制指令,比如写数据指令,该指令中有变量的地址,然后就可以将要显示的数据显示在屏幕界面上的相应位置。选择新建工程,分辨率设置为480*272,并在桌面新建文件夹wer,选择该存储路径,确认。7、因为电压值为数字显示,最后再生成一个0号字库,这里回到欢迎界面,选择0号字库生成工具。4、给AD电压值处添加数据变量图标,选择文本显示,选择数据变量。原创 2024-01-17 16:54:52 · 904 阅读 · 0 评论 -
传感器浮点数数据在串口通信中封包技术解析
首先,需要取temperature的地址将其强制转化为unsigned char *类型的指针pdata1,由于temperature的8个字节的数据依次存放在存储空间中,所以将pdata1指针连续加1,并将指向的字节数据存储在charArray1[8]中,则完成了double型温度数据到字节数据的转化,pressure数据的转化同样如此。这里,在发送数据的时候,添加了简单的枕头、帧尾。接下来,则调用串口的发送函数,将已经转化为字节数据的温度数据和气压数据发送出去。三、机器人A发送大气压数据前的转化过程。原创 2023-09-14 20:11:49 · 143 阅读 · 0 评论 -
STM32程序模块化开发指导
3、当GYBMP280模块和OLED显示屏模块的c程序代码和头文件建立完成后,需要将两个模块添加到项目工程面,首先,在项目工程的如下目录创建HARDWARE目录,并将GYBMP280模块和OLED显示屏模块的c程序代码和头文件放到该目录下面。1、模块化开发的思路是在基础项目模板工程的基础基础上,添加新的功能模块则是以模块独立文件包的形式添加到项目工程里,通过相关的设置后,即可编译项目工程代码,添加n个功能模块则添加n个模块文件包到工程里即可,具体操作如下。同时,也将I2CS.C添加到system目录下面。原创 2023-07-10 15:17:38 · 616 阅读 · 0 评论 -
基于STM32单片机的RFID门禁系统设计
门禁系统主要组成:由CPU、复位电路、电源指示、工作指示、振荡电路、蜂鸣器电路、门控锁电路、出门按钮、读卡模块、显示模块等组成。其门禁系统的工作原理:当刷卡时,蜂鸣器响一下,如卡权限获得允许,显示模块显示卡号,同时继电器动作将门锁打开,指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭,指示灯熄灭。对形成的黑膜,要"吃"净焊锡,清洁被焊元器件或印刷板表面,重新进行焊接才行。当少量松香残留时,可以用电烙铁再轻轻加热一下,让松香挥发掉,也可以用蘸有无水酒精的棉球,擦去多余的松香或焊剂。三、软件设计程序流程图。原创 2023-06-26 11:04:40 · 1007 阅读 · 0 评论 -
瓦斯抽放采集仪设计过程
便携式激光瓦斯抽放综合参数测定仪的设计调试过程原创 2022-03-04 15:54:03 · 38 阅读 · 0 评论 -
2021-6-25 组态王与modbus rtu从机STM32精英开发板通信
一、组态王与modbus rtu从机通信原创 2021-06-25 15:59:54 · 2742 阅读 · 7 评论 -
2021-06-16 基于STM32的modbus rtu从机代码修改
一、基于STM32的modbus rtu从机代码修改1、从网上搜了搜modbus rtu从机的代码下载,搜到了一个,连接如下:https://blog.csdn.net/qq_27762895/article/details/902024402、充了年卡会员198元可下载400次,下载了代码3、MDK5打开代码后,编译通过,然后用STLINK下载失败,解决方法见上一篇博客4、下载入开发版程序后,又百度下载modbus调试精灵1.024,再次使用了csdn的会员下载。使用调试精灵设置好串口原创 2021-06-16 17:06:28 · 924 阅读 · 0 评论 -
2021-06-16 解决MDK5使用STLINK下载不进去程序报错的问题
一、解决MDK5使用STLINK下载不进去程序报错的问题1、从csdn上下载了一个modbus rtu从站的程序,连接好link线后,点击下载报错如下:2、然后在正点原子粉丝群询问,进行问题排查,先看DEBUG界面如下:再点击setting,如下可以看到jink并没有连接,而我打开另一个程序,使用link下载是没有问题的。这个时候,细心一点可以发现,这里的link选择的jlink,而我的连接线是stlink。所以DEBUG处应该选择为STLINK,如下图:选择完STl原创 2021-06-16 10:31:37 · 693 阅读 · 0 评论 -
2021-06-11 STM32的MODBUS RTU 主站通讯
一、STM32的TFTLCD实验、原创 2021-06-11 15:58:48 · 1668 阅读 · 0 评论 -
2021-05-19 基于STM32F400的modbus通信协议继电器控制板
一、基于STM32F400的modbus通信协议继电器控制板1、光耦(1)隔离作用。众所周知,光耦起到信号的隔离作用。由于光耦是单向传输的,所以可以实现信号的单向传输,使输入端与输出端完全实现了电气隔离,输出信号对输入端无影响,抗干扰能力强,工作稳定;由于光耦是光电式的所以使用寿命长,摆脱了机械式触点有吸合次数的缺陷。(2)电平转换作用。光耦可以实现电平的转换作用,比如说单片机是3.3V供电的,我要输出5V幅值的方波,可以通过光耦起到电平的转换作用。光耦是光电耦合器的简称,英文名字叫做opt原创 2021-05-19 15:21:18 · 126 阅读 · 0 评论 -
2021-05-19 STM32接电能模块串口打印电能数据
一、STM32接电能模块串口打印电能数据1、查看STM32精英板的串口管脚,结合着样例代码,看出来是串口2接收电能采集模块的数据,串口1打印电能数据。查看开发板和开发板电路图后,把电能采集模块的T管脚接到开发板的PA3接收管脚上。2、把样例程序编译后通过jink下载到开发板上,上电运行,打开xcom串口调试助手,发现收到的数据是乱码,切换了xcom的编码格式为ascll等后还是乱码,百度了一下,提醒到自己是波特率选错了,默认是4800,选择为115200后正常,查看程序,串口1的波特率确实设置为11原创 2021-05-19 10:26:37 · 517 阅读 · 1 评论