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);
}
}
上一篇:JTAG/SWD/ISP/SWIM详解单片机的四种烧写方式
下一篇:STM8L101F3P6 TIM4 实现呼吸灯效果(1)
推荐阅读最新更新时间:2024-11-09 19:44
设计资源 培训 开发板 精华推荐
- 用于自动测试设备的 2.7 至 6V 模拟放大
- NCP130AMX090TCGEVB:NCP130AMX090TCG 偏置轨 LDO 稳压器演示板
- 使用 Analog Devices 的 LTC3119IUFD 的参考设计
- FC-135,LPCxxxx 微控制器的 32.768kHz 晶体单元的振荡电路和选型指南
- 基于STCH03L和SRK1000B的36W USB充电器,具有可选的输出电压(5-9-12 V @ 3A)
- 使用 ON Semiconductor 的 LM337M 的参考设计
- DER-617 - 8.4 W 高功率因数、隔离反激式 LED 驱动器
- #第七届立创电赛#“量产型”手持风扇
- 应用示例 - STM32F101xx 和 STM32F103xx 内核和系统外设中的 5 个
- LT8495IFE 锂离子至 12V、650kHz 低 Q 电流升压转换器的典型应用电路
- TI模电选课测试体验活动第二期!模电怎么学?TI帮你订制课程清单~
- ADI生命体征技术助力高性能便携和穿戴医疗设备,答题有好礼
- 答题赢京东卡|《安森美和安富利物联网创新设计大赛作品集》
- TI携您共创未来乘驾新体验——亲自体验: 明星产品限时购
- 【社区大讲堂】ARM+DSP双核处理器应用程序开发
- 应用指南下载|是德科技《快速查找和识别隐藏的信号误差》
- 安全在任何时候都是第一要素,你的嵌入式设计也是!诚邀参加英飞凌 OPTIGA™ Trust M 安全防御大揭秘!
- Maxim 利用nanoPower创新技术,致力于降低系统的静态功耗 看视频答题赢好礼! 还有免费开发板等你拿
- 为“ADI实验室电路”寻建议!