像GPRS/3G模块之类的应用,需要连接,登陆,初始化等步骤完成后才能传输数据,而这些步骤又比较耗时。 所以用 状态机 + 超时 的机制来实现比较合理。 我有systick依赖症,所以用systick来做超时检测(其他定时器也都一样)。 因为这种AT指令来操作的模块一般是基于串口的,所以透传模式就类
分类:
其他好文 时间:
2016-02-28 12:16:42
阅读次数:
195
在项目开发的过程中,发现程序总是死在判断DMA一次传输是否完成这个标志位上。进一步回退分析,发现是在I2C读的过程中,有使用到DMA去取外部I2C设备的data。 但是data并没有读完,Data为32bits,DMA在读到18bits时,就出现读不到data bit了。导致I2C硬件模块不能进一步
分类:
其他好文 时间:
2016-02-16 11:36:30
阅读次数:
144
用时钟源来产生时钟! 在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①、HSI是高速内部时钟,RC振荡器,频率为8MHz。②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③、LSI是低速内部时钟,RC振荡器,频率为40kHz
分类:
其他好文 时间:
2016-01-30 22:46:20
阅读次数:
215
STM32低功耗模式实践 STM32一共有三种低功耗模式,睡眠模式、停止模式以及待机模式。 其中,睡眠模式时内核停止运行,但外设仍在工作,所有外设的时钟不会被关闭。 停止模式,除了Cortex-M3内核停止外,所有外设时钟也被关闭,可以选择使能内部时钟,SRAM和寄存器内容被保留,IO口保持为进入睡眠前的状态。 待机模式时,所有1....
分类:
其他好文 时间:
2016-01-28 11:00:35
阅读次数:
202
W5500EVB是WIZnet为了方便用户更好了解、使用W5500这款网络芯片所开发的评估板,该板採用了STM32F103RCT6+W5500 的设计。基于 ARM的 Cortex-M3平台。那么在实现网络通信的过程中,TCP通信模式为最经常使用,本教程就先为您介绍一下TCP Client模式是如何...
分类:
其他好文 时间:
2016-01-02 14:22:24
阅读次数:
1682
我在看os_cpu_c.c代码时对下面这段话困惑了半天总是在百度的帮助下找到了答案/* 申明几个函数,这里要注意最后三个函数需要注释掉,为什么呢? OS_CPU_SysTickHandler()定义在os_cpu_c.c中,是SysTick中断的中断处理函数, 而stm32f10x_it.c,中已经...
分类:
其他好文 时间:
2016-01-01 01:53:45
阅读次数:
452
上一篇介绍了资源紧缺型嵌入式系统的启动过程,如今介绍资源宽裕型嵌入式系统的启动过程。内存资源宽裕型操作系统一般都外挂SDRAM,而且CPU的计算能力都比較强,比如基于cortex A、MIPS 74k等核心的SOC。下图是两种嵌入式系统架构的差别: 图1,对于资源紧缺型系统,内置flash...
分类:
其他好文 时间:
2015-12-25 08:49:36
阅读次数:
168
在FreeRTOS移植到Cortex-M3硬件平台的文章中,我们已经见过任务创建API,但那篇文章的重点在于如何移植FreeRTOS,本文将重点放在任务的创建和删除API函数上面。 任务创建和删除API函数位于文件task.c中,需要包含task.h头文件。1.任务创建1.1函数描述 BaseType_txTaskCreate(...
分类:
其他好文 时间:
2015-12-21 16:19:36
阅读次数:
160
定时器和时间管理系统定时器是一种可编程硬件芯片。它能以固定频率产生中断。该中断就是所谓的定时器中断。它所相应的中断处理程序负责更新系统时间,还负责执行须要周期性执行的任务。系统定时器和时钟中断处理程序是Linux系统内核管理机制中的中枢。另外一个关注的焦点是动态定时器——一种用来推迟运行程序的工具。...
分类:
系统相关 时间:
2015-12-19 16:19:29
阅读次数:
324