STM32
zhuhuiyu_
一个在努力中的程序员!!!加油!!
展开
-
STM32学习部分4
1. STM32中有两个中断优先级:抢占式优先级(占先式优先级)和响应优先级(副优先级),也就是主优先级和副优先级。其中抢占式优先级决定是否有中断嵌套(高占先优先级的中断事件会打断当前的主程序或者是中断程序的运行,也就是抢断式优先响应)。http://www.docin.com/p-558193594.html2. 在占先式优先级相同的情况下,高副优先级的中断优先被响应。原创 2016-12-10 22:02:03 · 580 阅读 · 0 评论 -
STM32学习14
1. CAN总线:也是一种串行通信协议,为现在欧洲汽车网络的标准协议,可以实现在汽车的LAN中的高速、高质量的数据传输,已经经过ISO国际标准化的串行通信协议。它通过两根线上的电位差来判断电平,总线电平分为显性电平和隐性电平,二者必有其一。2. CAN总线的特点:可以根据优先级来决裁;不需要“地址”这个概念,加入模块方便;通信速度较快,也比较远,在现场控制中足够了;还有错误原创 2016-12-20 18:14:09 · 658 阅读 · 0 评论 -
STM32学习12
1. 因为IIC总线是一种非常常见而且普及的总线协议,用来对各种模块的寄存器读写从而进行配置,类似的还有SPI总线协议,虽然单片机里学过了,但是也差不多忘了,所以今天再温习一下。2. 今天测试的也是例程上的,使用IIC对24C02进行读写操作,通过LCD屏幕显示。3. IIC:有起始信号,停止信号,应答信号。4. 硬件上已经将PB6接到了IIC_原创 2016-12-18 19:36:13 · 306 阅读 · 0 评论 -
STM32学习13
1. 485协议:处于物理层,半双工,多点通信,它类似于RS232,但是它更加稳定可靠,传输距离比RS232要长,抗干扰性也不错,所以这个协议还是有必要做一些了解的。2. 战舰上使用的是SP3485芯片,该芯片的原理图清楚的说明,当RE信号为低的时候,为接收模式,当RE信号为高时,设为了发送模式。3. 好吧,其实和串口的模式非常相似,只是两者采用了不同的电压作原创 2016-12-19 18:14:52 · 238 阅读 · 0 评论 -
STM32学习18
1. 设置完成以后,基本就可以实现灰度图像的采集了,速度也挺快的。2. 从网上了解了OV7670的特点以后,才明白之前的YUYV输出顺序的真正意义,其实不论Y还是U还是V都是八位二进制表示,也就是一个字节。那么YUYV输出格式表明,我们在使用的时候,只要读取第一个字节就可以获取Y(亮度),这个亮度可以进一步的处理判断,就可以通过阀值获得二值图像,也就是黑白图像。3.原创 2016-12-24 23:09:35 · 273 阅读 · 0 评论 -
STM32学习17
1. "Y"表示明亮度(Luminance或Luma),也就是灰阶值;而"U"和"V" 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。2. 也就是说,我主要用到的就是Y分量。3. 几个重要的设置灰度图像输出的寄存器,需要进行了解。寄存器地址寄存器设置的值原创 2016-12-23 18:42:10 · 329 阅读 · 0 评论 -
STM32学习16
1. 首先,OV7670正好可以存储一帧的分辨率大小为320*240,即QVGA格式。2. PCLK为像素时钟,一般一个PCLK时钟输出一个像素,但要是一个像素为两个字节大小,那么就需要两个PCLK时钟才能输出一个完整的像素,例:RGB565。3. VSYNC为帧同步信号,一帧出现一次。4. HREF为行同步信号,这是根据分辨率中的多少行确定的,原创 2016-12-22 22:25:46 · 575 阅读 · 0 评论 -
STM32学习15
1. OV7670是CMOS VGA图像传感器,通过类IIC的SCCB总线控制,VGA可高达30帧/秒。2. VGA,即分辨率为640*480的输出模式。QVGA,即分辨率为320*240的输出模式,一般用这种,因为OV7670的FIFO也只够存储一帧的QVGA。3. 使用类似IIC的SCCB(串行摄像头控制总线)控制总线,主要使用这个总线协议来对7670状态原创 2016-12-21 19:42:51 · 401 阅读 · 0 评论 -
STM32学习11
1. 今天是平衡小车结束后,开始继续学习stm32的第一天,上次老师提出来要在mini2440上做摄像头循迹小车,又是小车!天呐~反正我已经快受不了了,而且arm的裸机开发和stm很相似,根本就没什么大的差别,而且arm是mini板,外设很少,学习模块的机会很少,所以我觉得,以后再stm32上做裸机开发,也可以尝试移植uC/OS系统,这样配套的学习,肯定比arm上裸机开发要好!2.原创 2016-12-17 20:01:50 · 397 阅读 · 0 评论 -
STM32学习10
1. 关于6050陀螺仪模块问题2. 今天开始着手平衡小车项目,蓝牙模块不用关心,只要知道可以连接,再判断串口发来的指令即可。3. 好像比较简单的是使用DMP,通过结合DMP,可以将我们的原始数据转换成四元素输出,再通过四元素算出欧拉角,从而得到yawroll 和 pitch。4. 因为做的是平衡小车,那么就不需要roll 和 yaw,直接通过p原创 2016-12-16 22:15:27 · 288 阅读 · 0 评论 -
STM32学习9
1. 在学习定时器PWM波之前,先学一下stlink如何调试程序的。2. stlink调试:1)首先关于引脚,PA13-15 以及 PB3 PB4都被默认为JTAG的引脚,所以工程中尽量不要使用这些引脚。2)在debug窗口查看变量的变化,可以选中程序中的变量,右击,然后add towatch1,就可以了。3. 注:仿真分软件仿真和硬件仿真,那么软件仿真时,会原创 2016-12-15 22:49:45 · 293 阅读 · 0 评论 -
STM32学习3
1. 今天准备先做按键消抖,但是碰到一个问题,并不是所有的引脚都能正常工作,不能使用的口有如下图。根据观察,这些引脚好像有什么特殊的用途,目测好像是JTAG调试使用的时候使用的引脚什么的,暂时不清楚。 2. 盲点:对于JTAG的使用3. GPIO初始化问题;在每次根据相应要求去做不同的引脚初始化时,有以下几步:(1)在GPIO头文件中定义好要使用的引脚原创 2016-12-09 17:14:26 · 336 阅读 · 0 评论 -
STM32学习2
1. 今天开始学习stm32的串口使用方法,我只想说,我就好像在开发安卓一样,一直在调用他们封装完的函数,比较傻呼呼的,但是转念一想,以后不可能允许你什么都从0开始的从头开始,我们讲究的是效益和效率,那么如何用好这些函数并且对他们的函数进行修改成为我学习stm32的关键。2. 注:使用串口时,普中开发板上两根下载线不能连着了,不然串口不能正常工作。盲点:NVIC内容关于原创 2016-12-08 19:53:04 · 340 阅读 · 0 评论 -
STM32学习7
1. 串口补充:补充是因为昨天晚上发现,串口发送数据的函数USART_SendData(USART1,num);不能使用了,我也不懂这是为什么,上次自学的时候是可以用的,网上百度以后,好像说是这个库函数有缺陷,会出现覆盖什么的问题。2. 解决串口发送数据被覆盖问题:如果在USART_SendData(USART1,num);下紧接着发送数据,有可能导致这个数据被覆盖,而不能原创 2016-12-13 23:18:01 · 273 阅读 · 0 评论 -
STM32学习6
1. 践发现,同一组的排扣可以设置多个引脚为中断触发引脚,之前的记忆是,每一组排口只能有一个引脚作为外部中断的触发引脚,看来是时间有点长或者理解错误吧。2. 中断:外部中断0,1,2,3,4它们有独立的外部中断服务函数,而外部中断5-9都公用一个中断服务函数,这一点需要注意,如果有多个中断输入端,但是需要做的动作是相同或者类似的,那么可以设置使用中断5-9,实现功能。3原创 2016-12-12 22:26:14 · 252 阅读 · 0 评论 -
STM32学习8
1. 今天把普中开发板上的RS232芯片烧坏了,所以接下来要完成stlink的使用,来下载程序,同时也尝试调试程序,也算是被逼的去学一个很有用的工具,本来我都不想学stlink的。2. 先学习一下stm32的定时器,过程中,加入stlink的下载和调试。3. 定时器:stm32分高级定时器(TIM1和TIM8),通用定时器(TIM2-5),基本定时器(TIM6原创 2016-12-14 22:03:19 · 455 阅读 · 0 评论 -
STM32学习部分5
1. 中断方面我还没有很好的掌握,今天继续。2. 中断:(1)STM32中,每个GPIO都可以作为外部中断的中断输入端口。(2)共十九个中断请求,其中线0-15为外部中断输入中断,线16连接到PVD,线17连接到RTC闹钟事件,线18连接到USB唤醒事件。3. 外部中断:折腾了一会终于有反应了,普中开发板上,有个下载时需要接上的跳帽在外部中断实验时需要拔下来,原创 2016-12-11 22:49:58 · 373 阅读 · 0 评论 -
NorFlash和NandFlash区别
Flash编程原理都是只能将1写为0,而不能将0写成1.所以在Flash编程之前,必须将对应的块擦除,而擦除的过程就是将所有位都写为1的过程,块内的所有字节变为0xFF.因此可以说,编程是将相应位写0的过程,而擦除是将相应位写1的过程,两者的执行过程完全相反.(1)闪存芯片读写的基本单位不同 应用程序对NorFlash芯片操作以“字”为基本单位.为了方便对大容量NorFla转载 2017-07-07 19:14:15 · 443 阅读 · 0 评论