嵌入式
Ted_Xi
这个作者很懒,什么都没留下…
展开
-
STM32H7 USB固件库BUG Internal DMA
STM32H7 在STM32Cube中配置USB_FS,打开Enable_internal_IP_DMA后电脑枚举失败。跟踪代码,找到stm32h7xx_hal_pcd.c中有一段代码: /* Disable DMA mode for FS instance */ if ((USBx->CID & (0x1U << 8)) == 0U) { hpcd->Init.dma_enable = 0U; }说明USB全速设备不应该使用DMA,使用了也应该原创 2021-11-22 13:07:02 · 1778 阅读 · 0 评论 -
STM32H7 固件库版本导致的USB虚拟串口问题
固件版本:STM32Cube_FW_H7_V1.7.0主要问题:使用STM32Cube配置USB全速Device,配置虚拟串口后,出现①电脑能枚举串口设备成功,但是无法使用串口助手打开串口;②在解决问题①后(使用串口助手成功通信),拔插USB无法枚举设备,重启STM32后第一次插入可以,第二次就会无法识别。解决办法:①原因是在打开串口时无法获取虚拟串口的波特率,停止位,奇偶校验等信息。在usbd_cdc_if.c文件中,定义结构体USBD_CDC_LineCodingTypeDef linec原创 2021-11-21 14:11:09 · 1743 阅读 · 0 评论 -
树莓派在无网络、无显示器的情况下开启串口终端
将树莓派sd卡boot分区中的config.txt末尾增加如下一行即可打开串口终端dtoverlay=pi3-miniuart-bt原创 2021-03-30 19:51:41 · 373 阅读 · 0 评论 -
Riscv CSR指令详解
一、CSR简介在Riscv中CSR是Control and Status Register(控制和状态寄存器)的简写,注意CSR就是寄存器。而CSR指令就是操作CSR寄存器的一组指令。CSR最多有4096个。CSR独立编址。二、CSR指令所有的CSR指令都会对CSR进行读——改——写操作。CSR指令中共有12位(20-31位)用来指示被“读改写”的是哪一个寄存器。CSRRW指令CSRRW指令可以原子性地读写CSR(Atomic Read/Write CSR)。Created with Raph原创 2021-01-21 16:17:46 · 17529 阅读 · 3 评论 -
riscv-none-embed-gcc的安装与问题排除
1、gcc下载地址我下载为windows下的压缩包,解压即用。2、推荐相关教程3、小坑一个在编译hello world过程中发现如下报错:exit.c:(.text.exit+0x1e):undefined reference to '_exit'参考此篇文章后,添加编译参数即可:--specs=nosys.specs如.\riscv-none-embed-gcc.exe -o bin .\test.c -march=rv32i -mabi=ilp32 --specs=nosys.sp原创 2020-11-12 13:11:03 · 2749 阅读 · 1 评论 -
Windows下编译OpenOCD
首先需要安装Cygwin在这里下载Cygwin安装包完成后打开exe文件进行安装。选择install from Internet。然后指定目录。然后选择直接连接(direct connection)。这里可以选择阿里的镜像源,若当前镜像源列表无法加载出来,可以直接在User URL中输入上图的镜像地址。然后安装如下所有包。完成后即可打开Cygwin控制台开始下一步工作。编译OpenOCD在想要的工作目录下运行git clone https://github.com/ntfrea原创 2020-10-23 10:31:14 · 1041 阅读 · 0 评论 -
STM32 HAL USB SD卡读卡器usbd_storage_if.c文件的坑
首先推荐教程和对应搬运的视频int8_t STORAGE_Init_FS(uint8_t lun){ /* USER CODE BEGIN 2 */ return (USBD_OK); /* USER CODE END 2 */}//若这里使用hsd.SdCard.BlockSize的话,有些卡BlockSize为1024byte,会造成设备管理器显示无法迁移设备int8_t STORAGE_GetCapacity_FS(uint8_t lun, uint32_t *block_nu原创 2020-08-28 14:42:17 · 1170 阅读 · 0 评论 -
BC26-OpenCPU的正确打开方式PlatformIO
今天是2020年4月15日,川大公布了考研复试线,我以几分之差没能进入复试。回想起高考差一分上天津大学,仍然十分心疼。BC26介绍 BC26使用的是MT2625主频78MHz,用户可使用ROM:195.3 KB/RAM:97.7 KB。由于支持OpenCPU,可以二次开发,节省一个MCU的成本,并且拥有较大的ROM和RAM。 官方提供的BC26 OpenCPU SDK是在Windows平...原创 2020-04-15 23:07:06 · 2757 阅读 · 1 评论 -
STM32正交解码,解决正反转正负值问题
环境环境为:1、STM32CubeIDE2、STM32F030C8T63、使用定时器3(TIM3)配置TIM3配置为编码器模式。由于1和2通道已被编码器占用,所以为灰色。在main.c中STM32Cube已自动生成,并已自动调用。static void MX_TIM3_Init(void);只需在程序中手动调用以下代码即可HAL_TIM_Encoder_Start(&am...原创 2020-03-16 15:17:40 · 4769 阅读 · 5 评论 -
TXS0108双向电平转换芯片用于IIC时的问题
TXS0108双向电压转换芯片用于IIC时的问题TXS0108是双向电平转换芯片,在我的案例中用于1.8V电平与3.3V电平的转换。最先,我在3.3V和1.8V的SCL和SDA总线上均使用了4.7kΩ的上拉电阻,上拉到对应的高电平。调试发现SDA出现如下波形:可以看到图上出现了次高电平。非常不正常。分析后发现,中间四个次高电平都是IIC芯片发出的ACK信号,应该被拉低,但是并没有拉低到0V。导...原创 2020-03-12 19:42:26 · 11843 阅读 · 9 评论 -
ADS1118调试指南和寄存器解析
ADS1118基本功能ADS1118是TI的16位ADC,内置1MHz晶振和参考电压源,转换速度8~860次每秒可调,量程±0.256V到±6.144V可调,可选单端输入或差分输入,内部集成温度传感器。ADS1118寄存器ADS1118的寄存器非常简单,只有2个16bit的寄存器。其中一个位只读寄存器,保存ADC转换后的值;另一个为配置寄存器,配置采集通道、正负量程、采集模式、采集速率、采集...原创 2020-03-08 14:11:51 · 10804 阅读 · 12 评论