一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 4828|回复: 34
收起左侧

[STM8/STM32] 忙里偷闲,用血糖仪板学STM8-----点亮LED

[复制链接]
发表于 2015-12-7 15:11 | 显示全部楼层 |阅读模式
程序抄倪大德老师的,LED接在原MEM键引脚PF5,按下电源键灯亮,放开灭
/*********************************************************************
系统功能: PA1口控制一位LED
目标系统: STM8S003f
应用软件: Cosmic CxSTM8
程序编写:倪大德
说 明:    01-   寄存器
*********************************************************************/

//头文件
//#include <STM8S003F3.h>
//#include <STM8l152r8.h>

#include <stm8l152r8.h>

_Bool LED1  @PF_ODR:5;
_Bool KEY   @PF_IDR:4;

//=============================================================================
//文件名称:delay
//功能概要:延时
//参数说明:nCount:延时长短
//函数返回:无
//=============================================================================
/*void delay(unsigned int nCount)
                {
                while(nCount!=0)
                {nCount--;}               
                }*/

//=============================================================================
//文件名称:GPIO_init
//功能概要:GPIO初始化
//参数说明:无
//函数返回:无
//=============================================================================
void GPIO_init(void)
                {
                   PF_DDR  = 0b00100000;   
                   PF_CR1  = 0b00110000;   //pf5推挽输出,PF4上拉输入
                   PF_CR2  = 0x00;
                   PF_ODR |= 0b11111111;  //输入脚要先写1,刚开始困在这了,跟51还是有区别啊
                         
                }

//=============================================================================
//文件名称:main
//功能概要:主函数
//参数说明:无
//函数返回:int
//=============================================================================
main()
{
        GPIO_init();
                while (1)
                {   
                    if(KEY==0)
                          {
                                                LED1 = 0;
                                }
                                else
                                  LED1 = 1;
                          
                }
}



1207151500.jpg
 楼主| 发表于 2015-12-7 15:16 | 显示全部楼层
本帖最后由 WOSS1001 于 2015-12-7 15:21 编辑

不知道操作寄存器的某位该怎么写?比如我要把PF_ODR第四位置一网上说这样PF_ODR_ODR4写,但是试了不行
发表于 2015-12-7 15:39 | 显示全部楼层
为啥不用库呢,超级方便!~
 楼主| 发表于 2015-12-7 15:43 | 显示全部楼层
因为是初学STM8,所以想先搞清楚寄存器。库看得云里雾里
发表于 2015-12-7 16:01 | 显示全部楼层
如果 你是用库   你需要这么一个 工具
但是这个 ......STM8S 系列  和 L 系列的 头文件 库大小写 不一样  PIN   和  Pin  ......

00112.png

stm8slib.rar

81.19 KB, 下载次数: 195, 下载积分: 一乐金币 -1

 楼主| 发表于 2015-12-7 16:04 | 显示全部楼层
谢谢!
发表于 2015-12-7 16:08 | 显示全部楼层
WOSS1001 发表于 2015-12-7 15:43
因为是初学STM8,所以想先搞清楚寄存器。库看得云里雾里

单片机会玩一种就OK,至于库,理解下库的操作过程就OK!~
发表于 2015-12-7 17:48 | 显示全部楼层
我看帖子看得云里雾里,门外汉哪……
发表于 2015-12-7 18:14 | 显示全部楼层
不错不错 玩stm8的越来越多了
发表于 2015-12-7 18:47 | 显示全部楼层
相比来说STM8还是简单的,

操作IO五个寄存器:
DDR 输入/输出选择
CR1 开漏/上拉/推挽
CR2 IO速度,和CR1搭配还有些选项
ODR 输出寄存器
IDR  输入寄存器.

当然比51是复杂了一点点而已,
虽然没有sbit,但是IAR有好用的  
PX_ODR_ODR1 这样现成的"寄存器"啊..

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-25 13:23 , Processed in 0.065129 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表