stm32
文章平均质量分 55
风陵.
这个作者很懒,什么都没留下…
展开
-
探究STM32G0串口(LL库)接收中断一直触发的原因
单片机型号:STM32G030C8T6在初始化完串口后,开启串口接收中断,程序就一直在执行串口中断(此时串口无任何数据),通过在线查看串口外设的相关寄存器(如下图)发现RDR寄存器一直没有被清零,导致ISR寄存器的RXNE位一直有效,串口中断就一直处于触发的状态。通过查看STM32G0x0 Datasheet章节 26.8.10 Bit5 RXNE位,数据收据里面说到可以通过读取RDR寄存器或者往RXFRQ寄存器写1来清除ISR寄存器的RXNE标志位。LL库串口初始化及中断接收代码如下:void原创 2021-09-02 23:15:52 · 4161 阅读 · 0 评论 -
分析STM32G0 SPI外设不能触发RXNE接收标志的原因
今天准备移植STM32F030R8T6的程序到STM32G030C8T6上,程序中用到了硬件SPI外设,因为STM32G0用的HAL+LL库而不是不是标准库,所以我用STM32Cube MX生成了SPI的LL库代码,但是使能SPI后发现硬件怎么都不能触发RXNE接收标志,生成代码如下:void MX_SPI1_Init(void){ /* USER CODE BEGIN SPI1_Init 0 */ /* USER CODE END SPI1_Init 0 */ LL_SPI_Init原创 2021-06-07 21:17:34 · 1840 阅读 · 9 评论 -
STM32 ADC DMA数据不稳定的解决方案
参考文章:ADC 采样数据抖动STM32 ADC 采样值不准确 情况分析及解决办法在项目开发中,经常需要用到ADC采样的做电压检测,而且多通道ADC检测的情况比较多,所以本篇基于此要求采用了ADC DMA的方法,下面先给出基础代码(STM32F030)!#define ADC1_DR_Address 0x40012440//对应需要检测的ADC通道个数#define ADC_DMA_BUFFER_SIZE 2//按照通道顺序依次存放得到的ADC值__IO ui原创 2021-03-05 20:25:31 · 11034 阅读 · 3 评论 -
STM32F0地址解引用容易出现硬件错误的原因
参考链接:STM32F0非对齐访问引起的硬件错误及其排除先看一小段代码: //vu 等价于__IO(volatile) //代码一 u16 temp=0; temp = *(vu8*)faddr; temp <<=8; temp = *(vu8*)(faddr+1); //代码2 *(vu16*)faddr; 代码一和代码二的功能其实是一样的,都是在指定的faddr地址中取两个字节的数据形成一个16位的无符号整型数据,乍一看这是符合语法规则的,在F1系列的板子上代码都可原创 2020-09-29 21:17:49 · 729 阅读 · 0 评论 -
解决STM32F0/F1内部FLASH写操作导致中断程序无法响应的问题
参考链接:STM32F10x单片机Flash写操作导致中断不响应问题最近本人在写STM32F0系列的FLASH写操作的代码时突然发现一个问题,MCU往内部FLASH写入数据的过程中,中断程序是无法响应的,若此时发生中断,MCU是不能跳转到相应的中断程序上去的。官方手册《STM32F10xxx闪存编程手册.en》Page11描述如下:MCU在执行内部flash写操作时,又必须响应中断,这要怎么办?其实MCU执行的代码一般是放在FLASH地址上,MCU运行代码又必须向FLASH读取代码,但是向内部FL原创 2020-09-07 21:27:05 · 9176 阅读 · 5 评论 -
keil把程序在RAM中运行及sct连接脚本警告和错误的一些方法
KEIL中如何程序在 RAM 中运行keil中解决sct连接脚本告警和错误的一些方法事例代码工程下载链接原创 2020-08-20 14:34:18 · 676 阅读 · 0 评论 -
stm32f030采用轮询方法采集ADC多通道数据
参考链接:关于STM32F0系列多路ADC单独采样数据相同问题的处理文中博主已经详细说明了采集ADC多通道数据的方法,但是代码有一处BUG,运行时容易造成死循环。查看STM32F030参考手册12.12.8章节ADC 通道选择寄存器 (ADC_CHSELR)代码中涉及配置到CHSELR寄存器前,必须要确保ADC_CR寄存器的位2:ADSTART=0 时 ( 确定无进行中的转换 ) 才允许改写这些位。12.12.3ADC 控制寄存器 (ADC_CR)位 4 ADSTP: ADC 停止转换命令:该原创 2020-06-09 19:11:40 · 6520 阅读 · 3 评论 -
USB转TTL串口下载器下载STM32程序
连线:开发板----- TTL下载器3.3V -------- 3.3VTXD -------- RXDRXD -------- TXDGND -------- GNDTTL下载器:5V和VCC短接stm32 BOOT引脚设置:BOOT0接1(高电平)BOOT1接0(低电平)mcuisp设置:DTR低电平复位,RTS高电平进BootLoader...原创 2020-04-13 23:02:48 · 2817 阅读 · 0 评论