- 博客(31)
- 资源 (3)
- 收藏
- 关注
原创 cortex_m3_stm32嵌入式学习笔记(二十一):SPI实验(通信总线)
SPI 是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。是 Motorola首先在其 MC68HCXX 系列处理器上定义的。 SPI 接口主要应用在 EEPROM, FLASH,实时时钟, AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同
2015-01-26 20:37:18 5536
原创 cortex_m3_stm32嵌入式学习笔记(二十):IIC实验(I2C串行总线)
IIC(Inter- Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线SDA 和时钟SCL构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送, 高速 IIC 总线一般可达 400kbps 以上。ALIENTEK MiniSTM32 开发板板载的 EE
2015-01-26 15:25:58 6745
原创 cortex_m3_stm32嵌入式学习笔记(十九):DMA实验(高速传输)
DMA,全称为: Direct Memory Access,即直接存储器访问。 DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路, 能使 CPU 的效率大为提高。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。
2015-01-25 21:19:19 5126
原创 cortex_m3_stm32嵌入式学习笔记(十八):DAC实验(数模转换)
STM32 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的 DAC。 DAC可以配置为 8 位或 12 位模式,也可以与 DMA 控制器配合使用。 DAC 工作在 12 位模式时,数据可以设置成左对齐或右对齐。 DAC 模块有 2 个输出通道,每个通道都有单独的转换器。在双 DAC 模式下, 2 个通道可以独立地进行转换,也可以同时进行转换并同步地更新 2 个通道的输
2015-01-25 16:55:29 10208 3
原创 cortex_m3_stm32嵌入式学习笔记(十七):内部温度传感器(ADC采集)
STM32 有一个内部的温度传感器,可以用来测量 CPU 及周围的温度(TA)。该温度传感器在内部和 ADCx_IN16 输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感器模拟输入推荐采样时间是 17.1μ s。 STM32 的内部温度传感器支持的温度范围为: -40~125度,精度为± 1.5℃左右(实际效果不咋地)。效果确实不咋地。。大冬天的测出来是20多度。。第一个
2015-01-25 13:50:25 13685 1
原创 cortex_m3_stm32嵌入式学习笔记(十六):ADC实验(模数转换)
之前没学过数模电,对A/D D/A转换一窍不通,也百度了很多资料大都深奥难懂。。算了,先自以为是一下吧,等以后学了专业课再说。。(寒假回家一定要学。。恩 就这么决定了)看了那么多资料,感觉 A/D转换就是将电压(或者是其他模拟量:如 压力,图像等)转换为数字,D/A就是反过来,而ADC就是A/D转换器,他可以采集外部电压转化为数字。本节实验通过ADC采集外部电压转换为数字显示在屏幕上。
2015-01-24 21:22:26 9248
原创 cortex_m3_stm32嵌入式学习笔记(十五):待机唤醒实验(WK_UP外部中断)
很多单片机都有低功耗模式, STM32 也不例外。在系统或电源复位以后,微控制器处于运行状态。运行状态下的 HCLK 为 CPU 提供时钟,内核执行程序代码。当 CPU 不需继续运行时,可以利用多个低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗,最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。STM32 的低功耗模式有 3 种:1)睡眠模式
2015-01-24 16:46:12 10383 2
原创 cortex_m3_stm32嵌入式学习笔记(十四):RTC实时时钟(秒中断)
STM32 的实时时钟( RTC)是一个独立的定时器。 STM32 的 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。由于时钟只需要配置一次,下次开机不需要重新配置(开发板有电池的情况下),所以需要用到备份区域(BKP)来标记是否配置过时钟简单介绍BKP:备份寄存器是 42 个 16 位的寄存器( Mini
2015-01-24 14:31:32 5954 1
原创 cortex_m3_stm32嵌入式学习笔记(十三):USMART调试组件移植(调试神器)
当我们学了TFTLCD显示之后遇到一个很明显的问题是:参数估计不准确,比如说我们想在屏幕的中央部分画一个圆,但往往坐标把握不准导致一次一次的往MCU里面烧程序,一次一次调,但没烧一次烧的可以MCU的命啊。。显然这样是很浪费的,于是牛逼的人就想了办法了(orz),我是用的原子写的USMART组件,该组件移植很简单,只需要将USMART文件夹拉到工程里面,然后把文件添加到工程里去,里面有一个文件 us
2015-01-23 14:18:02 3590
原创 cortex_m3_stm32嵌入式学习笔记(十二):TFTLCD显示(深入库函数)
写点比较常用的显示函数。首先显示一张静止的画面,上面显示字符串(目前还不会显示汉字)只需要自己编写主函数,将别人例程里的lcd.c,lcd.h等相关头文件加到工程即可#include "led.h"#include "delay.h"#include "sys.h"#include "usart.h"#include "lcd.h"void init(){ delay_i
2015-01-23 10:29:12 11411
原创 cortex_m3_stm32嵌入式学习笔记(十一):TFTLCD显示(初涉显示器)
本章我们将介绍 ALIENTEK 2.8 寸 TFT LCD 模块,该模块采用 TFTLCD 面板,可以显示 16 位色的真彩图片。TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为: Thin Film Transistor-Liquid CrystalDisplay。 TFT-LCD 与无源 TN-LCD、 STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有
2015-01-22 21:05:31 8419
原创 cortex_m3_stm32嵌入式学习笔记(十):输入捕捉实验(定时器的输入捕捉)
输入捕获模式可以用来测量脉冲宽度或者测量频率。 STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。 STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx 上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值( TIMx_CNT)存放到对应的通道的捕获/比较寄存器( TIMx_CCRx)里面,完成一次捕获。同时还可以配置捕获时是否
2015-01-22 18:45:30 10931
原创 cortex_m3_stm32嵌入式学习笔记(九):PWM 输出实验(定时器的PWM输出)
PWM 简介脉冲宽度调制(PWM),是英文“Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。
2015-01-21 19:58:01 2303
原创 cortex_m3_stm32嵌入式学习笔记(八):定时器中断实验(定时器的更新中断)
STM32 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和TIME7 等基本定时器。本节学习通用定时器 TIM3STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。STM3 的通用 TIMx (TIM2、 TIM3、 TIM4 和 TIM5)
2015-01-21 15:39:59 2477
原创 cortex_m3_stm32嵌入式学习笔记(七):独立看门狗&窗口看门狗
总结一下这两种狗吧。。。1)独立看门狗没有中断,窗口看门狗有中断2)独立看门狗有硬件软件之分,窗口看门狗只能软件控制3)独立看门狗只有下限,窗口看门狗又下限和上限4)独立看门狗是12位递减的。窗口看门狗是7位递减的5)独立看门狗是用的内部的大约40KHZ RC振荡器(不受系统时钟限制,即使系统时钟坏了也能工作),窗口看门狗是用的系统时钟APB1ENR(系统时钟要是挂了就完了
2015-01-21 11:20:39 1717
原创 cortex_m3_stm32嵌入式学习笔记(六):窗口看门狗实验(WWDG)
窗口看门狗( WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。简单来说,和IWDG的区别就是IWDG要靠手动去喂狗,而WWDG有内置中断,所以可以利用设置中断服务函数去喂狗首先还是设置WWDG (记得往工程里面添加头文件)大致设置步骤如下:1)使能WWDG 时钟(系统内部时钟)2)设置窗口值和分频数3)开启
2015-01-21 11:03:51 2534
转载 STM32中中断优先级理解
很多人在配置STM32中断时对固件库中的这个函数NVIC_PriorityGroupConfig()——配置优先级分组方式,会很不理解,尤其是看中文翻译版的,因为中文翻译版里把这里翻译成“先占优先级和从优先级”这样翻译其实是不对的,很容易让人误解。为了便于大家理解,有必要先解释两个概念:抢占式优先级/响应优先级:STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先
2015-01-21 09:48:16 2040
原创 cortex_m3_stm32嵌入式学习笔记(五):独立看门狗实验(IWDG)
单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号) 。感觉是是自动复位功能,就是在一定时间内你应该去喂它而如果程序中途进入了死循环(就是喂不了了)这个MCU就挂了。。但如果没开IWDG ,你不知道它挂
2015-01-20 21:09:12 3441
原创 MATLAB学习笔记(三):符号计算(积分+导数)
2.3 .1符号微积分 求极限 limit(f,x,a) 求f(x)中x趋近于a的极限值例如:>> clear>> syms k x>> lim_t=limit((1-1/x)^(k*x),x,inf) lim_t = 1/exp(k)求导数diff(f,x,n) 求f(x)的n阶导数>> clear>> syms x>> dfdx=diff(x^3,
2015-01-20 19:17:10 7237
原创 cortex_m3_stm32嵌入式学习笔记(四):外部中断实验
本章学习将STM32的IO口作为外部中断输入(实现和按键扫描一样的功能)STM32 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 的强大之处。 STM32F103 的中断控制器支持 19个外部中断/事件请求。每个中断设有状位,每个中断/事件都有独立的触发和屏蔽设置。 STM32F103 的19 个外部中断为:线 0~15:对应外部 IO 口的输入中断。(本章只学习
2015-01-20 15:46:15 5196
原创 cortex_m3_stm32嵌入式学习笔记(三):串口实验(串口通信)
串口,可以理解为是用来和上位机(比如电脑)对话的,本节实验实现的是stm32接收上位机发送过来的信息,在原原本本的返回过去stm32有5路串口,本节学习的是其中之一的USB串口(USART1)和学习IO口一样,首先要配置串口,由于原子已经配好了写在sys文件里,本渣就本着不造轮子的理念(其实是太难不懂orz),先跳过去了。。所以本工程只需要一个main函数即可#include
2015-01-20 12:12:18 6209 1
原创 cortex_m3_stm32嵌入式学习笔记(二):独立按键实验(IO输入)
上一个也就是第一个实验做的是关于LED的,属于IO口的输出使用,这一节实验是独立按键的使用,即IO 口的输入使用ministm32 开发板上一共有3个独立按键,分别为 KEY0 KEY1 WK_UP 原理图如下: 注意: KEY0 KEY1 是低电平有效(即它们为低电平时代表按键按下)而 WK_UP 是高电平有效,为什么呢。。很明显,这个问题要分析上面的原理图才能
2015-01-19 17:05:29 3160
原创 cortex_m3_stm32嵌入式学习笔记(一):建立工程模板+跑马灯实验(IO输出)
搞了一晚上+一上午 终于算是入门了 刚刚把LED点亮。。真是费劲啊吐槽MDK对库函数的封装性。。太扯了 。。所有的固件库函数都要自己手动添加到工程里面去。。还好建好一个模板之后就不用动了(以后直接复制就行了)首先对于工程模板里的东西,我们要搞明白哪些是需要我们自己去编写的,而哪些是不用动的, 其实初学者应该只需要编写两个文件夹里面的程序:1 USER 文件夹下的主函数2. HA
2015-01-19 13:16:27 3271
原创 SDUT 3097-小鑫爱数学(快速幂)
题目链接:点击打开链接题意:求n^m %1000000007 n(1 ,m(1 有一点坑。。n太大有可能溢出, pow_mod(n,m,mod)=pow(n%mod,m,mod) 推导一下吧。。。 n^m %mod=(n%mod+k*mod)^m %mod=(n%mod)^m +..一堆mod的倍数 =(n%mod)^m %mod老久没敲代码了。。
2015-01-17 17:01:23 938
原创 MATLAB学习笔记(二):符号计算(创建符号对象)
2.1 符号对象和符号表达式 创建一个基本符号对象 syms a 创建一个基本的符号数字sym('num')sc=sym('num')符号类数字与数值类数字的差别>> clear>> a=5+pi,b=sym('5+pi'),ca=class(a),cb=class(b),vpa(a-b)a = 8.1416 b = pi + 5 ca =
2015-01-17 13:42:57 2785
原创 MATLAB学习笔记(一):基本操作
初学MATLAB ,首先你得有个开发环境。。不多说,下了个2010a绿色版,4G多。1.指令窗每行会自动生成 “>>” 为输入提示符,输入一条语句后按回车显示结果,如果再一条语句后加分号会屏蔽结果。变量无需定义直接使用即可,有几种常量需要注意: ans ,inf ,eps ,pi ,i或j (虚数)前几种相信大家都知道,什么无穷大啦。。指令换行:比如一行放不下要输到下一行可用 空格
2015-01-16 20:34:53 1084
原创 51单片机第六弹---LCD液晶显示模块
看了一下居然没有液晶显示屏。。算了 有钱了再买 先扔个程序 /******************************************************************************** 实 验 名 : LCD1602实验* 使用的IO : LCD使用P0 * 实验效果 : 在液晶屏上显示
2015-01-16 19:42:52 1457
原创 51单片机第五弹---外部中断
写了半天掉线了。。。不写了上定义。。。什么叫中断中断是指CPU在执行当前程序的过程中,由于某种随机出现的外设请求或CPU内部的异常事件,使CPU暂停正在执行的程序而转去 执行相应的服务处理程序;当服务处理程序运行完毕后,CPU再返回到暂停处继续执行原来的程序。51单片机的中断80c51提供有5个中断源,分别为:2个外部中断,2个定时/计数器中断,1个串口发送/接
2015-01-16 10:40:00 2311 2
原创 51单片机第四弹---矩阵键盘
原理图: 原理: 和独立键盘相似/******************************************************************************** 实 验 名 : 矩阵键盘实验* 使用的IO : 数码管使用P0 矩阵键盘使用P3* 实验效果
2015-01-15 21:49:24 1200
原创 51瞎搞系列---独立键盘+数码管
瞎写着玩玩。。。/******************************************************************************** 实 验 名 : 数码管+独立键盘实验* 使用的IO : 数码管使用P0 独立键盘开关K1使用P3.1* 实验效果 : 按开关K1使数码管从左侧由数字1亮至右侧8* 注 意
2015-01-15 21:02:31 1020
原创 51单片机第三弹---数码管显示
先把定义拉过来:LED数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用的段数一般为7段,有的另加一个小数点 。LED数码管根据LED的接法不同,分为共阴和共阳两类 。 贴原理图 其实就两点 :由于板子上有8个数码管,而每个数码管有8
2015-01-15 19:58:59 2174
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人