2011年12月21日

摘要: 在单片机的开发过程中,经常需要将两个单独的BIN文件合并成一个文件,方便烧写和生产。下面结合STM32的IAP Bootloader Code和Application Code的合并,介绍两种合并BIN文件的方法。 首先简单介绍一下STM32的IAP。IAP(In-application-programming),即在应用中编程。有了它,产品发布之后,仍然可以方便的升级固件,而不需要拆机并用JTAG等方式更新程序。IAP系统的固件一般有两部分组成,IAP BootLoader Code和Application Code,如下图所示。 系统启动时,首先运行IAP BootLoader Cod.. 阅读全文

posted @ 2011-12-21 16:25 蓝色星宇 阅读(3487) 评论(0) 推荐(0) 编辑


2011年12月9日

摘要: STM32+SSD1963+TFT(FSMC)已调试通过的代码。其中要注意的两点:1.外部访问地址需加volatile,否则keil MDK 优化会将部分代码优化掉,造成错误。 volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。2.FSMC内部地址和外部实际地址有区别。如A18连线对应内部地址是A19。// ssd1963 #d/c -------- STM32F103VCT6 A18#define LCD_COMM 阅读全文

posted @ 2011-12-09 17:02 蓝色星宇 阅读(3176) 评论(0) 推荐(0) 编辑


2011年12月2日

摘要: STM32支持在应用中编程,也就是所谓的IAP,这对产品的在线升级带来了很大方便。在线升级的原理简介如下:在单片机的FLASH中有两段代码,一段是IAP代码,另一段就是用户的应用程序即APP代码,IAP代码放在单片机复位时的起始地址,而APP代码则放在IAP后面的地址,上电时CPU首先执行IAP代码,再通过IAP代码跳转到APP代码开始执行。在IAP代码执行期间,通过检测某一个事件(如IO电平)来判断是否对APP代码进行更新,如果该事件无效,则不更新,直接跳转到APP代码执行;如果该事件有效,则更新APP代码,而更新的文件则从外部磁盘通过串口或USB写入FALSH应用程序空间。流程图如下:当然 阅读全文

posted @ 2011-12-02 17:44 蓝色星宇 阅读(6462) 评论(2) 推荐(0) 编辑


2011年11月23日

摘要: #define PWM_CLK1M_ARR_8K125-1#define TIM_CLK1M 1000000IzTrigPWMInit(TIM_CLK1M,PWM_CLK1M_ARR_8K);void IzTrigPWMInit( uint32_t TIMCLK, uint16_t PWMCLK)//10%~90%//void IzTDivPWMInit( uint32_t TIMCLK, uint16_t PWMCLK)//10%~90%{if(TIMCLK>SystemCoreClock){TIMCLK = SystemCoreClock;}//reset /* TIM3 enabl 阅读全文

posted @ 2011-11-23 16:46 蓝色星宇 阅读(4851) 评论(0) 推荐(0) 编辑

摘要: SSD1963 低功耗应用。背光调节除了duty 还有一个系数:DBC manual brightness:duty*00%,已经调试通过。void LcdEnterSleep(void){//set PWMWriteCommand(0xBE); //WriteData(0x0E);//PLL(120M)/(256*Value)/256=120Hz//WriteData(0xFF);//duty=X/256WriteData(0x50);//duty=X/256WriteData(0x09);//DBC disable PWM enable //close backlightWriteData 阅读全文

posted @ 2011-11-23 16:33 蓝色星宇 阅读(732) 评论(0) 推荐(0) 编辑

摘要: 首先在ST官网上下载了STM32的USB开发套件地址:http://www.st.com/stonline/products/support/micro/files/um0424.zip由于此开发套件基于ST的官方开发板,与EK-STM32F的电路有所不同。比较了一下,不同之处在于1, 官方的开发套件使用PD.09作为USB识别使能线,而EK-STM32F使用PD.08。2, 官方的开发套件通过PB.09来判断是否进入DFU模式, 而EK-STM32F的按键使用了PD.03和PD.04。3, EK-STM32F没有接外部SPI Flash, 所以只能更新内部flash。因此修改代码如下:voi 阅读全文

posted @ 2011-11-23 16:23 蓝色星宇 阅读(1845) 评论(0) 推荐(0) 编辑


2011年8月25日

摘要: SD卡和TF卡管脚定义有区别,需要注意。* +-------------------------------------------------------+ * | Pin assignment | * +-------------------------+---------------+-------------+ * | STM32 SPI Pins | SD | Pin | TF Pin * +-------------------------+---------------+-------------+ * | SD_SPI_CS_PIN | ChipSelect ... 阅读全文

posted @ 2011-08-25 12:45 蓝色星宇 阅读(5401) 评论(0) 推荐(0) 编辑


2011年8月10日

摘要: 一、udp.c实现的函数1、voidudp_input(struct pbuf *p, struct netif *inp)说明:处理接收到的udp数据包。参数:p数据包缓存区;inp网络接口。2、err_tudp_send(struct udp_pcb *pcb, struct pbuf *p)说明:发送udp包。这个函数直接调用udp_sendto()函数。参数:pcb协议控制块;p数据包发送缓存区。返回:ERR_OK发送成功;ERR_MEM发送溢出;ERR_RTE不能发送到指定ip;其它表示发送失败。3、err_tudp_sendto(struct udp_pcb *pcb, struc 阅读全文

posted @ 2011-08-10 11:28 蓝色星宇 阅读(3931) 评论(0) 推荐(0) 编辑

摘要: 原文http://www.flatws.cn/article/program/embed/2011-06-17/31076.htmllwip是一个轻量级的TCP/IP协议栈(Lightweight TCP/IP Stack)实现,最初是瑞士计算机科学学院Adam Dunkels编写的一个应用于无操作系统的嵌入式系统中的TCP/IP协议栈,后来作为一个开源(open source)项目,由一个全球性的团队进行开发和维护。xZg平坦软件园已实现的部分有:xZg平坦软件园1. 标准的TCP/IP协议栈实现,包括TCP、UDP、ICMP、IP、ARP、DHCP;xZg平坦软件园ICMP(Interne 阅读全文

posted @ 2011-08-10 11:22 蓝色星宇 阅读(3257) 评论(0) 推荐(0) 编辑


2011年7月29日

摘要: CY22393的应用。第一步:用CyclocksRT 软件设置好需要产生的频率等参数。生成配置文件。第二步:用CY3672(编程器)+CY3672ADP003(IC 座)将配置文件烧录。或用第三方烧录器如河洛等烧录。最后焊接到板子上就可以应用了。原理图连接:Pin16 --VCC(或IO 控制),Pin15(S2)---GND,Pin12/Pin13--I2C线上拉。如下为调试成功的I2C 控制/*CY22393*/#define CY22393_ADDR0x69#define CY22393_I2C_ADDR CY22393_ADDR#define CY22393_PLL_ENABLE 0x 阅读全文

posted @ 2011-07-29 16:25 蓝色星宇 阅读(1257) 评论(0) 推荐(0) 编辑


Copyright © 2024 蓝色星宇
Powered by .NET 8.0 on Kubernetes

跟小D每日学口语 跟小D每日学口语