历史上的今天
返回首页

历史上的今天

今天是:2025年01月28日(星期二)

2020年01月28日 | STM8固件库+IAR 之--GPIO

2020-01-28 来源:eefocus

单片机必然先从GPIO开始,开发板上的三个led灯分别是PD0,PD2和PD3,KEY 则是PD7,所以GPIO初始化只初始化PD口即可,直接在main.c里写代码,话不多说,直接上代码:


#include "stm8s.h"


/*========内部高速时钟初始化========*/

void init_clk(void) 

CLK_DeInit(); //寄存器复位

CLK_HSICmd(ENABLE); //内部高速时钟使能 

CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2); //内部2分频 8M

}


 


/*========GPIO初始化========*/

void init_gpio(void) 

GPIO_DeInit(GPIOD); //PD口复位

GPIO_Init(GPIOD , GPIO_PIN_7 , GPIO_MODE_IN_PU_NO_IT); // Key初始化 上拉输入

GPIO_Init(GPIOD , GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3 , GPIO_MODE_OUT_PP_LOW_SLOW); // LED1~LED3初始化 推挽输出

}


 


/*========ms级延时函数===========*/


/**


*这可是本人专为stm8打造的精确延时哟


*/

void delay_nms(u16 n)

{

u16 i=0;

while(n--)

{

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

}

}


 


/*========主函数===========*/

/**

*实现3个led的key按键流水灯

*key每按一次3个led分别进行开与关操作

*/

void main(void)

{

u8 count; //自加变量

init_clk();

init_gpio();

while (1)

{

if(!(GPIO_ReadInputData(GPIOD)&GPIO_PIN_7))

{

delay_nms(20); 

if(!(GPIO_ReadInputData(GPIOD)&GPIO_PIN_7))

{

if(count%3==0)

{

GPIO_WriteReverse(GPIOD,GPIO_PIN_0); 

}

if(count%3==1)

{

GPIO_WriteReverse(GPIOD,GPIO_PIN_2); 

}

if(count%3==2)

{

GPIO_WriteReverse(GPIOD,GPIO_PIN_3); 

}

count++;

while(!(GPIO_ReadInputData(GPIOD)&GPIO_PIN_7));

}

}

}

}


功能自然相当简单,3个输出1个输入,一个按键分别控制三个led的亮灭!

推荐阅读

史海拾趣

Amplitronix LLC公司的发展小趣事

随着公司的规模不断扩大,Amplitronix LLC开始重视内部管理和企业文化的塑造。他们引进了一系列先进的管理理念和方法,优化了公司的组织结构和管理流程。同时,公司也注重员工的培训和发展,为员工提供了广阔的职业发展空间和良好的福利待遇。这些措施不仅提升了员工的工作积极性和满意度,也为公司的长远发展奠定了坚实的基础。

芯联(CHIPLINK)公司的发展小趣事

芯联集成非常重视企业文化建设,致力于打造一个高效、协作、创新的团队。公司倡导“以人为本”的管理理念,关注员工成长和发展,为员工提供良好的工作环境和福利待遇。同时,公司还建立了完善的激励机制和培训体系,激发员工的工作热情和创造力。这些努力使芯联集成在行业内树立了良好的口碑和形象,吸引了众多优秀人才加入公司。

ENPIRION公司的发展小趣事

在电源管理领域,ENPIRION公司不断面临各种技术挑战。例如,如何满足企业级、工业级、通信等市场对产品的高可靠性要求?如何提供最优的电源转换率以降低成本和散热?为了应对这些挑战,ENPIRION公司不断投入研发力量,推出了一系列创新的电源管理解决方案。这些解决方案不仅满足了市场的需求,还进一步巩固了ENPIRION公司在电源管理领域的领先地位。

启攀微(CHIPHOM)公司的发展小趣事

随着市场竞争的加剧和技术的不断进步,启攀微电子(CHIPHOM)意识到只有不断创新才能保持领先地位。公司加大了在新技术、新产品方面的研发投入,积极探索物联网、人工智能等新兴领域的应用。同时,公司还注重人才培养和团队建设,吸引了一批高素质的技术人才和管理人才加入公司。在创新驱动的引领下,启攀微电子(CHIPHOM)不断推出具有竞争力的新产品和解决方案,赢得了客户的广泛认可。

Eagle Plastic Devices公司的发展小趣事

为了保持技术领先地位和满足不断变化的市场需求,Eagle Plastic Devices公司不断加大研发投入,引进先进的研发设备和人才。公司建立了完善的研发体系,包括新产品开发、工艺改进、性能测试等环节。通过不断的技术创新和产品升级,Eagle Plastic Devices公司成功推出了多款具有竞争力的新产品,进一步巩固了其在行业内的领先地位。

Horizon Electronics Enterprises Group公司的发展小趣事

随着工业互联网和智能制造技术的快速发展,Horizon紧跟时代步伐,积极推进数字化转型和智能制造升级。公司引入先进的自动化生产线和智能管理系统,实现生产过程的智能化和精细化管理。通过数字化转型,Horizon不仅提高了生产效率和产品质量,还降低了运营成本和市场风险。同时,公司还积极探索智能制造的新模式和新应用,为电子行业的未来发展贡献智慧和力量。

问答坊 | AI 解惑

如何自己建PCB库

高人啊,来说说吧。…

查看全部问答>

电子设计资料

本帖最后由 paulhyde 于 2014-9-15 09:42 编辑 欢迎大家交流学习!  …

查看全部问答>

sysClkRateGet 和tickGet 这两个函数的运行经常会出一些莫名其妙的错误.

为什么程序中用到这2个函数的时候经常会出现一些莫名其妙的错误。看下面的代码。我在debug模式下单步执行的时候。 当我执行完A函数的时候,我的B函数和C函数都直接返回了。就是说我B函数和C函数下的其他代码都没有执行就直接跳出C函数了。 [code] ...…

查看全部问答>

请教,主板的制作

请问一下,主板从怎样从无到有生产出来的。能否说的详细些。包括用到的技术。…

查看全部问答>

欢迎大家加入新建USB技术群!

为了共同探讨,共同进步,热烈欢迎各位XDJM们加入该USB驱动开发群! 群号:47105079…

查看全部问答>

征文啰!!!快来看看啊!!哈哈哈!!

 大家好啊!很不好意思!我要在神圣的技术区发帖一个没有技术含量的帖子!         每一个人学习单片机的经历都是一个美妙的故事! 或许你还记得为了使自己的单片机能够下载程序你满世界的找各种驱动时 ...…

查看全部问答>

MSP430F149 AD转换问题

求助!!!急!!!我将1.5V电池作为输入信号输入430单片机内部AD模块,为什么串口发送出来的数据不是恒定值?是我的程序有问题吗?还是别的什么原因?…

查看全部问答>

蓝牙4.0发展真的要靠Android吗?

2013年5月18日在Google I/O开发者年会上,Google宣布未来几个月内其Android操作系统将全面支持Bluetooth Smart Ready和 Bluetooth Smart设备。采用新版Android系统的移动电话和平板,只要搭载双模蓝牙芯片即属于Bluetooth Smart Ready规格。 虽说 A ...…

查看全部问答>