历史上的今天
今天是:2024年12月12日(星期四)
2019年12月12日 | STM8L学习笔记-GPIO端口操作(一)
2019-12-12 来源:eefocus
STM8与STM32一样提供了固件库函数, 不过没有STM32的库完善,给的说明文档是chm格式的,名字是stm8l15x_stdperiph_lib_um.chm,这个官网有下载.
GPIO寄存器有:
输出寄存器(ODR),
输入寄存器(IDR),
方向寄存器(DDR),
控制寄存器1(CR1),
控制寄存器2(CR2);
后面三个寄存器组和可以配置为8种GPIO的模式.
而固件库函数给出了8种模式,在上面的基础上加入了输出高/输出低电平的状态。
GPIO_Mode_In_FL_No_IT浮空输入无中断
GPIO_Mode_In_PU_No_I上拉输入无中断
GPIO_Mode_In_FL_IT 浮空输入有中断
GPIO_Mode_In_PU_IT 上拉输入有中断
GPIO_Mode_Out_OD_Low_Fast 开漏-输出低-高速-10MH
GPIO_Mode_Out_PP_,Low_Fast 推挽-输出低-高速-10MH
GPIO_Mode_Out_OD_Low_Slow 开漏-输出低-低速-2MH
GPIO_Mode_Out_PP_Low_Slow 推挽-输出低-低速-2MH
GPIO_Mode_Out_OD_HiZ_Fast 开漏-输出高阻-高速-10MH
GPIO_Mode_Out_PP_High_Fast 推挽-输出高-高速-10MH
GPIO_Mode_Out_OD_HiZ_Slow 开漏-输出高阻-低速-2MH
GPIO_Mode_Out_PP_High_Slow 推挽-输出高-低速-2MH
其他的一些函数可以参考固件库:
下面是GPIO操作的应用:
输出初始化例子:
GPIO_Init(LED1_PORT, LED1_PIN, GPIO_Mode_Out_PP_Low_Fast);
输入初始化例子:
GPIO_Init(KEY_PORT,KEY_PIN,GPIO_Mode_In_FL_No_IT);
//输入浮空-无中断
读:
GPIO_ReadInputDataBit(KEY_PORT,KEY_PIN)
写:
GPIO_WriteBit(LED1_PORT,LED1_PIN,RESET);//高电平
GPIO_WriteBit(LED1_PORT,LED1_PIN,SET);//低电平
GPIO_ToggleBits(LED1_PORT, LED1_PIN);//取反
史海拾趣
|
一、 闭路监视电视系统简介: CCTV系统结构: 电视监控系统(Closed Circuit Television,简称CCTV),一般由以下三部分组成: 前端部分: 主要由黑白(彩色)摄像机、镜头、云台、防 ...… 查看全部问答> |
|
高人可以帮我看下我的这个拨码开关程序老有点小我问题,,十万火急 process(clk_a) VARIABLE cnt_a : std_logic_vector(7 downto 0):=\"11111111\"; begin if (clk_a\'event and clk_a=\'1\') then if cnt_a=\"11111111\" then cnt_a:=d; full_a… 查看全部问答> |
|
Altium Designer 使用 —— 快速制作原理图封装当制作引脚数比较多的器件的原理图封装时,可以使用AD提供的“smart grid insert”功能快速制作原理图封装库。本文以制作K9F1G08为例,进行简单说明。K9F1G08的引脚分布如图1所示:1. 打开 excel ,按 ...… 查看全部问答> |
|
新建一个wince 的mfc exe,怎么在对话框中添加一个ie控件,浏览一个url(本地页面),thanks 新建的时候,选择,WCE MFC appWizard[exe] ,然后再选择Dialog base, 怎么样在该Dialog上添加一个ie控件,然后去浏览一个本地url? thanks… 查看全部问答> |
|
本人从朋友那里得到一份cadence(allegro)视频教程15.5板本,是一个培训班的内部视频讲义,清晰度很高,很具体详细,是自学的好资料。如果您没时间看书或者想很快学会allegro的话就请联系:13783696474 或者QQ:20247125 ...… 查看全部问答> |
|
1.最近我用sci调试RS485的时候遇到一个怪现象: 有时候(不是全部,重新加载程序的时候一般都是)cpu明明有数据发出来,SCIRX,SCITX波形正常,可是485驱动芯片出来的两线信号发不出来,示波器只能看到负半波.只要我把与其通信的人机界面的通讯口拔出来 ...… 查看全部问答> |
|
最近在学习FPGA方面知识,对时钟触发有了了解,但有好多问题有些不明白。希望大虾解释 如: always(posedge CLK) begin //执行任务块 end 假如时钟的周期为50nS,占空比50%;所执行的任务块比较耗时间,超过50nS,而此时任务块尚未完全执行完 ...… 查看全部问答> |




