STM32进阶指南
STM32相关软件件技术分享。
501007162021
这个作者很懒,什么都没留下…
展开
-
C语言宏定义#与##
C语言宏定义#与##“#” 字符串化#include <stdio.h>typedef struct os_thread_def { char *name; ///< Thread name int pthread; ///< start address of thread function int tpriority; ///< initial th原创 2020-07-19 19:36:00 · 348 阅读 · 0 评论 -
浅析C语言中的const与volatile关键字
C语言const与volatile1. const声明一个只读变量。2. volatile告诉编译器不要去优化volatile修饰的代码,并且每次直接从数据源头读取数据,不允许将数据缓存到寄存器。注意:对volatile变量的操作不是原子性的。注意:volatile在c语言中和在java语言中的含义是不同的,本文重要阐述在c语言中的作用2.1 volatile的用途2.1.1 寄存器访问(每次都直接从寄存器地址获取数据)访问寄存器必须使用volatile修饰符。对可读可写的寄存器使用v原创 2020-07-19 19:30:03 · 677 阅读 · 0 评论 -
类linux驱动模块框架module_init(init_fun)在STM32上的实现
设计思想利用编译器的特性,在程序编译时将各模块初始化函数顺序存放到内存的指定地址,然后在程序运行时main函数从这块内存区域中 依次调用各模块的初始化函数,自动完成各个模块的初始化工作,同时增强了程序的高内聚低耦合特性,提高了软件的质量。试验环境工具链:Keil5开发板:STM32F103ZE1. 修改链接脚本修改链接脚本的目的是:在STM32的内存中,留出一块合适的大小(大小根据自己的需求调整), 用来存放各个模块的初始化函数1.1 内存分配在Keil中新建一个工程,编译后在工程目录下的O原创 2020-07-19 19:15:09 · 464 阅读 · 0 评论 -
完美解决:STM32CubeMX生成MDK项目报错
1. 报错信息2. 解决方法项目路径中不能有中文卸载已安装的java,然后安装java8原创 2020-03-13 11:18:28 · 4627 阅读 · 0 评论 -
STM32内部Flash使用磨损均衡算法(Erase Leveling)
STM32内部Flash使用磨损均衡算法(Erase Leveling)1. 设计思路芯片:STM32F103ZET6软件:STM32CubeHALFlash Page Size:2K使用Flash的一页Page60(0x0801E000 ~ 0x0801E800(不包含))进行磨损均衡算法试验数据帧格式:|0x5A|data1|data2|0xA5|本实验F...原创 2019-09-04 13:49:18 · 7094 阅读 · 3 评论 -
【记录】STM32学习之第一个程序(点亮LED)
STM32学习之第一个程序(点亮LED)开发板:Nucelo L053R8 芯 片:STM32L053R8 软 件:IAR for ARM 7.4, STM32CubeL0代码示例如下(库函数版):void blinkMyLed(){ GPIO_InitTypeDef GPIO_InitStruct; __GPIOA_CLK_ENABLE(); GPIO_InitStruct.原创 2015-04-22 17:42:15 · 4592 阅读 · 0 评论 -
【记录】STM32在IAR中调用之printf函数的一个方法
原文地址:http://blog.sina.com.cn/s/blog_668bcb8f01018ect.html 在串口都配置好的情况下,在main.c文件中加入#include <stdio.h>#ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)#else #define PUTCHAR_PROTOTY转载 2015-04-27 16:54:42 · 2962 阅读 · 1 评论 -
【记录】STM32在ucOS串口的操作(Polling)
1、初始化串口static void BSP_USART_Init (void) { //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; //NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2P原创 2015-04-28 11:01:37 · 2198 阅读 · 1 评论 -
【记录】STM32在ucOS中的串口操作(Interrrupt)
1、串口初始化static void BSP_USART_Init (void) { //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; //NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2P原创 2015-04-28 11:20:36 · 4182 阅读 · 1 评论 -
【知识点】STM32时钟配置
原文地址在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①HSI是高速内部时钟,RC振荡器,频率为8MHz。②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③LSI是低速内部时钟,RC振荡器,频率为40kHz。④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。⑤PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2转载 2015-05-26 16:17:50 · 1105 阅读 · 0 评论 -
【知识点】STM32之中断与事件的区别
原文地址:http://blog.csdn.net/flydream0/article/details/8208463 这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套.图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断挂起请求寄存器,最后转载 2015-05-26 16:20:37 · 4399 阅读 · 1 评论 -
【知识点】bit-band(stm32)
STM32 bit-band原创 2016-07-31 18:36:09 · 815 阅读 · 0 评论