stm32 fsmc 功能讲解(转)
摘要:LCD有如下控制线:CS:Chip Select 片选,低电平有效RS:Register Select 寄存器选择WR:Write 写信号,低电平有效RD:Read 读信号,低电平有效RESET:重启信号,低电平有效DB0-DB15:数据线假如这些线,全部用普通IO口控制。根据LCD控制芯片手册(大部分控制芯片时序差不多):如果情况如下:DB0-DB15的IO全部为1(表示数据0xff),也可以为其他任意值,这里以0xff为例。CS为0(表示选上芯片,CS拉低时,芯片对传入的数据才会有效)RS为1(表示DB0-15上传递的是要被写到寄存器的值),如果为0,表示传递的是数据。WR为0,RD为1(
阅读全文
posted @
2013-09-02 00:18
scdyxcc
阅读(863)
推荐(0)
stm32 GPIO
摘要:下面是我找的一些资料,也贴出来给大家看看。(1)GPIO_Mode_AIN模拟输入(2)GPIO_Mode_IN_FLOATING浮空输入(3)GPIO_Mode_IPD下拉输入(4)GPIO_Mode_IPU上拉输入(5)GPIO_Mode_Out_OD开漏输出(6)GPIO_Mode_Out_PP推挽输出(7)GPIO_Mode_AF_OD复用开漏输出(8)GPIO_Mode_AF_PP复用推挽输出推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电
阅读全文
posted @
2013-06-05 23:37
scdyxcc
阅读(654)
推荐(0)
在MDK中使用 printf 函数
摘要:microlib提供了一个有限的stdio子系统,它仅支持未缓冲的stdin、stdout和stderr。这样,即可使用printf()来显示应用程序中的诊断消息。要使用高级I/O函数,您必须提供自己实现的以下基本函数,以便与您自己的I/O设备配合使用。fputc()为所有输出函数实现此基本函数。例如,fprintf()、printf()、fwrite()、fputs()、puts()、putc()和putchar()。fgetc()为所有输入函数实现此基本函数。例如,fscanf()、scanf()、fread()、read()、fgets()、gets()、getc()和getchar()
阅读全文
posted @
2013-04-22 01:21
scdyxcc
阅读(2366)
推荐(0)
STM32 printf重定向
摘要:STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK)在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。下面就说一下使用printf需要做哪些配置。有两种配置方法:一、对工程属性进行配置,详细步骤如下1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。2、在main文件中重定义<fputc>函数 如下: // 发送数据 int fputc(int ch, FILE *f) { USART_SendDa
阅读全文
posted @
2013-04-22 01:08
scdyxcc
阅读(868)
推荐(0)
STM32库函数void USART_SendData的缺陷和解决方法
摘要:问题及现象(STM32F103系列:http://www.y-ec.com/cpcp/class/?32.html)使用USART_SendData()函数非连续发送单个字符是没有问题的;当连续发送字符时(两个字符间没有延时),就会发现发送缓冲区有溢出现象。若发送的数据量很小时,此时串口发送的只是最后一个字符,当发送数据量大时,就会导致发送的数据莫名其妙的丢失。如:for(TxCounter = 0;TxCounter < RxCounter; TxCounter++)USART_SendData(USART1, RxBuffer[TxCounter]);原因此API函数不完善,函数体内
阅读全文
posted @
2013-02-28 23:22
scdyxcc
阅读(3625)
推荐(0)
STM32的GPIO
摘要:GPIO的输入模式GPIO的输出模式GPIO的复用功能外设的GPIO配置
阅读全文
posted @
2013-01-08 13:50
scdyxcc
阅读(270)
推荐(0)
STM32三种启动模式
摘要:STM32三种启动模式对应的存储介质均是芯片内置的,它们是:1)用户闪存 = 芯片内置的Flash。2)SRAM = 芯片内置的RAM区,就是内存啦。3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。BOOT1=0 BOOT0=1 从系统存储器启动,这种
阅读全文
posted @
2013-01-07 17:20
scdyxcc
阅读(2025)
推荐(0)
STM32系统结构、时钟树
摘要:AHB :AHB:Advanced High-performance BusAHB和和和和APB这两种总线所连的外设是有区别的这两种总线所连的外设是有区别的这两种总线所连的外设是有区别的这两种总线所连的外设是有区别的。AHB总线连总线连总线连总线连接高速外设接高速外设接高速外设接高速外设,低速外设则通过低速外设则通过低速外设则通过低速外设则通过APB总线互连总线互连总线互连总线互连。APB:APB(Advanced Peripheral Bus),外围总线的意思。该总线协议是ARM公司提出的AMBA总线结构之一,几乎已成为一种标准的片上总线结构。FSMC:Flexible Static Mem
阅读全文
posted @
2013-01-07 12:01
scdyxcc
阅读(4351)
推荐(0)
stm32时钟分析
摘要:摘自网络在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。其实是四个时钟源,如下图所示(灰蓝色),PLL是由锁相环电路倍频得到PLL时钟。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。其中...
阅读全文
posted @
2013-01-04 23:22
scdyxcc
阅读(506)
推荐(0)
如何从官网下载STM32固件库(转)
摘要:想在ST官网下载STM32F10x的固件库,找了很长时间才找到,为了方便像我一样的菜鸟学习方便,现将如何从官网下载STM32F10x固件库展示如下:首先进入官网http:/www.st.com/ ,如下图:在下面选项卡中选择Support->Tools & Resources,如下图:进入如下界面:点击左面的Software Tools,进入如下界面:再点击左侧的Runtime Software下的Firmware进入如下界面:在右侧Firmware for MCUs下点选STM32,进入如下界面:搜索也好,一个一个找也好,最后都会看到如下的一项:可以看到最新的firmware是
阅读全文
posted @
2013-01-04 14:48
scdyxcc
阅读(2009)
推荐(0)
stm32库函数配置
摘要:STM32新手学习系列-stm32库函数配置(转载)2012-03-30 23:53STM32库函数配置stm32固件库V3.0以上的版本,main等源文件中不再直接包含stm32f10x_conf.h,而是stm32f10x.h,stm32f10x.h则定义了启动设置,以及所有寄存器宏定义,此文件中需要注意的有:使用V3.0以上版本固件库的方法如下:1.选择device(配置函数STM32F10x.h,具体配置方法如下)在STM32F10x.h中有如下代码:#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) &a
阅读全文
posted @
2013-01-04 00:51
scdyxcc
阅读(7765)
推荐(1)