自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (9)
  • 收藏
  • 关注

原创 STM32F407探索者(正点原子的资料)(百度链接)

STM32F407探索者(正点原子的资料):链接:https://pan.baidu.com/s/1FiYX4mOB_iIxlJL3FI_Q1Q提取码:dpnq

2019-11-05 10:33:54 9145 5

原创 STM8、32标准外设库(百度链接下载)

STM8、32标准外设库STM32F0xx_StdPeriph_Lib_V1.5.0.zipSTM32F10x_StdPeriph_Lib_V3.5.0.zipSTM32F2xx_StdPeriph_Lib_V1.1.0.zipSTM32F30x_DSP_StdPeriph_Lib_V1.2.3.zipSTM32F37x_DSP_StdPeriph_Lib_V1.0.0.zip...

2019-11-05 09:59:59 2815 5

原创 Keil如何新建STM32工程

Keil下如何新建STM32工程,分六步走。第一步 新建文件夹第二步 拷贝必要文件进来拷贝完成。第三步 新建工程打开软件新建工程:Project àNew uVision project然后弹出路径和工程名设置,选择刚才新建的工程路径,并命名,然后保存。接着选择自己使用的芯片型号,点击????。/**************...

2019-11-05 09:43:00 1180

原创 STM32工程在keil下怎么移植到IAR环境(stm32f103c8)

从STM32的keil开发环境移植到IAR开发环境,分为六步走。首先安装IAR编译环境,这个自行安装。第一步 新建文件夹新建一个文件夹命名“LED_CTRL”,在这个文件夹下再建立三个文件夹,CMSISI:放系统启动相关文件,FWLIB:放库文件USER.:放用户自己写的文件如下图:第二步 拷贝文件在keil下其实也有相对应的文件,我么们考过来就可以了。...

2019-11-04 17:44:38 2212

原创 STM32串口重定向使用printf的问题

之前使用串口重定向的时候没想那么多,也没有归纳总结,都是能用就行。今天重新弄一个串口,在使用串口重定向printf打印时,遇到了程序不执行的问题。现归纳总结一下:芯片:STM32F103C8t6 环境:KEIL5.231.写出串口重定向的函数:(注意:需要包含都文件 #include <stdio.h>)#define _PRINTF_#ifdef _PRIN...

2019-10-31 10:25:54 1078 2

原创 关于PADS9.5打开layout时出现错误窗口:unable to create addin :InstanceName=Achive Navigator=DAVIGATOR的问题。

1.问题描述:9.5PADS打开layout出现如下窗口:2.解决办法:以管理员身份打开CMD,注意,必须是以管理员身份哦!然后进入安装PADS的目录:C:\Windows\system32>D:D:\MentorGraphics\9.5PADS\SDD_HOME\Programs>然后执行命令安装:D:\MentorGraphics\9.5PADS\...

2019-10-09 10:55:22 3288

原创 DSP ECan在配置扩展模式,非常奇怪的问题

DSP ECan在配置扩展模式,基本的发送接收功能时遇到一个非常奇怪的问题,2块不同的板子,但芯片是相同的F8069,其中有一块板子只有下载完程序而不复位就能发送和接收数据,只要复位之后,就不能再跑起来。另外一块板子则不受影响,开机,复位都能在正常发送接收数据。可以确认的是,程序已经成功写入到芯片,那还有什么原因会导致这样的情况发生呢?...

2019-08-21 09:29:38 338

原创 安装DSP开发环境:CCS8注意事项

安装CCS8的注意问题:1.安装的路径直接使用默认路径,否则可能会安装失败。(我就是一直安装失败才使用默认路径的。)2.安装controlSUITE也直接使用默认路径,(原因:在CCS8开发软件中需要配置controlSUITE的路径,否则库文件将会不被找到,文件编译则能通过,而很多工程都是直接使用默认路径,因此使用默认路径比较好。)...

2019-08-08 08:19:15 1297

转载 C 命令行参数

C 命令行参数执行程序时,可以从命令行传值给 C 程序。这些值被称为命令行参数,它们对程序很重要,特别是当您想从外部控制程序,而不是在代码内对这些值进行硬编码时,就显得尤为重要了。命令行参数是使用 main() 函数参数来处理的,其中,argc 是指传入参数的个数,argv[] 是一个指针数组,指向传递给程序的每个参数。下面是一个简单的实例,检查命令行是否有提供参数,并根据参数执行相应的动...

2019-01-06 18:23:59 218 3

转载 C 内存管理

C 内存管理本章将讲解 C 中的动态内存管理。C 语言为内存的分配和管理提供了几个函数。这些函数可以在 &lt;stdlib.h&gt; 头文件中找到。序号 函数和描述 1 void *calloc(int num, int size); 在内存中动态地分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0。所以它的结果是分配了 num*size ...

2019-01-06 18:15:42 288 2

转载 C 可变参数

C 可变参数有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数。下面的实例演示了这种函数的定义。int func(int, ... ) { . . . } int main() { func(2, 2, 3); func(3, 2, 3, 4); }请注意,函...

2019-01-06 18:07:14 128

转载 C 递归

C 递归递归指的是在函数的定义中使用函数自身的方法。举个例子:从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?'从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……'"语法格式如下:void recursion() {statements;...

2019-01-06 17:57:00 175

转载 C 预处理器

C 预处理器C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CPP。所有的预处理器命令都是以井号(#)开头。它必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始。下面列出了所有重要的预处理器指令:...

2019-01-06 17:02:34 172

转载 C 文件读写

上一章我们讲解了 C 语言处理的标准输入和输出设备。本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。本章将讲解文件管理的重要调用。打开文件您可以使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调...

2019-01-06 16:44:50 255

转载 位域

C 位域如果程序的结构中包含多个开关量,只有 TRUE/FALSE 变量,如下:struct{ unsigned int widthValidated; unsigned int heightValidated;} status;这种结构需要 8 字节的内存空间,但在实际上,在每个变量中,我们只存储 0 或 1。在这种情况下,C 语言提供了一种更好的利用内存空间的方式。如...

2019-01-06 16:16:28 179

转载 共用体

C 共用体共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。定义共用体为了定义共用体,您必须使用 union 语句,方式与定义结构类似。union 语句定义了一个新的数据类型,带有多个成员。union 语句的格式如下:union [union tag...

2019-01-06 15:52:30 243

转载 结构体和位域

C 结构体C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:Title Author Subject Book ID定义结构为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的...

2019-01-06 15:38:48 264

转载 函数指针与回调函数

函数指针函数指针是指向函数的指针变量。通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。函数指针可以像一般函数一样,用于调用函数、传递参数。函数指针变量的声明:typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数、返回值的函数指针类型实例以下实例声明了函数指针变量 p,指向函数 max:实例#...

2019-01-06 14:36:57 406 1

转载 C语言之指针

什么是指针?指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。指针变量声明的一般形式为:type *var-name;如:int *ip; /* 一个整型的指针 */double *dp; /* 一个 double 型的指针 */float *fp; /* 一个浮点型的指针 */...

2019-01-06 14:36:17 213

转载 C语言枚举的好处

枚举的好处:枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。枚举语法定义格式为:enum 枚举名 {枚举元素1,枚举元素2,……};接下来我们举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名:#define MON 1#define TUE 2#define WED 3#define THU 4...

2019-01-06 14:35:40 2870

原创 NRF51822的dfu工程编译问题

使用的版本:nRF5_SDK_12.3.0_666331ad编译环境:KEIL5工程路径:nRF5_SDK_12.3.0_666331ad\nRF5_SDK_12.3.0_d7731ad\examples\dfu\bootloader_secure\pca10028\arm5_no_packs\secure_dfu_secure_dfu_ble_s130_pca10028.uvproj...

2018-08-22 16:11:06 463

原创 stm32f429IGt6+7寸RGB屏+SRAM,使用标准库(不要HAL库)在ucosiii上如何移植emwin?

stm32f429IGt6+7寸RGB屏+SRAM,使用标准库(不要HAL库)在ucosiii上如何移植emwin?

2018-03-13 20:21:37 1594

原创 使用高级定时器,定时器1遇到的问题

初始化定时器1,开启定时器1中断,定时1S切换LED的状态。但是写好之后,测试发现灯的状态在44s才切换一次,一直找不到原因。最后发现了一点是高级定时器和普通定时器的区别:TIM_RepetitionCounte是用来配置重复计数,就是重复溢出多少次才给你来一个溢出中断,只有高级定时器需要配置。下面是定时器1的程序:#include "Timer1.h"#include

2017-08-30 18:17:51 1958

原创 stm32开机时,在eeprom读取存储的内容,发送给DGUS屏进行显示数据,但是第一个数据显示是0

stm32开机时,在eeprom读取存储的内容,然后用串口发送给DGUS屏的变量地址进行显示数据,但是第一个数据显示是0,而且之前发送接收数据时串口通信都不存在问题。通过测试eeprom读数据是成功的,但是为什么DGUS屏显示的第一个数据会失败呢?第一点,有可能是变量地址写错了,第二点,有可能是串口传输的问题,第三点,有可能是dgus屏接收显示数据太慢。经过咨询DGUS屏的客服,客

2017-08-16 21:22:21 1820

原创 dgus屏串口通信时,发现数据有时候stm32能接收到,有时候接收不到,一直想不到是什么原因

在dgus屏上输入数据,发送给STM32,然后stm32接收到数据之后,显示到电脑上,但是,不看不知道,一看吓一跳,竟然会经常数据丢失!!!!找了一个下午也没找到什么原因,一直认为是串口中断函数出错了,可是看了n遍,也没觉得那个函数有问题啊。晚上睡觉觉都在想到底是怎么回事........,今早上一来,把一些程序先注释掉之后,结果发现,没问题了,突然脑子一转,肯定是定时中断搞得鬼,一查发现,开了两个

2017-08-16 21:17:25 3463 3

原创 STM32的接收中断和发送中断同时使能会导致程序死在初始化串口那里。

//主函数 串口与PC通信 收到什么就发什么extern char Uart2_Buffer[30];extern char Uart2_Rx; int main(void) { u16 times=0; u8 Uart2_Tx = 0; delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2 uart_init(9600); //串口初始化为9

2017-08-11 00:30:35 4316 3

转载 今天开始学PID电机控制,这个作者写得很不错,和大家分享一下~~~ PID控制算法通俗理解 作者:whut_wj 来源:http://blog.eccn.com/space.php?uid=35

今天开始学PID电机控制,这个作者写得很不错,和大家分享一下~~~PID控制算法通俗理解作者:whut_wj来源:http://blog.eccn.com/space.php?uid=353091&do=blog&id=3964本文以通俗的理解,以小车纵向控制举例说明PID的一些理解。(一)首先,为什么要做PID?由于外界原因,小车的实际速度

2017-06-03 11:39:57 1595

原创 c语言中的绝对值

加入嵌入式这个行业已经半年了,以前一直以为c语言中没有绝对值这个东西的,今天看了一份代码才发现,原来是自己孤陋寡闻了........头文件:math.h函数名:abs();例如:abs(-1);其返回结果是1。具体看下图。

2017-06-03 09:57:04 12327

TM1650_datasheet.pdf

特性描述 TM1650 是一种带键盘扫描接口的 LED(发光二极管显示器)驱动控制专用电路。内部集成有 MCU 输入输出控制数字接口、数据锁存器、LED 驱动、键盘扫描、辉度调节等电路。TM1650 性能稳定、质 量可靠、抗干扰能力强,可适用于 24 小时长期连续工作的应用场合。 功能特点  两种显示模式:8段×4位和7段×4位  段驱动电流大于25mA,位驱动电流大于150mA  提供8级亮度控制  键盘扫描:7×4bit内部集成三极管驱动  高速两线式串行接口  内置时钟振荡电路  内置上电复位电路  支持2.8V-5.5V电源电压  提供DIP16及SOP16封装 适用领域:  家用电器产品如机顶盒、空调、DVD/VCD等显示的驱动。

2020-01-08

LED_Demo(Keil).rar

这是博客里写的KEIL下新建stm32工程的demo程序,有需要的可以自己下载或者联系我要也行。

2019-11-05

Keil如何新建STM32工程.docx

Keil下如何新建STM32工程,分六步走。 第一步 新建文件夹 第二步 拷贝必要文件进来 拷贝完成。 第三步 新建工程 打开软件 新建工程:Project New uVision project 然后弹出路径和工程名设置,选择刚才新建的工程路径,并命名,然后保存。 接着选择自己使用的芯片型号,点击

2019-11-05

KEIL和IAR工程代码.rar

这里的文件是我打包上来的代码,keil环境+IAR环境下的STM32工程都有。

2019-11-04

KEIL+IAR工程代码.rar

这里的文件是我打包上来的代码,keil环境+IAR环境下的STM32工程都有。

2019-11-04

STM32工程在keil下怎么移植到IAR环境(stm32f103c8).docx

从STM32的keil开发环境移植到IAR开发环境,分为六步走。 首先安装IAR编译环境,这个自行安装。 第一步 新建文件夹 新建一个文件夹命名“LED_CTRL”,在这个文件夹下再建立三个文件夹, CMSISI:放系统启动相关文件 ,FWLIB:放库文件 USER.:放用户自己写的文件 如下图: 第二步 拷贝文件 在keil下其实也有相对应的文件,我么们考过来就可以了。 下图是keil工程下的文件: 下面我们开始拷贝: 1. 拷贝CMSIS文件 2. 拷贝FWLIB文件 3. 拷贝USER文件 4. 拷贝剩余的其他用户自己写的程序(其实这些文件放哪都可以,根据自己的习惯吧) 拷贝完成如下图: 第三步 新建工程 打开软件 新建工程 点击OK 命名led_temp保存到LED_CTRL下 然后就会得到下面的界面。 第四步 添加分组及文件 开始往工程中添加文件 1. 新建分组:add group 好了,分组完成。 2.添加文件 a.往CMSIS添加文件:system_stm32f10x.c、startup_stm32f10x_md.s CMSIS->add->add files 路径如下: b.往FWLIB添加文件:"stm32f10x_gpio.c" "stm32f10x_rcc.c" "stm32f10x_spi.c" "stm32f10x_usart.c",(这里是因为工程中使用到了一部分的外围,所以需要自己根据工程需求添加) c.往USER中添加: "stm32f10x_it.c" "main.c",另外还有其他的用户自己写的文件led.c、nrf24l01.c、uart.c 。 到此,文件添加完成。 第五步 配置工程 同样选中“led_temp”然后右键,选择Options.就会出现配置界面,如下图 。 a. 选择工程使用的芯片型号,stm32f103c8t6,这里自己根据自己设置哦。 b.Library Configuration的Library要设置为Full,这样才能使用printf(); b. 进入C/C++Compiler,添加文件路径和所需的宏定义。 到此路径添加完成,下面添加宏定义。 不记得的,可以打开芯片的头文件查找即可。 到此,宏定义添加完成。 c. 进入Linker配置链接文件,点击进入,在IAR环境中已经存在,你选择和自己芯片匹配的就好了。 d. 进入Debugger配置,选择自己程序的下载方式。 选择下载到flash 到此,工程配置完成。 第六步 编译工程 同样选中”led_temp”右键-》Rebuild all 弹出文件名设置 同样设置为“led_temp”点击保存。 第六步 解决编译错误问题 弹出好多的错误: 解决办法: 1.core_cm3.h重命名为core_cm3.h.old 再次编译: 出现错误: 解决办法:继续进入工程配置,General Options->Library Configuration:Library 选FULL,右下角选择Use CMSIS 我们会看到,错误已经没有了,但是有很多的警告,如下图 解决办法:startup_stm32f10x_md.s文件中的”SECTION .text:CODE:REORDER”都要改为“SECTION .text:CODE: NOROOT:REORDER” 方法很简单,用Notepad++打开然进行替换即可。 首先,要去掉文件的只读模式,然后在修改。 好了,全部修改完成。保存,并恢复为只读模式,然后再编译工程。 工程编译结果无错误,无警告,移植到此结束,完美。 。

2019-11-04

红外感温数据手册

General Description This document describes the user guide of TNm Series (TN0; TN9). Edition July 2006 Copyright: All right reserved. Reproduction in any manner, in whole or in part is straightly prohibited without written permission of ZyTem.com. This information contained in this document is subject to change without notice. Limited Warranty: This data sheet contains information specific to products manufactured at the time of its publication, Contents herein do not constitute a warranty. Trademark Acknowledgements: All trademarks are the property of their respective owners.

2017-12-13

STM32F429IGT6驱动RGB屏测试程序

基于STM32F429IGT6驱动RGB屏的测试程序,可以更改为横屏和竖屏,可以识别多种RGB屏,实现不断扫屏测试。

2017-12-13

DGUS应用指南

DGUS应用指南v5.7

2017-08-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除