TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;表面意思是输出控制极性为高,但是意思是定时器输入0,不反相,输出0;输出控制极性为低,定时器输入0,反相输出1;CC1E控制开关。#define TIM_OCPolarit
使用MDK 4.74向STM32下载时出现各种错误,而且时隐时现,Internal command error.Error:Flash download failed. Target DLL has been cancelled.最初的解决方法就是让STM32不采用外部供电而是让下载器直接供电,同时
时钟作为芯片的心脏,芯片依靠时钟维持运动的状态。stm32的延时函数,依赖滴答定时器,独立的提供延时。滴答定时器:时钟是由HCLK经过8分频来作为小心脏的。假设HCLK时钟为72MHz,8分频后,滴答定时器频率为9MHz,即
1.关于ADC输入通道与GPIO口的输入关系需要查看STM32芯片手册(p31)而非数据手册。2.外部触发源指的是触发ADC采样的触发信号,这与1的GPIO口输入是两个不同概念。而JEXTBEL[2:0]或者EXTBEL[2:0]决定具体是哪个触发源
最近看了下STM32 CAN 通讯 其中标示符过滤器设置大有讲究。特别是你要使用ST库函数时,当过滤器工作在屏蔽模式下,并且你把屏蔽位设了1也就是标示符对应位必须全部匹配才能通过,这是由其要小心。举个例子吧,过滤器
因为要用,学习了一下SPI操作SD卡,同时移植了一个免费开源的FAT文件系统:FatFS。感觉挺好,在单片机上实现了读写文件的操作,接下来就可以解释我的G代码咯! 我的SD卡底层操作参考了网上几种常见的代码,但又对
一、用STM32控制TFTLCD显示的编程方法,在编程驱动TFTLCD液晶显示器之前,我们先熟悉以下概念:1、色彩深度,这是一个与TFTLCD显存对应的概念;所谓色彩深度就是每个像素点需要多少位的RGB 数据表示该点的颜色信息。
先说明一下,开发平台win7,工具RVMDK(keil),硬件stm32f103ve,打印到超级终端前两天开始关注一下一直被搁在一边的printf。。。其实应该有一个月前就有看了一下,调用C语言官方库,实现可变参数printf向串口打印字符
采用adc1的通道10,将采集到的电压值用485发送给PC显示,先上原理图,源代码见附件,这里想说的是几个要注意的问题:1,ad输入的电压经过了R42和R44进行分压,所以pc显示的电压值将会减半,2、采用这个函数进行发送数
1.stm32有AHB,APB2,APB1总线。 其中APB2外设地址空间是从0x40010000至0x40013FFF地址。第一个地址称为基地址。2.参考手册中端口配置寄存器有地址偏移0x04,所以GPIOC_CRH地址为GPIOC_BASE+0x04 GPIO_TypeDef结构体
#include"usart1.h"//#include //加载MDK 自带的 C 函数D:KeilC51INC//串口1 配置void USART1_Config(void){GPIO_InitTypeDef GPIO_InitStructure; //定义结构体// 结构体内容在stm32f10x_gpio.h101行//见库函数 P12
DAC模块的通道1来输出模拟电压,其详细设置步骤如下:1)开启PA口时钟,设置PA4为模拟输入。STM32F103ZET6的DAC通道1是接在PA4上的,所以,我们先要使能PORTA的时钟,然后设置PA4为模拟输入(虽然是输入,但是STM32内
相关经验及心得如下: 摘要:1.在配置USART的TX完成中断后,在没有发数的情况下自动进入TX完成中断函数。2 .在TX配置完成后,相应的TC标志位会自动置1,随后就进入了TX完成中断。3.相关配置程序编写无误,并已经开启
1、安装MDK环境,下载程序的第三方软件mcuisp。 BOOT0开关拨到VCC、自动搜索串口、开始编程按钮,如果程序下载成功后则会打印出下面红色框中的信息、程序下载成功之后,需要将BOOT0开关拨到GND,然后按下我们的复位
关于正交解码,我先解释何为正交解码,,,,其实名字挺高大上的,,,,还是先说编码器吧看一下我用过的一种编码器编码器的线数 ,是说编码器转一圈输出多少个脉冲,,,如果一个编码器是500线,,,说明这个编码器转一圈对应的信号
1 bxCAN工作模式 bxCAN有3个主要的工作模式:初始化模式、正常模式和睡眠模式。 在硬件复位后,bxCAN工作在睡眠模式以节省电能,同时CANTX引脚的内部上拉电阻被激活。软件通过对CAN_MCR寄存器的INRQ或SLEEP位置’1’
搞了一天才发现 在MDK设置选项中有个"linker"选项卡 ,需要在Project->Options->Linker中将UseMemoryLayoutfromTargetDialog前面的复选框勾上 一切就正常了UseMemoryLayoutfromTargetDialog这个选项有个“分散加载文
STM32上有很多I/O口,也有很多的内置外设,像I2C,ADC,ISP,USART等,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。但是STM32还有一特别之处:很多复用内置的外设的I/O引脚
#include "stm32f10x_lib.h"#include"stdio.h"#define USART1_DR_Base0x40013804#define SENDBUFF_SIZE10240vu8 SendBuff[SENDBUFF_SIZE];vu8 RecvBuff[10];vu8 recv_ptr;void RCC_Configuration(void);void GPIO_Co
在"嵌入式学习006_Systick使用(一)"中,详细介绍了Systick中寄存器的使用方法,用到了很多函数,实际上到了3.5版本的标准固件库中,移除了相关驱动函数,用户必须调用CMSIS.h中定义的函数,其中CMSIS只提供了一个S