STM32 学习
水桶前辈
爱旅行爱生活喜欢西藏的蓝天白云
展开
-
stm32 USART中断标志位什么时候清除
USART_ClearITPendingBit(USART2,USART_IT_RXNE);我放在中断处理函数里 怎么没有效果?答:RXNE标志不能直接清除,读取USART->DR(就是读取接收到的数据)来清除RXNE标志。...原创 2013-10-11 22:39:08 · 13072 阅读 · 1 评论 -
STM32---系统滴答定时器(systick)应用
1.systick介绍 Systick就是一个定时器而已,只是它放在了NVIC中,主要的目的是为了给操作系统提供一个硬件上的中断(号称滴答中断)。滴答中断?这里来简单地解释一下。操作系统进行运转的时候,也会有“心跳”。它会根据“心跳”的节拍来工作,把整个时间段分成很多小小的时间片,每个任务每次只能运行一个“时间片”的时间长度就得退出给别的任务运行,这样可以确保任何一个任务都不会霸占原创 2014-06-18 14:40:00 · 1135 阅读 · 0 评论 -
STM32的定时器学习
转自:http://www.cnblogs.com/daqiang/archive/2011/12/04/2275646.htmlSTM32的定时器是个强大的模块,定时器使用的频率也是很高的,定时器可以做一些基本的定时,还可以做PWM输出或者输入捕获功能。时钟源问题:名为TIMx的有八个,其中TIM1和TIM8挂在APB2总线上,而TIM2-TIM7则挂在APB1总线上。其中TIM原创 2014-06-12 10:36:35 · 826 阅读 · 0 评论 -
解析STM32启动过程
转自:http://www.amobbs.com/thread-5462931-1-1.html相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动,即固定了复位后的起始地址为0x000000(PC = 0转载 2014-02-24 13:07:42 · 683 阅读 · 0 评论 -
STM32 看门狗学习笔记
STM32 有两个看门,一个是独立看门狗,一个是窗口看门狗.这里先说独立看门狗.以单片机为核心的微型计算机系统中,单片机经常会受到来自外界电磁场的干扰。造成程序跑飞,只是程序的正常运行状态被打断而进入死循环,从而使单片机控制的系统无法正常工作。看门狗就是一种专门用于检测单片机程序运行状态的硬件结构。独立看门狗的特性是,要利用片内的40k RC振荡器作为时钟据原创 2013-12-27 17:07:48 · 1368 阅读 · 0 评论 -
解析 STM32 的启动过程
至此可以总结一下STM32的启动文件和启动过程。首先对栈和堆的大小进行定义,并在代码区的起始处建立中断向量表,其第一个表项是栈顶地址,第二个表项是复位中断服务入口地址。然后在复位中断服务程序中跳转¬¬C/C++标准实时库的__main函数,完成用户堆栈等的初始化后,跳转.c文件中的main函数开始执行C程序。假设STM32被设置为从内部FLASH启动(这也是最常见的一种情况),中断向量表起始地位为转载 2013-12-26 10:02:40 · 1074 阅读 · 0 评论 -
stm32 备份寄存器 读写数据
1. 首先 检查RTC电池是否装载,没电池的话,设备掉电也保存不了数据。 备份寄存器就是普通的RAM,需要配合外接电池使用,如果没有电池,就不能掉电保持数据。 因为是普通RAM,所以不存在写入次数的问题,理论上是无限次的。其次在RCC_Configuration(); 中配置备份寄存器的如下:/* Enable PWR(电源控制) and BKP clock */ RCC原创 2014-01-01 15:47:55 · 12445 阅读 · 0 评论 -
stm32 中断线 IO模式读写笔记
一.stm32 中断线 的使用方法:1.中断线配置:void EXTI_Configuration(void){ EXTI_InitTypeDef EXTI_InitStructure; //EXTI初始化结构定义 GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource3);//管脚选择原创 2013-12-30 15:30:32 · 1741 阅读 · 0 评论 -
IAR crc 检验源码和说明
IAR CRC 校验说明:http://supp.iar.com/Support/?note=64424&from=note+11927下载地址:http://netstorage.iar.com/SuppDB/Public/SUPPORT/007315/crc32.cunsigned long crc32_table[256] = { 0x00000000, 0x0转载 2013-12-05 10:55:21 · 1875 阅读 · 0 评论 -
IAP————FTP——————犯错了
IAP————FTP——————犯错了!!!!这几天在写的关于IAP的FTP下载程序,在程序跳转到APP的时候老是进入void HardFaultException(void)函数中,找了原因发现是APP写进flash时数据会出错。对比图如下:(1)APP写进flash中出现的正确显示(通过串口IAP测试)(2)APP写进flash中出现的错误显示(原创 2013-12-04 21:21:56 · 1032 阅读 · 0 评论 -
IAR 写data到固定的flash
#pragma location=0x0800f800 __no_init const unsigned char AT_CIPSTART[64]; unsigned char test_CIPSTART[] ="AT+CIPSTART=\"TCP\",\"60.186.20.162\",\"5002\"";在主函数里面加上下句就可以顺利的写入data到f原创 2013-12-11 10:08:51 · 2320 阅读 · 1 评论 -
stm32 读写flash 学习笔记
在读写flash时要注意对齐,以及最少一个字节!比如读写地址如这个区间:0x08010800---------0x0801200f (0----f 为16个位,即2个字节!)-----------正确的地址区间假如地址为:(0x08010800---------0x0801200d )------------------错误的地址区间 ,此时写flash时就会出错。主要原因我的原创 2013-12-09 15:58:01 · 984 阅读 · 0 评论 -
STM32 Flash 擦除 读写 成功
参考:http://download.csdn.net/detail/my_friend_ship/4166970要点: 将数据写入flash之前,每次都要擦除,否则会写入不成功,出现的错误状态为:FLASH_Status=FLASH_ERROR_PG写入数据成功后可以在Memory 中查看刚刚写入的数据,具体在Memory 窗口中输入:0x08010000,既可以看到此处的数据为原创 2013-11-14 16:36:47 · 10439 阅读 · 0 评论 -
STM32官方例程————修改直接运行
stm32官方下载的例程,直接编译会出错(主要原因是它官网的例程是针对对个开发板写的总例程,通过宏定义来选择不同的开发板),所以需要如下简单的设置后,方可编译通过!官网例程下载地址:http://www.st.com/web/en/home/catalog/mmc/FM141/SC1169/SS1031/LN1564/PF221020?s_searchtype=keyword#原创 2013-11-05 10:44:23 · 5710 阅读 · 1 评论 -
通过串口实现stm32的IAP功能————stm32学习笔记
通过串口实现了IAP功能! while(1) { if(USART_RX_CNT) { if(oldcount==USART_RX_CNT)//新周期内,没有收到任何数据,认为本次数据接收完成. { applenth=USART_RX_CNT; o原创 2013-11-15 22:23:07 · 1996 阅读 · 3 评论 -
gps gprs sim300 发短信
/*************************************************************** GPS GPRS 发短信 博客:www.guooge.com 作者:lurker QQ:313919848 GPRS: sim300 工业模块 GPS : GR-87 单片机: STC12C5A60S2 **转载 2013-10-20 10:54:52 · 1670 阅读 · 0 评论 -
stm32端口“重映射” &&串口学习
1.这段代码实现了串口的重映射,即将RFID串口(连接PC的串口)与sim900A的串口进行了重映射!也就是说将PC发送的数据给RFID的串口,将 RFID的串口接收到的PC数据通过sim900A的串口发送出去。然后sim900A的串口接收来自服务器的数据,然后返回给RFID的串口,RFID的串口的再将服务器的数据返回给PC部分程序如下: GPRS_ON(); Start_GPRS(); /...原创 2013-10-12 18:00:47 · 2017 阅读 · 0 评论 -
STM32 systick做为系统时间使用(非简单延时)
基本能搜到的systick 都是作为延时使用的,因为设计需求我更多实用的是系统时间判断。假如我有个LED 需要每10s 闪一下,并且单片机还需要做其他的工作,用延时工作效率太低了,开个定时器又太浪费了。因此系统时钟就体现出了由为重要的应用场合。只需要检测到系统时间为10s 的倍数就可以做动作了,当然前提保证程序的大体循环能在1s 内完成,这个基本没问题如果一个大体循环1s 内完成不了 那这个程转载 2014-06-23 11:17:20 · 2423 阅读 · 0 评论