历史上的今天
返回首页

历史上的今天

今天是:2024年08月31日(星期六)

2020年08月31日 | STM8L探索套件学习笔记-GPIO端口操作(一)

2020-08-31 来源:eefocus

STM8与STM32一样提供了固件库函数,方便用户快速开发,不需要花费很多时间去查寄存器。不过没有STM32的库完善,给的说明文档是chm格式的,名字是stm8l15x_stdperiph_lib_um.chm,这个官网有下载,今天按照官方给的模板自己做个模板文件夹,方便后期的移植,这样就不要再重复设置了。首先我们看看GPIO模块,在用固件库之前先了解下GPIO里面的大体的寄存器,方便后期使用固件库。缺点是你所以输入的参数都会检测是否符合规范,必须得按照库函数里面定义的参数写。


GPIO寄存器有:输出寄存器(ODR),输入寄存器(IDR),方向寄存器(DDR),控制寄存器1(CR1)和控制寄存器2(CR2).后面三个寄存器组和可以配置为8种GPIO的模式,如下图:


而固件库函数给出了8中模式,在上面的基础上加入了输出高/输出低电平的状态。

GPIO_Mode_In_FL_No_IT浮空输入无中断Input floating, no external interrupt
GPIO_Mode_In_PU_No_I上拉输入无中断Input pull-up, no external interrupt
GPIO_Mode_In_FL_IT浮空输入有中断Input floating, external interrupt
GPIO_Mode_In_PU_IT上拉输入有中断Input pull-up, external interrupt
GPIO_Mode_Out_OD_Low_Fast
开漏-输出低-高速
Output open-drain, low level, 10MHz
GPIO_Mode_Out_PP_Low_Fast
推挽-输出低-高速
Output push-pull, low level, 10MHz
GPIO_Mode_Out_OD_Low_Slow
开漏-输出低-低速
Output open-drain, low level, 2MHz
GPIO_Mode_Out_PP_Low_Slow
推挽-输出低-低速
Output push-pull, low level, 2MHz
GPIO_Mode_Out_OD_HiZ_Fast
开漏-输出高阻-高速
Output open-drain, high-impedance level, 10MHz
GPIO_Mode_Out_PP_High_Fast
推挽-输出高-高速
Output push-pull, high level, 10MHz
GPIO_Mode_Out_OD_HiZ_Slow
开漏-输出高阻-低速
Output open-drain, high-impedance level, 2MHz
GPIO_Mode_Out_PP_High_Slow
推挽-输出高-低速
Output push-pull, high level, 2MHz

其他的一些函数可以参考固件库:

下面是GPIO操作的应用,GPIO写操作---板上的两个LED灯闪烁的代码
void main(void)
{
/* Infinite loop */
GPIO_Init(LED1_PORT, LED1_PIN, GPIO_Mode_Out_PP_Low_Fast);
GPIO_Init(LED2_PORT, LED2_PIN, GPIO_Mode_Out_PP_Low_Fast);
while (1)
{
GPIO_ToggleBits(LED1_PORT, LED1_PIN);
Delay(0xFFFF);
GPIO_ToggleBits(LED2_PORT, LED2_PIN);
Delay(0xFFFF);

}
}
GPIO读操作---查询按键点亮LED
void main(void)
{
/* Infinite loop */
GPIO_Init(LED1_PORT,LED1_PIN,GPIO_Mode_Out_PP_Low_Fast);
//输出低电平-高速10M
GPIO_Init(KEY_PORT,KEY_PIN,GPIO_Mode_In_FL_No_IT);
//输入浮空-无中断
while (1)
{
if(GPIO_ReadInputDataBit(KEY_PORT,KEY_PIN))
GPIO_WriteBit(LED1_PORT,LED1_PIN,RESET);
else
GPIO_WriteBit(LED1_PORT,LED1_PIN,SET);
}
}


推荐阅读

史海拾趣

Alpha & Omega Semiconductor(万国半导体)公司的发展小趣事

Alpha & Omega Semiconductor(简称AOS)是一家全球领先的半导体公司,致力于设计、制造和销售高性能、高可靠性的功率半导体产品。以下是Alpha & Omega Semiconductor公司发展的相关故事:

  1. 公司成立和早期发展: Alpha & Omega Semiconductor公司于2000年成立于美国加利福尼亚州的Santa Clara市。公司成立之初,专注于研发和生产功率半导体器件,包括功率MOSFET、IGBT、功率IC和电源管理器件等。通过不断创新和技术突破,公司迅速在市场上建立了良好的声誉,并吸引了投资者的关注。

  2. 技术创新和产品发展: Alpha & Omega Semiconductor公司在功率半导体领域不断进行技术创新和产品研发。他们不断推出新的产品系列,包括低压、中压和高压功率MOSFET、IGBT和功率集成电路等,以满足不同应用领域的需求。公司还专注于提高产品性能、降低功耗,并不断优化产品结构和工艺流程。

  3. 全球化布局和生产基地: 随着业务的不断扩张,Alpha & Omega Semiconductor公司逐步建立了全球化的运营和生产体系。除了总部位于美国的研发中心外,公司还在亚洲地区建立了多个生产基地和销售办事处,包括中国、台湾、韩国和菲律宾等地。这些生产基地不仅提高了产品供应的灵活性和效率,还加强了与当地客户和合作伙伴的合作关系。

  4. 持续投入研发和创新: Alpha & Omega Semiconductor公司持续投入大量资源用于研发和创新,致力于提供行业领先的功率半导体解决方案。公司与全球顶尖的研究机构和合作伙伴合作,共同探索新的材料、工艺和器件结构,以应对不断变化的市场需求和技术挑战。通过持续的技术创新,公司不断拓展产品线,拓展业务领域,并保持了在市场上的竞争优势。

  5. 持续发展和业务拓展: Alpha & Omega Semiconductor公司持续保持业务的稳健增长和发展态势,不断拓展业务范围和市场份额。公司在汽车电子、工业控制、通信设备、消费电子和电源供应等领域取得了广泛的应用,成为了全球领先的功率半导体供应商之一。同时,公司还通过并购和合资等方式,加速业务拓展,拓展了在新兴领域的市场地位。

以上是Alpha & Omega Semiconductor公司发展的相关故事,展示了他们在功率半导体领域的持续创新和不断发展的势头。

DMEL Inc公司的发展小趣事

在技术创新的基础上,DMEL Inc开始积极拓展市场。公司首先瞄准了欧美等发达国家市场,通过参加国际展会、建立海外销售网络等方式,成功打开了国际市场的大门。同时,DMEL Inc也关注国内市场的变化,不断调整产品策略,满足国内消费者的需求。随着市场份额的逐步扩大,DMEL Inc的知名度也不断提升。

DUBILIER公司的发展小趣事

DUBILIER公司非常重视人才的培养和发展。公司建立了完善的人才培训体系,为员工提供各种培训和发展机会。通过内部培训和外部引进相结合的方式,DUBILIER公司培养了一支高素质、专业化的技术和管理团队。这些人才不仅为公司的发展提供了强大的支持,还为公司赢得了更多的商业机会和合作伙伴。

Fluke公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。DUBILIER公司深知这一点,因此一直致力于提升产品质量和可靠性。公司建立了严格的质量管理体系,对生产过程进行全面监控和控制。通过采用先进的生产设备和工艺,以及实施严格的质量检测程序,DUBILIER公司确保了其产品的卓越品质。这种对品质的执着追求使得DUBILIER公司的产品在市场上备受信赖。

上海国芯(Gcore)公司的发展小趣事
优化电源设计,加入滤波电容等元件以减小电源波动对电路的影响;采用温度补偿等措施提高电路的温度稳定性。
Fedco_Batteries公司的发展小趣事

随着公司业务的不断拓展,Fedco_Batteries始终将产品质量放在首位。公司引进了先进的生产设备和检测设备,建立了严格的质量管理体系。每一块电池在出厂前都要经过多道严格的质量检测,确保产品的稳定性和可靠性。这种对品质的坚持,让Fedco_Batteries的电池在市场上赢得了良好的口碑,越来越多的客户选择了他们的产品。

问答坊 | AI 解惑

谁有 MEMORY STICK规范?

我正在研究memory stick和magicgate, 谁有规范, 有酬谢! 请联系cenuserwen@gmail.com…

查看全部问答>

$$$咨询:WINCE下手写软件的价格

    我公司一产品上使用了windows ce 4.2 net 版本, 处理器为ARM4VR,分辨率为240*320,现在想寻一款手写软件, 现咨询一下购买这种软件要多少钱?     胡先生   13320807449   QQ:562850914  &n ...…

查看全部问答>

新手上路,求助

本人是个新手,想自学单片机,但是不知道该怎么入手,有高手介绍下经验么?上网搜了,可是还是没有系统的认识,另外,现在学什么类型的,更容易上手,有知道的帮忙回答下,万分感谢~…

查看全部问答>

WINCE编译不了,说找不到recorder.exe

Warning: Found duplicate entry \'binfs.dll      NK               C:\\WINCE420\\PUBLIC\\11\\RelDir\\SAMSUN~1\\binfs.dll 00000007\' ... skipping Error: Could not ...…

查看全部问答>

Wince 是否支持大页nand flash?文件格式是dosfs吗?

Wince是否支持大页nand flash?文件格式是dosfs吗? Wince支持的Nand的大页模式和小页模式是同一个文件系统吗?…

查看全部问答>

Zstack学习经验点滴:如何使用OSAL的事件?

如何使用OSAL的事件?OSAL通过一个16位宽度的数组来管理事件,意味着OSAL最多可以支持16个事件,其中最高位(0x08000,SYS_EVENT_MSG)系统保留,用户可以使用的事件有15个。事件的使用很简单:1)需要找个地方定义事件的ID,实际上是指定该事件占 ...…

查看全部问答>

CAN一次最多发多少字节数据?

TxMessage.DLC最多是8字节,我一次要发24个。分三次发,发送程序如下TestStatus CAN_Polling(void){  u32 i = 0;  u8  m=0;  //每次发送的字节数  u8  n=0; ...…

查看全部问答>

交流群创建喽

本人非常之喜欢这个论坛,所以私自创建了一个群, 群号:168221728 大家可以加这个号,方便交流 …

查看全部问答>

uc/os求助

如何建立两个任务,一个检测两次按键的时间间隔,并将此值存放在全局变量KTime中,另一个任务按此时间间隔定时向电脑屏幕发出字符“M\"及该时间间隔信息??????????????…

查看全部问答>