历史上的今天
返回首页

历史上的今天

今天是:2025年03月07日(星期五)

正在发生

2018年03月07日 | STM32驱动1602程序

2018-03-07 来源:eefocus

    标 注:用到了 PD_0—7,给PO口(单片机板液晶数据口),PA0_2;

    已在函数中将他们以寄存器形式配置,注踏出再次配置PD时

    不应在配置这些口;

    在主函数中需将PD,PA使能。

    头函数:#include"1602.h"

    函 数:在1602.h中有列举;

    返回值:无;

    用PD0_7给液晶数据,PA0_2位控制为依次rs,rw,en;

    #ifndef __1602_H

    #define __1602_H

    #include "stm32f10x.h"

    void write1602_com(u8 com);

    void write1602_dat(u8 dat);

    void LCD1602_init(void);

    void write1602_Achar(u8 hang,u8 numadd,u8 x);

    void write1602_string(u8 hang,u8 numadd,u8 *p);

    #endif

    #include"stm32f10x.h"

    #include"1602.h"

    //sbit rs=P2^5;//gpioa_0

    //sbit rw=P2^6;//gpioa_1

    //sbit en=P2^7;//gpioa_2

    void Delayms(unsigned short time)//nms

    {

    unsigned short i, j;

    for(; time > 0; time--){

    for(j = 0; j < 10; j++){

    for(i = 0; i < 1000; i++);

    }

    }

    }

    void write1602_com(u8 com)

    {

    GPIOD->ODR&=0xff00;//??

    GPIOA->ODR&=0xfffb;//GPIOA->ODR&=0<<2;/

    void RCC_Configuration(void);

    void GPIO_Configuration(void);

    void NVIC_Configuration(void);

    u8 table[]="2010-4-30";

    void Delay(unsigned short time)//nms

    {

    unsigned short i, j;

    for(; time > 0; time--){

    for(j = 0; j < 10; j++){

    for(i = 0; i < 1000; i++);

    }

    }

    }

    int main(void)

    {

    u8 i;

    RCC_Configuration();

    NVIC_Configuration();

    GPIO_Configuration();

    lcd1602_init();

    while (1)

    {

    //i=KeysCAN();

    //LED(i);

    write1602_string(1,17,table);

    for(i=0;i<16;i++)

    {

    write1602_com(0x18);

    Delay(200);

    }

    }

    }

    void RCC_Configuration(void)

    {

    RCC_DeInit();

    RCC_HSEConfig(RCC_HSE_ON);

    HSEStartUpStatus = RCC_WaitForHSEStartUp();

    if(HSEStartUpStatus == SUCCESS)

    {

    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

    FLASH_SetLatency(FLASH_Latency_2);

    RCC_HCLKConfig(RCC_SYSCLK_Div1);

    RCC_PCLK2Config(RCC_HCLK_Div1);

    RCC_PCLK1Config(RCC_HCLK_Div2);

    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

    RCC_PLLCmd(ENABLE);

    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)

    {

    }

    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

    while(RCC_GetSYSCLKSource() != 0x08)

    {

    }

    }

    RCC_APB2PeriphCLOCkCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA| RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOB

    | RCC_APB2Periph_AFIO, ENABLE);

    }

    void GPIO_Configuration(void)

    {

    GPIO_InitTypeDef GPIO_InitStructure;

    GPIO_InitStructure.GPIO_PIN =GPIO_Pin_All;

    GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;

    GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;

    GPIO_Init(GPIOB, &GPIO_InitStructure);

    }

    void NVIC_Configuration(void)

    {

    //NVIC_InitTypeDef NVIC_InitStructure;

    #ifdef VECT_TAB_RAM

    NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);

    #else

    NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

    #endif

    }


推荐阅读

史海拾趣

Gustav Klauke GmbH公司的发展小趣事

Gustav Klauke GmbH在电子行业中的五个发展故事

故事一:创立与电气时代的崛起

1879年,Gustav Klauke GmbH在德国雷姆沙伊德成立,正值第二次工业革命带来的“电气时代”大爆发。创始人Gustav Klauke凭借其对精工品质的执着追求,将公司的业务聚焦于电气连接技术和电缆作业工具的研发。随着全球电气工业的迅速发展,Klauke迅速成为该领域的佼佼者,为供电系统的各个环节提供可靠且实用的解决方案,满足了社会对电气产品日益增长的多元化需求。

故事二:产品创新与多元化发展

历经百年开拓,Klauke的产品线不断丰富和完善。从最初的钟表维修钳子,到电缆接线端子的生产,再到电池驱动的液压工具的研发,Klauke始终走在行业前沿。特别是1994年推出的首款电池驱动液压工具,标志着公司在电气连接技术上的重大突破。至今,Klauke已拥有多达280种工具,2000多个型号,超过10000个优质部件,广泛应用于电力、铁路和工业等多个领域。

故事三:品质与认证的国际认可

Klauke深知电气连接作业对安全可靠性的极高要求,因此始终将产品质量放在首位。公司不仅拥有IEC(国际电工委员会)、UL(美国保险商试验所)、DNV(挪威船级社)和GL(德国劳氏船级社)等特殊行业的权威资质认证,还通过严格的产品测试报告,确保每一款产品都能达到国际最高标准。这种对品质的坚持,让Klauke在全球客户中赢得了极高的信誉和口碑。

故事四:全球化布局与业务拓展

随着全球市场的不断扩大,Klauke积极实施全球化战略。从德国本土出发,公司在全球范围内设立了多个分公司和销售办事处,如印度、奥地利、西班牙等。同时,公司还通过并购和合作等方式,不断拓展业务领域和市场份额。例如,2018年Gustav Klauke GmbH被艾默生收购,现隶属于“专业工具”部门,这一举措进一步提升了公司在全球电气工具市场的竞争力。

故事五:未来展望与技术创新

面对未来,Klauke继续秉承德国精工品质的优良传统,致力于技术创新和服务优化。公司正密切关注物联网和工业4.0等下一代趋势,并制定相应的战略计划。例如,新型电池供电液压工具配备了蓝牙接口,实现了移动数据读取和工具配置的便捷性。此外,Klauke还计划推出更多高适应性、精准性的电气连接解决方案,以更好地满足全球日益多元的施工作业需求。展望未来,Klauke将继续向下一个百年目标迈进,为电子行业的发展贡献更多力量。

COTO TECHNOLOGY公司的发展小趣事

随着业务的不断扩展,COTO TECHNOLOGY开始寻求全球范围内的合作与发展。1998年,公司收购了位于荷兰的Philips干簧开关事业部,组建了Coto Technology B.V.,进一步增强了其在全球市场的竞争力。此后,COTO还通过与其他企业的战略合作,不断拓宽业务领域,实现了从单一产品制造商向综合性电子解决方案提供商的转变。

GREATECS公司的发展小趣事

随着电子行业的快速发展,艾迈斯(AMASS)公司意识到只有不断创新才能保持领先地位。为此,公司加大了对研发的投入,引进了一批高素质的研发人才,并建立了完善的研发体系。经过多年的努力,艾迈斯成功研发出了多款具有创新性的连接器产品,其中包括高性能、高安全性的智能设备动力连接器。这些产品的推出不仅提升了公司的技术实力和市场竞争力,也为整个行业的发展带来了积极的影响。

Computer Conversions Corp公司的发展小趣事

面对日益严峻的环境问题,Computer Conversions Corp积极响应环保号召,开始研发更加环保的计算机转换技术。公司不仅优化了生产工艺,减少了生产过程中的能源消耗和废弃物排放,还推出了一系列节能型转换设备,帮助客户在提升计算效率的同时,也降低了能源消耗。这一举措不仅赢得了客户的赞赏,也提升了公司的社会形象。

CTC Coils Ltd公司的发展小趣事

随着国内市场的逐渐饱和,CTC Coils Ltd公司开始将目光投向海外市场。公司首先在欧洲设立了销售分支机构,通过参加国际电子展会、与当地企业建立合作关系等方式,逐步打开了欧洲市场。随后,公司又进一步拓展到北美和亚洲其他地区,实现了业务的国际化布局。

EMLSI公司的发展小趣事

在电子行业的早期,虚构的EMLSI公司就以其对技术的深刻理解和不懈追求而脱颖而出。公司创始人敏锐地察觉到了半导体技术的巨大潜力,并投入大量资源进行研发。经过数年的努力,EMLSI成功开发出了一款具有划时代意义的半导体芯片,极大地提升了电子设备的性能和效率。这一创新不仅为公司赢得了市场的认可,也为整个电子行业树立了新的标杆。

问答坊 | AI 解惑

【EEWORLD】救火车和你一起学ARM系列活动之二

上期回顾:【EEWORLD】救火车和你一起学ARM系列活动之一——发起活动和组建工作环境 https://bbs.eeworld.com.cn/thread-73857-1-1.html 最小系统电路和建立第一个软件工程 在这次活动中,我们的学习目的主要有两个: 第一、要了解 ...…

查看全部问答>

用最新库玩转智林STM32开发板(之六)------在真彩屏上显示大美女

上次那个五没传HEX文件,想改过来,又没有BMP.S的原文件,只好再发一篇算是上篇的补充. 有许多人对智林STM32开发板不用库有点看法,也有些人看不懂智林开发板的程序,这些日子我用库觉得只要钻进去什么都可,但智林不用库确实省空间,编程十分快,智林技术 ...…

查看全部问答>

发个液晶汉字显示的小软件

本帖最后由 paulhyde 于 2014-9-15 09:01 编辑 只要你输入汉字,就能得到相应的点阵数据,汉字还可以改字形哦  …

查看全部问答>

D78F1203 MCU

本帖最后由 paulhyde 于 2014-9-15 09:15 编辑 NEC 杯 电子设计大赛 提供芯片 的英文资料 D78F1203 MCU  …

查看全部问答>

EP2C35F484C8芯片上的程序经常出现停止运行现象

碰到一问题,EP2C35F484C8芯片的控制板上运行VHDL逻辑、时序电路程序,外界某个触发经常导致芯片程序停止运行。请教各位,分析啥原因?…

查看全部问答>

有没有人给点PID控制的程序?

拜托各位了,小弟最近在高PID控制,自己用C语言写的不准确,请高手赐教一下,最好是解释的比较清楚的那种。我的邮箱:sishuiliunian902@163.com…

查看全部问答>

1KHZ频率用555怎么做?

做个频率发生计,要用到555,如何产生1khz频率的方波?好像要用到一个10K欧滑动变阻器,它的阻值是多少(既划片的位置应该在哪里)?希望各位大侠帮助!…

查看全部问答>

fet下载问题

最近用的430FET下载时突然出了一个问题:什么都没动下载后一程序后,第二次就下不了了,但是蕊片还可以工作,就是下不了,我换了一个同样的蕊片后刚开始几次还是可以的,但是才下了四五次就又不行了,是怎么回事啊?请各位大哥帮忙啊…………………

查看全部问答>

spi调试求助--急,多谢帮忙

at91sam9261的板子,在调试SPI,但是老是不对,感觉根本没读书据,内核中我已经添加了spi1,添加的方法如下:在   linux-2.6.24/arch/arm/mach-at91下面的board-sam9261ek.c 中的ek_spi_devices[]中添加如下代码 {     &n ...…

查看全部问答>

SD卡读取时,所读的数据有部分丢失,有部分还不一样,这是怎么回事?请有经验的师兄们

最近向SD卡里存储了数据,由于没有使用文件系统,存储的数据没法看到,所以我又写了一个读取的函数,通过串口调试助手显示后有的显示为零,有些和我写进去的相同,这是怎么回事? 以下是我的主函数的一部分:  while(1)    { ...…

查看全部问答>