
HAL库基础学习
The_General_Reader
不秃不胖不油腻
展开
-
STM32重启原因
重启原因寄存器(RCC_CSR)地址:0x94参考:芯片参考手册(RCC中寄存器RCC_CSR)1. 低电量重启: 0x84002. 窗口看门狗复位重启: 0x44003. 独立看门狗复位: 0x24004. 软件复位: 0x14005. POR/PDR复位: 0x0C00(掉电复位)其中从31位上依次顺序1. 低功耗复位标志2. 窗口看门狗复位标志3. 独立看门狗复位标志4. 软件复位标志5. BOR复位标志6. 引脚复位标志7. 选项位加载器复位原创 2021-03-04 11:38:41 · 2918 阅读 · 1 评论 -
数据打印输出寄存器方法
数据打印输出(寄存器方式)最近在运用操作系统过程中,遇到一个问题,就是当2个任务函数同时调用一个hal库函数时,会发生异常情况,导致数据输出存在bug。经过一番检查之后,发现可能是库函数调用过程中,相关寄存器标志位未来及更改,就进入另一个任务函数中执行另一个hal库发送函数,使得判断异常。为解决这个办法,可自行通过编译寄存器发送函数,直接对寄存器进行操作,实现过程透明化,便于理解,也可以防止程序出现异常。UARTx->DR=USART_RX_BUF[t]; //发送一个字节到串口,直接通过寄存原创 2020-08-04 17:16:22 · 1108 阅读 · 0 评论 -
关于调试输出printf移植问题
关于printf移植的相关问题一、 移植printf时,直接添加以下函数#if defined ( __ICCARM__ ) //IAR使用//重定义fputc函数 int fputc(int ch, FILE *f){ while((USR_Sensor->ISR &0X40)==0);//循环发送,直到发送完毕 USR_Sensor->TDR = (uint8_t) ch; return ch;}#else//加入以下代码,支持pr原创 2020-07-24 14:04:16 · 280 阅读 · 0 评论 -
关于hal库的相关学习
一、各类函数用法1,延时函数用法直接调用HAL_Delay()函数即可,单位是ms。2,二、使用stm32cubemx的hal库注意事项1,首先编程时尽量编写在给定编写区域,方便更改引脚型号且不会改动已编写程序。(如果发现引脚定义出错,或者需要添加新定义,则直接在图形界面上直接编译即可!方便简介,同时注意引脚定义特性,根据需要进行定义。)待续~...原创 2020-06-18 11:55:06 · 393 阅读 · 0 评论