stm32的串口调试卡死问题

发布者:创意驿站最新更新时间:2019-06-26 来源: eefocus关键字:stm32  串口调试  卡死 手机看文章 扫描二维码
随时随地手机看文章

且看这次出现的bug是一直等待,


while(USART_GetFlagStatus(USE_Usart,USART_FLAG_TC)==RESET);


这个有很多说法 不过本人处理的方法是加入了一个一行代码就好了


NVIC_SetVectorTable(NVIC_VectTab_FLASH,0);  


关键字:stm32  串口调试  卡死 引用地址:stm32的串口调试卡死问题

上一篇:STM32adc采集的一些bug
下一篇:stm32的adc总结

推荐阅读最新更新时间:2024-11-12 14:39

STM32 Printf函数利用标准库实现方法
/****************************************************分割线*******************************************/ // 加入以下代码。支持printf函数,则不需要选择use MicroLIB //添加头文件 #include stdio.h //添加代码 #if 1 #pragma import(__use_no_semihosting) //标准库需要支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机
[单片机]
<font color='red'>STM32</font> Printf函数利用标准库实现方法
stm32专题五:时钟树(四)自定义配置HSI时钟
内部时钟HSI的配置方式和HSE基本一致,唯一的一个区别在于,没有等待HSI就绪的函数,因此需要操作RCC_CR寄存器的HSIRDY位来判断时钟就绪,其他直接按流程即可。 bsp_rccclkconfig.c /* RCC时钟配置函数 */ #include bsp_rccclkconfig.h // 自定义时钟配置函数 void HSI_SetSysClk(uint32_t RCC_PLLMul_x) { // 因为操作的是寄存器,所以加上__IO,每次去地址读 __IO uint32_t HSIStatus; // 把RCC时钟复位成复位值 RCC_DeInit(); //
[单片机]
STM32】中断和中断优先级理解
  在嵌入式系统开发过程中,不可避免的会和“中断”打交道。很多初学者对中断的理解不深,往往是看到中断绕着走。其实不然,费点时间搞懂中断能解决不少问题。   中断英文“Interrupt”,字面很好理解,就是打断的意思。在程序中“Interrupt”打断的自然也是程序。举个例子,有一个遥控的自动避障小车,小车在向前跑的过程中程序一直监测周围环境,实现避障功能,这个时候你想遥控小车停个三分钟,就要用到中断了,也就是打断原有的“监测环境——避障”程序流程。打断的目的就是执行“别跑啦,停下来歇歇”这个程序,我们称中断之后执行的程序为“中断服务函数”。一般情况下,中断服务函数执行完后(小车休息三分钟,或者干其他的事情完事后),会清理一下中断
[单片机]
STM32 KEIL下的堆栈设置问题
刚接手 STM32 时,你只编写一个 int main() { while(1); } BUILD://Program Size: Code=340 RO-data=252 RW-data=0 ZI-data=1632 编译后,就会发现这么个程序已用了1600多的RAM,要是在51单片机上,会心疼死了,这1600多的RAM跑哪儿去了,分析map,你会发现是堆和栈占用的 在startup_stm32f10x_md.s文件中,它的前面几行就有以上定义,这下该明白了吧。 Stack_Size EQU 0x00000400 Heap_Size EQU 0x00000200 顺便记号,关注此帖:
[单片机]
STM32开发笔记74: STM32L0低功耗唤醒后的时钟选择
本文介绍STM32L0系列单片机低功耗唤醒后的时钟选择。 参看已有的低功耗例程,发现都使能了HSI时钟,一致没有深究其中的具体原因,今天把它搞明白了,现记录如下: 先看一下,使能低功耗的函数: void CTarget::EnableLowPower(void) { HAL_PWREx_EnableUltraLowPower(); HAL_PWREx_EnableFastWakeUp(); __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_HSI); DisableAllIO(); } 第1句使能超低功耗,第2句使能快速唤醒,第3句选择唤醒后的主始终,第4
[单片机]
STM32之HAL库详解及手动移植
HAL库结构   说到STM32的HAL库,就不得不提STM32CubeMX,其作为一个可视化的配置工具,对于开发者来说,确实大大节省了开发时间。STM32CubeMX就是以HAL库为基础的,且目前仅支持HAL库及LL库!首先看一下,官方给出的HAL库的包含结构: - **stm32f2xx.h**主要包含STM32同系列芯片的不同具体型号的定义,是否使用HAL库等的定义,接着,其会根据定义的芯片信号包含具体的芯片型号的头文件: #if defined(STM32F205xx) #include stm32f205xx.h #elif defined(STM32F215xx) #include stm32f21
[单片机]
<font color='red'>STM32</font>之HAL库详解及手动移植
Stm32采用环形缓冲区接收rk3588的数据代码
```c #include stm32f10x.h #include usart.h #include ring_buffer.h #define BUFFER_SIZE 128 uint8_t buffer ; // 定义一个大小为128的缓冲区 ring_buffer_t ring_buffer; // 定义一个环形缓冲区结构体 void USART1_IRQHandler(void) { if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) // 判断是否接收到数据 { uint8_t data = USART_ReceiveData(USART1); // 读取接收
[单片机]
STM32 内存分配解析及变量的存储位置
内存映射 在一些桌面程序中,整个内存映射是通过虚拟内存来进行管理的,使用一种称为内存管理单元(MMU)的硬件结构来将程序的内存映射到物理RAM。在对于 RAM 紧缺的嵌入式系统中,是缺少 MMU 内存管理单元的。因此在一些嵌入式系统中,比如常用的 STM32 来讲,内存映射被划分为闪存段(也被称为Flash,用于存储代码和只读数据)和RAM段,用于存储读写数据。 STM32 的 Flash 和 RAM 地址范围 笔者标题所说的内存是指 STM32 的 Flash 和 RAM,下图是 ARM Cortex M3 的地址映射图: 从图中我们可以看到 RAM 地址是从 0x2000 0000 开始的,Flash地址是从 0x08
[单片机]
<font color='red'>STM32</font> 内存分配解析及变量的存储位置
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved