- 博客(16)
- 资源 (8)
- 收藏
- 关注
原创 2020-07-30
STM32 FreeRTOS下读取HX711HX711读取数据时时钟周期只有几十微秒,直接在线程中调用例程中的没法实现,因此考虑将数据口设置为输入中断模式,时钟口用定时器PWM发送脉冲,在定时器中断中取每个bit的数据。具体方法如下:设置外部中断下降沿触发当单片机外部中断发生时,先关闭外部中断等待数据口变高电平打开定时器PWM,产生25个脉冲在定时器中断中读取数据口状态,并按位赋值到变量,当发送到最后一个脉冲时,关闭PWM. 打开外部中断发送消息给OSOS处理消息这样一个读取周期完成
2020-07-30 16:45:20 263
原创 SQL LocalDB 2016 存在BUG
最近用WPF写一个软件,需要用到数据库,以前我一般用Access数据库,这次考虑到以后软件可能要做网络版,所以尝试用SQL LocalDB。我先写了一个测试程序后,Debug运行正常。然后做安装打包,结果发现打包后在干净的Win10下安装后无法运行。经过各种折腾,终于早到问题,总结如下: 需要安装SQLLocalDB 2016,注意版本V13.2.5026.0可能有BUG,安装后命令行无法正常操作,根本无法使用,我最后安装的是V13.0.1601.5版本,安装后要在命令行做以下操作:1、...
2020-07-28 00:20:09 368
原创 STM32f429 CubeMx FreeRTOS emWin (Cubemx有BUG)
之前裸机emWin成功了,接下来尝试CubeMx FreeRTOS emWin,又遇到三个坑。先说第一个坑:我直接再之前裸机的工程上增加FreeRTOS,结果生成程序后,编译报一大堆错误,分析了一下错误实在是无从下手,因此怀疑CubeMx有问题,因此我就将Keil工程文件夹全部删除,再重新生成。再次编译情况好转,但是还是不少错误。这是第二个坑!第二个坑:CubeMx配置FreeRT...
2019-06-29 12:54:37 4452 1
原创 STM32f429 CubeMx LTDC SDRAM emWin 程序进入 硬件错误中断(UsageFault_Handler)
最近网上买了一套野火挑战者STM32F429开发板,配的是800X480的电容屏,尝试emWin开发。拿到板后我先从官方提供的例程中选了几个试了一下,感觉确实用emWin做人机界面很不错。可惜例程用的是STM的标准库,我一直以来一直在用CubeMx+Keil开发STM32,所以就开始尝试把例程移植到Hal库。先用CubeMx配置SDRAM、LTDC等等,并把驱动一一改为Hal库的程序,逐一测试通过...
2019-06-27 21:00:41 4513 3
原创 第三个实验例子:FreeRTOS USART DMA 空闲中断接收 队列
第三个实验例子:FreeRTOS USART DMA 空闲中断接收 队列上一篇是串口中断接收数据,然后通过消息队列转发。它实现的方法是每收到一个字节发送一次,这个做法用在串口转发数据上实时性还是不错的,但是在平时多数的串口应用中更多的是需要实际通讯。往往是单片机接收一帧数据,根据通讯协议实现某些功能,然后再回答。为此我尝试采用通过采用DMA方式,利用空闲中断来接收一帧数据,然后发送数据到队列,...
2019-04-10 10:53:07 6249 3
原创 STM32 FreeRTOS 第二个实验例子:串口转发(单字节转发)
第二个实验例子:串口转发(单字节转发)目的:通过队列实现Usart1接收数据,由Usart2转发出去Step1:串口声明串口接收缓存,并添加串口回调函数usart.h : /* USER CODE BEGIN Private defines */ #define UART_BUF_SIZE 1 //缓冲长度为 1 extern uint...
2019-04-09 11:26:10 5227
原创 STM32 FreeRTOS 第一个实验例子:LED闪灯(任务队列)
软件环境:IDE Keil5+CubeMx5.1硬件环境:STM32F103ZE吐槽一下:CubeMx我最早用的是4.2版本,后来开始使用5.0.1版本,结果发现如果工程路径中有中文在生成代码时就会报错,而且在打开和保存文件时可以看到所有中文文件夹都无法正常显示,没办法只能把有关路径都改为英文。今天在网上看到有5.1版本了,可以支持中文了,赶紧下载并安装。运行后点击File-&g...
2019-04-05 15:08:14 5320 1
原创 常用的数据类型转换
最近做stm32项目用到一些数据的转换,现贴出来,大家一起讨论:void float2str(float val, unsigned char Decimal, char *buf){ char fmt[]="%.3f"; fmt[2]=Decimal+0x30; sprintf(buf, fmt, val);}void IntToStr(int dat,char *buf)...
2018-10-25 11:44:17 1834
原创 STM32的串口空闲中断接收不定长数据
最近想尝试STM32 通过DMA收发数据,网上找了不少参考文章,最后参考https://blog.csdn.net/youmeichifan/article/details/51750435?utm_source=dlogxgwz2 博文中的方法。按照此文的方法实现了串口的收发,但是实际使用中发现:接收空闲中断的产生是在数据接收停止一个字节时产生的,但是有时由于上位机编写问题或硬件问题(本...
2018-10-25 11:10:34 6743 3
原创 单片机float转字符串
/*val:输入的浮点值Decimal:小数保留位数 *buf:输出字符串的指针*/void float2str(float val, uint8_t Decimal, char *buf){ char fmt[]="%.3f"; fmt[2]=Decimal+0x30; sprintf(buf, fmt, val); return buf;} ...
2018-10-23 15:19:05 4453
原创 STM32F103 CubeMX I2C
最近在做一个项目,由于实时性要求高所以想把串口通讯、I2C、SIP都通过DMA来完成。先用CubeMx配置后生成工程,然后做串口DMA收发测试程序一切顺利,接下来搞了一天I2C,总是在不成功,逻辑分析仪上SDA、SCL只看到有一个脉冲,断点调试发现死锁在while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET);几乎放弃。后来...
2018-06-06 09:50:12 4457
原创 VB6.0中如何把数组存如数据库中
这几天在做一个数据采集的上位机软件,设想把采集的数据存入数据库(每次采样1000个数据)。网上找了一下没有很好的答案,今天花了点时间做了个试验程序,代码如下:(调试通过) '先在Access表中建一个字段类型为OLE的字段 Dim adoConn As New ADODB.Connection Dim ListRS As New ADODB.Recordset
2011-12-29 00:09:06 4438 3
原创 K型热电偶转换函数(VB代码)
在做温度控制时都会遇到热电偶电势转换到温度、温度转换到电势,如果查表编程比较麻烦。我根据热电偶的正函数和反函数编了2个转换函数,个人认为比较方便,而且网上也很少有热电偶的正函数和反函数的资料,所以我show给大家看看,也许各位会用到。这2个函数是针对K型热电偶的。注:之前的VtoTemp()函数没有包含负电压的转换,而且还有错误,现在已经做了修改。'温度转换为电压值Private Fu
2011-08-06 09:25:54 2495 3
原创 提高VB6.0处理图像的速度的方法
通常我们都觉得VB6.0在处理图像的能力方面表现很差,一般很少有它来做图像处理。如果把图像先装入数组,再做各种运算,最后将图像显示到图像控件,速度还是比较快的。以下是我用imagxpress控件配合此方法的代码:模块'Imagx是自定义变量类型Public Type ImageX ImageArray() As ByteEnd Type'将imagxpress控件中的图像写入数组Function GetImage(imageOBJ As ImagXpress) As ImageX Dim P
2011-05-18 22:13:00 1199
原创 Proteus与Keil联调方法
今天忙了一上午,终于把Proteus与Keil联调搞定了,在网上找了很多Proteus与Keil联调方法,最后发现下面的方法又清晰又简单。1.安装Proteus.2.安装Keil.3.运行“vdmagdi.exe” ,安装完毕;(网上可以下载到)4.运行"ISIS 7 Professional"菜单"Debug(调试)",选中"Use Remote Debug Monitor(使用远程调试监控)";(好多人写的方法漏了这一步,我就是犯的这个错。如果漏了此步,Keil会出现"Failed to connect
2010-12-03 20:59:00 9683 5
原创 vb.net md5加密字符串
一下是我编程时,网上复制的,调试时发觉和我以前VB6的输出结果有出入,我做了一点修改。 Public Function MD5(ByVal StrSource As String, ByVal Code As Int16) As String '这里用的是ascii编码密码原文,如果要用汉字做密码,可以用UnicodeEncoding,但会与ASP中的MD5函数不兼容 Dim DataToHash As Byte() = (New System.Text.ASCIIEnco
2010-10-17 19:18:00 1148
STM32 Modbus 模块
2018-10-25
SUDT AccessPort PC机串口(RS232)调试、监控的软件
2011-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人