
MCU
他乡&学子
这个作者很懒,什么都没留下…
展开
-
定义平台无关的数据类型,方便移植 C/C++开发
当我们在做跨平台的项目时,很可能会遇到数据类型有变化的情况,假如你的原工程代码中变量采用的都是如int、char等这样的定义会增加代码移植的工作量,而且修改时很容易遗漏出错,如果我们利用typedef对标准的数据类型重新定义别名,则在跨平台移植时我们只需要把有变动的标准数据类型更换即可,这样操作简单、不易出错。//// Created by taxiang&xuezi on...原创 2018-08-15 14:51:46 · 1269 阅读 · 0 评论 -
STM32 JLINK接口定义 JTAG/SWD
原创 2018-08-16 14:37:50 · 8894 阅读 · 0 评论 -
STM32 Keil新建工程报错“Loading PDSC Debug Description Failed for STMicroelectronics STM32Lxxxxxxx”
在使用STM32L0xx系列和STM32L4xx系列的单片机时都遇到了打开keil工程报“Loading PDSC Debug Description Failed for STMicroelectronics STM32Lxxxxxxx”错误的问题,具体现象和解决方法如下图文所示: 找到keil的Build Output窗口提示的File路径,找到Keil.ST...原创 2018-08-22 13:12:23 · 84397 阅读 · 73 评论 -
STM32 GPIO模拟SPI源码
用GPIO模拟实现SPI通信,已在STM32平台验证通过,适用于各种MCU平台,源代码如下:spi.h#ifndef __SPI_H#define __SPI_H#include "stm32l0xx.h"#ifdef SPI_GLOBALS#define SPI_EXT #else#define SPI_EXT extern#endif#define M_CS_...原创 2018-08-17 10:18:00 · 14117 阅读 · 6 评论 -
STM32 用__DATE__和__TIME__获取keil工程编译时间,关联软件版本信息
keil项目开发时,刚入门的童鞋们一定遇到过手动更改软件版本号的繁琐操作,有没有一种只要自己重新编译工程后软件版本号就会随着编译时间自动更新的方法呢?很高兴的告诉你,还真有!而且特别简单 ^_^在你的keil工程文件中任选一个.c文件,此处用common.c做示例,源代码如下:common.h#ifndef __COMMON_H#define __COMMON_H#ifde...原创 2018-08-17 10:59:41 · 8710 阅读 · 0 评论 -
STM32 状态机实现按键消抖处理源码
key.h#ifndef __KEY_H__#define __KEY_H__#include "stm32f10x.h"#ifdef KEY_GLOBALS#define KEY_EXT#else#define KEY_EXT extern#endif//IO定义#define down() GPIO_ReadInputDataBit(GP...原创 2018-08-17 13:55:45 · 3466 阅读 · 0 评论 -
STM32 boot0和boot1
正常的默认启动方式是boot0=0,boot1=x;实现bootloader的启动模式是boot0=1,boot1=0,bootloader程序可使用stm32自带或者自己创建,自己创建的方法及源码有需要的可以私密我;boot0=1,boot1=1从内存启动,数据掉电丢失,仅做调试及其它使用;有些型号的芯片未外接boot1管脚,对于这种情况可忽略boot1,按照模式参照表仅配...原创 2018-10-11 14:17:36 · 2193 阅读 · 0 评论 -
STM32 Keil新建工程报错“Error: L6200E: ”
在STM32CubeMX软件版本更新后,编译先前版本上创建的keil工程文件时经常遇到错误“Error: L6200E: ”,现象如下图:解决办法: 通过报错信息可以看到是system_stm32l0xx.c里面重复定义了某个函数,在“Project”窗口下的“Drivers/CMSIS”下找到system_stm32l0xx.c,发现有两个system_st...原创 2018-10-19 11:12:03 · 9355 阅读 · 2 评论