嵌入式开发
文章平均质量分 59
yy123xiang
这个作者很懒,什么都没留下…
展开
-
STM32F303 USB不能发现识别设备
使用STM32CubeMX配置USB为虚拟串口生成工程编译下载至F303中,连接电脑后在设备管理器中不能发现设备,USB接口电路同之前正常使用的F405电路。查阅资料后知晓,USB总线需要上拉电阻来判断是否有设备连接,而F405中已内置了该上拉电阻,F303则没有,所以相同的电路在搭配F303时无法正常工作。翻看参考链接评论区时知晓,ST的USB外设有三种,USB FS Device,USB FS OTG和USB HS OTG,只有第一种需要外置上拉电阻。原创 2022-10-13 16:58:25 · 3983 阅读 · 0 评论 -
GD32 CAN搭配HAL库使用的问题
CAN初始化时,程序会在函数HAL_CAN_Init执行时报错,仿真发现是在等待初始化确认时超时导致。查阅了ST和GD的参考手册,二者对初始化确认位的描述并无差异,推测是GD的bug。ST的描述,见下图:GD的描述,见下图:对此,解决办法是屏蔽掉对初始化确认位的检测,需注释掉stm32f4xx_hal_can.c文件中的部分代码,如下: /* Wait initialisation acknowledge */// while ((hcan->Instance->MSR &.原创 2022-05-24 11:21:52 · 2551 阅读 · 4 评论 -
使用STM32CubeIDE仿真时跳过芯片验证
使用STM32CubeIDE仿真时会读取芯片信息,若不是ST的芯片则会有错误提示,仿真将无法进行。STM32CubeIDE作为ST开发的自家工具仅供自家芯片使用无可厚非,但如果需要将ST的芯片替换为第三方的兼容芯片,将已有的CubeIDE工程移植到其他的开发环境工作量无疑大大的,此时,若有办法跳过芯片验证就好了。查阅了网上的资料,方法大致有两种,如下:STM32CubeIDE调试时,报Error in final launch sequence: Failed to start GDB serverS原创 2022-05-06 15:30:26 · 1439 阅读 · 2 评论 -
GD32F4上使用HAL库实现USB虚拟串口通讯
一直使用STM32F4搭配HAL库做项目,最近需要将软件移植至国产的GD32F4上,但兆易仅提供了标准库,并未像ST那样提供HAL库,但二者USB库又互不兼容。最后,为了原软件不做大的修改,故决定使用ST的HAL库+兆易的USB库来实现。首先是USB库文件的准备,兆易官网可下载GD32F4xx_Firmware_Library,将Firmware\GD32F4xx_usb_library目录下的相关文件拷贝至工程目录中,并添加至工程中,文件目录结构如下图所示:另外,在Examples\USB\USB原创 2021-09-01 16:57:38 · 6466 阅读 · 14 评论 -
使用STM32CubeMX创建基于FreeRTOS的lwIP工程
硬件平台:STM32F407VE+DP83848开发板STM32CubeMX配置:在Peripherals中对ETH的模式选择RMII,在Middlewares中勾选FREERTOS和LWIP,见下图:依据硬件环境自行对时钟进行配置,此处略。在LWIP Configuration中对lwIP进行相应的配置,将LWIP_DHCP设为Disable,IP_ADDRESS设为192.168.1...原创 2018-10-15 18:36:16 · 7906 阅读 · 0 评论 -
TMS320F281x 串口烧写程序
参阅《TMS320F281x Boot ROM Serial Flash Programming》(文献编号:SPRAAQ2),使用其配套的CKFA工程(下载地址)通过串口对TMS320F281x进行程序烧写。 在使用串口烧写前,参照下表将GPIO配置为调用SCI_Boot来从SCI_A中加载。 给DSP上电后,在超级终端中敲一个字母“a”或“A”,SCI_Boot code将应答收到的字...原创 2018-09-01 17:41:40 · 2954 阅读 · 0 评论 -
CanFestival移植至战舰STM32F1开发板
使用STM32CubeMX新建一个工程,仅需对CAN、RCC、SYS做若干简单的配置即可,CAN波特率配置为500k,点击Project -> Generate Code生成Keil工程与代码;在CanFestival官网下载最新版的源代码,在工程目录下新建CanFestival文件夹,将相应的文件拷入其中,其中ObjDict.c,ObjDict.h在博文使用Objdictedit生成C...原创 2018-06-13 16:18:18 · 2716 阅读 · 2 评论 -
使用Objdictedit生成CanFestival所需的对象字典文件
安装Beremiz,Objdictedit是其中的一个工具,但在新版本中该工具似乎被取消了,在此以Beremiz-1.01为例,安装完成后如下图所示: 以从零开始新建符合CiA DS301的对象字典EDS文件中创建的EDS文件为例,使用CANeds将1800sub6 SYNC start value删除,同理将1801sub6,1802sub6,1803sub6删除,否则使用Objdicte...原创 2018-06-13 12:12:32 · 5804 阅读 · 0 评论 -
使用STM32实现PMSM电机的正弦驱动
Microchip 的应用笔记 AN1017 讲述了一种使用空间矢量调制(Space Vector Modulation,SVM)方法产生用于驱动 PMSM 电机各相的正弦电流,以此驱动具有霍尔位置传感器的永磁同步电机(Permanent Magnet Synchronous Motor,PMSM)的控制算法,其配套的开源算法采用 dsPIC® 数字信号控制器实现,此前在淘宝购入了一块基于 STM3原创 2016-11-28 17:03:47 · 14875 阅读 · 24 评论 -
基于STM32的反电动势无传感BLDC控制
Microchip 的应用笔记 AN1083 详细地讲述了一种无传感器无刷直流电机的控制算法,其配套的开源算法采用 dsPIC® 数字信号控制器实现,此前在淘宝购入了一块基于 STM32 的无刷直流电机开发板,于是试着将该开源代码移植至手上这块开发板上。开发板如下图所示: 因硬件平台不同,故需要对硬件相关部分的代码做修改,主要涉及定时器和 AD 转换器,又由于其 IIR 滤波算法采用汇编代码编原创 2016-01-25 15:05:35 · 14992 阅读 · 2 评论 -
Windows下搭建GCC + Eclipse + OpenOCD的ARM开发环境
最近更新Win 10,重搭了GCC + Eclipse + OpenOCD的开发环境,写此文把过程记录下来,以便以后查阅。硬件平台STM32F405开发板 + ST LINKstep 1GCC ARM toolchain少不了,传送门。Build tools忘不了,传送门。OpenOCD跑不了,传送门。以上,都需要设置环境变量里的PATH。step 2测试用的工程文件,传送门。将Open原创 2015-08-11 10:46:55 · 7074 阅读 · 0 评论 -
基于STM32F4的FreeRTOS_笔记2_打印输出字符串
曾快速浏览过一遍《FreeRTOS实时内核使用指南》,但过后不久一些简单的概念却又忘了,遂决定把其中的示例程序都自己写一遍,以加深记忆。关于printf()在此用printf()函数代替示例中的vPrintString()函数,以实现通过串口将相应的字符串打印至串口助手上。对此,ST的库函数中有相应的例程,需要将以下代码添加到程序中:#ifdef __GNUC__ /* With GCC/RAI原创 2015-02-17 09:30:07 · 4838 阅读 · 2 评论 -
基于STM32F4的FreeRTOS_笔记1_IO间隔100ms翻转
最近想在Keil开发环境下将FreeRTOS移植到STM32F4系列单片机上,无奈官方DEMO中STM32F4系列只有IAR的示例,遂决定自己动手移植,并将这个学习过程记录下来。相关文件添加FreeRTOS官网下载最新的源代码。不妨在工程所在文件夹下新建FreeRTOS文件夹,将\FreeRTOSV8.2.0\FreeRTOS\Source路径下的include文件夹复制到新建的FreeRTOS原创 2015-02-06 16:30:48 · 1965 阅读 · 0 评论