摘要:
ADC的模拟看门狗用于检查电压是否越界。他又上下两个边界,可分别在寄存器ADC_HTR和ADC_LTR中设置。库函数是使用ADC_AnalogWatchdogThresholdsConfig设置的,无论是常规通道还是注入通道,都非常简单。 当模拟看门狗检测到电压高于上限或者低于下限时将会产生看门狗中断。捕获这个中断,可以做出一些应对措施。 数据手册上特别之处的一个东西:模拟看门狗说使用的比较数据与... 阅读全文
摘要:
虽然一直ST用库做实验,但没有进行认真的总结。总是先添加价格文件,然后编译。能通过就完成,通不过就再添加别的文件。今天就一步步来梳理下建立用库工程的步骤。争取做到傻瓜式,让即使完全没用过MDK的人都能使用。 第一步:到ST下载标准外设库和演示工程,也可以问卖你开发板的人要。我的库文件是淘宝商给的。可以通过我的百度网盘下载,地址: 【http://pan.baidu.com/share/li... 阅读全文
摘要:
GPIO的一些特性,翻译自ST的参考手册 1、16组IO可用 2、推挽/开漏+上拉/下拉 3、可从ODR输出数据,也可从外设输出数据 4、每个IO速度可独立设置 5、浮空输入,上下拉输入,模拟输入 6、输入数据到IDR或者外设 7、ODR中数据可通过GPIOx_BSRR单独设置某一位。 8、IO锁定装置,可冻结IO配置。(知道下次reset) 9、模拟公呢 10、复用输入输出选择及存取 11、IO... 阅读全文
摘要:
测量芯片周围的环境温度用。这个温度传感器输出的电压与温度成一定比例,获取温度基本就是用ADC测量这个电压。 在芯片内部,温度传感器与ADC1的CH16相连。当不使用改传感器时,可将其设置为PowerDown模式以省电。 主要特性: 测温范围:-45~+125摄氏度 测温精度:±1.5摄氏度 使用步骤: 1、选择ADC1 CH16作为ADC的输入 2、设置采样时间 3、设置ADC1寄存器ADC_CC... 阅读全文
摘要:
书接上文,开始折腾ADC的DMA传输。因为大家都在说DMA,就连ST的例子里边也是使用DMA的。 ADC采集到的数据都存储在一个固定的寄存器中。当常规采样方式采样多个通道时候,使用DMA可以较好地避免将采集到的数据丢失。当ADC的DMA功能被使能的时候,每个通道转换完毕时都会发出一个DMA请求。DMA方式也不能完全避免数据丢失问题,要实现数据不丢失需要在DMA的同时开启OVERRUN模式,当数... 阅读全文
摘要:
折腾了两天ADC多通道采样,采样的结果都很乱,完全不是预期值。在amobbs求助也没有找到结果。于是决定从简单开始,一步步折腾着破ADC。 【ADC试验1实验说明】 1、这个实验仅仅是初始化一个ADC,对其输入进行采样。 2、使用STM32F4的ADC1进行采样,采样值不输出之在编译器里边观察。 3、使用ST外设库进行实验 4、本实验只为采集到数据,采样周期、采样间隔设置为最大。 【ADC... 阅读全文
摘要:
也是一个半生不熟的东西,进行了简单的中断处理。软件环境:MDK470a硬件环境:STM32F4-Discovery。按键B1连接在F4芯片的PA0引脚。当按键按下时,引脚电平被拉底。功能描述:按压按键B1时,触发外部中断。进入中断处理函数后,通过串口发送消息。实现步骤:1、打开PA时钟,设置PA0引脚为输入。 void EXTI_GPIO_Congig(void){ GPIO_InitTypeDe... 阅读全文
摘要:
半生:是因为发出了数据不熟:是因为不太理解。只是用了简单的几个东西配置DMA操作步骤如下:1、打开时钟。RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2,ENABLE);2、配置DMA数据结构有几点明确的:通过USART1发送数据,ST的F4参考手册里边可以找打USART1说对应的通道:DMA2-Channel4-Stream7。 数据传递方向是Memory2P... 阅读全文
摘要:
首先,要包含头文件"stdio.h"第二:printf()函数使用了int fputc(int ch,FILE *f)完成其功能。要使用printf,就需要重写这个函数。第三,在工程选项的Target里边勾选USE MicroLIB项。fputc示例如下:int fputc(int ch,FILE *f){ /* Place your implementation of fputc here */... 阅读全文
摘要:
STM32F407xx内嵌四个通用同步/异步接收器(USART1,USART2,USART3 和USART6)和两个通用异步收发器(UART4和UART5)。这6个接口提供异步通信的IrDASIR ENDEC支持,多机通信模式,单线半双工通信模式LIN主/从功能。 USART1和USART6接口能够速度高达10.5 Mbit / s的通信其他可用的接口通信高达5.25bit/s... 阅读全文
摘要:
利用第三相的感生电动势去测量转子的位置,然后换向什么的都可以实现了 阅读全文
摘要:
一 CCS链接器的作用和过程汇编器已经将源文件(.asm)顺序地按段的定义(SPC)转换 成机器语言目标文件(.obj文件),即COFF文件, 连接器的主要任务是根据连接命令或连接命令文件(.cmd)将一个或多个 COFF目标文件连接起来,生成存储器映象文件(.map)和可执行的输出 文件(.out文件),即COFF目标模块。 链接过程为:(1)将各个目标文件合并起来,将各个文件的各个段配置到目标系统的存储器中(2)对各个符号和段进行重定位,并给它们指定一个最终的地址(3)解决输入文件之间未定义的外部引用 。二 链接命令文件的写法coff(公共目标文件格式,Common object file 阅读全文
摘要:
CMD文件有两种产生方式:一种是手写,一种是由DSP/BIOS配置工具产生。CMD的作用很多,但它的最基本的功能就是实现对存储空间的说明和配置。如下关于CMD配置的例程主要完成的功能有:1. 说明系统有片内静态RAM(ISRAM,256KB)和片外动态RAM(SDRAM,32MB)组成,其起始地址和长度分别为...2. 构建一个C工程需要多个段,SECTIONS中说明如何分配这些段。都放在ISRAM里当然快,但是工程大了肯定放不下,如何权衡自己考虑了。3. 指明系统的堆和栈的大小。-heap0x800000-stack 0x8000MEMORY { ISRAM : origin = 0x0.. 阅读全文
摘要:
非常有幸才家里这次EEPW组织的ARM DIY活动。应王老板的要求,俺写篇BLOG总结下这次参加活动的一些体会。 先介绍下我自己吧 我2005年毕业,学的是电子专业。那会的学校跟现在的没法比。很难看见一个板子,电脑都不多。而且由于学校的特殊性外加自己本身的问题,大学四年没摸过单片机。开设的课程全部是纸上谈兵空对空,没有实打实地做过东西。据说是因为我们不需要。。 之后毕业了,工作了。在一个边疆的小县... 阅读全文
摘要:
为了能用示波器看到系统时钟,决定将系统时钟输出到MCO引脚上去。弄了一晚上,看见波形了。首先建立空的工程,将下面三行代码注释掉: ;IMPORT SystemInit ;删除SystemInit自己写RCC初始化函数 ;LDR R0, =SystemInit ;BLX R0 下面是设置函数,使用HSI作为系统时钟,不实用PLL,直接将HSI输出到MCO引脚:void My_RccInitMCOHSI(void){ uint8_t temp; My_Rcc_DeInit(); RCC->CR |= 1<<0; //复位HSION 开启内部时钟;其实内部时钟不用管的,开机自动使用 阅读全文
摘要:
串行外设接口(SPI)。初始化步骤:1、连接SPI外设时钟,通过RCC->APB2ENR设置。2、连接被复用的GPIO的外设时钟,也是通过RCC->APB2ENR设置为什么还要连接GPIO时钟,参见STM32参考手册8.1.4节。手册上这么说的:对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏)。3、设置被复用的GPIO为推挽输出,并设置时钟。不能设置为开漏输出。设置成开漏输出时,示波... 阅读全文
摘要:
一、前言 SD 卡有两个可选的通讯协议:SD 模式和 SPI模式 SD 模式是SD 卡标准的读写方式,但是在选用SD 模式时,往往需要选择带有SD 卡控制器接口的 MCU,或者必须加入额外的SD卡控制单元以支持SD 卡的读写 然而,大多数MCU都没有集成SD 卡控制器接口,若选用SD 模式通讯就无形中增加了产品的硬件成本。在SD卡数据读写时间要求不是很严格的情况下, 选用 SPI模式可以说是一... 阅读全文
摘要:
一、回顾2011 记得去年年底,我信心满怀地要学一年的.NET 4。两本厚厚的书放在桌子上,我觉得我能征服他们。 时间一天天地过去了,我的书翻了几页就放那不动了。出差半年,精简了N多东西,最后这两本书还是带上了! 半年里,这书没拿出来过。 刚开始是锻炼身体,每天下班就在公路上边跑5~6公里.坚持了三个多月,几乎每天跑跑,身上的肉少了十来斤,从160多见到150左右 后来听他下雨,没的跑了。下班在家... 阅读全文