当 I/O 输出低电平时,LED 导通,LED被点亮;当 I/O 输出高点平时,LED 截止,LED 熄灭;当 I/O 周期性的交替输出高电平、低电平,LED就会闪烁
void InitLED(void)
{
PC_DDR|=0x08;//设置 PC3 为输出模式
PC_CR1|=0x08;//设置 PC3 为推挽输出
PC_CR2|=0x00;//设置 PC3 为 10MHz 快速输出
PE_DDR|=0x01;//设置 PE0 为输出模式
PE_CR1|=0x01;//设置 PE0 为推挽输出
PE_CR2|=0x00;//设置 PE0 为 10MHz 快速输出
PD_DDR|=0x08;//设置 PD3 为输出模式
PD_CR1|=0x08;//设置 PD3 为推挽输出
PD_CR2|=0x00;//设置 PD3 为 10MHz 快速输出
}
void main( void )
{
InitLED(); //初始化 LED 端口
while(1)
{
PC_ODR&=0xF7;//PC_ODR 第 3 位清零,输出低电平
PE_ODR&=0xFE; //PE_ODR 第 0 位清零,输出低电平
PD_ODR&=0xF7; //PD_ODR 第 3 位清零,输出低电平
Delay(5000); //延时
PC_ODR|=0x08;//PC_ODR 第 3 位置位,输出高电平
PE_ODR|=0x01; //PE_ODR 第 0 位置位,输出高电平
PD_ODR|=0x08; //PD_ODR 第 3 位置位,输出高电平
Delay(5000); //延时
}
}
在代码中出现的|=是在嵌入式 C 语言开发中比较常用的位操作方式,PC_DDR|=0x08;这句代码用来将PC_DDR寄存器的[3]位置位,而不影响寄存器的其他位。这句代码实质上是将 PC_DDR寄存器的值与0x08进行或操作,然后再赋值给 PC_DDR 寄存器。
在程序中出现的&=也是嵌入式 C 语言中比较常用的位操作方式,它用来将某位清零,而不影响寄存器的其他位。它实质上是将寄存器的值与等号后面的值进行与操作,然后再赋值给寄存器。
位操作
#include "iostm8s208mb.h"//主控芯片的头文件
/************************常用数据类型定义*************************/
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;
/*************************端口/引脚定义区域***********************/
#define LED PI_ODR_ODR0//连接至LED引脚PI0
/**************************函数声明区域***************************/
/**************************主函数区域*****************************/
void main(void)
{
PI_DDR_DDR0=1; //配置PI0端口为输出模式
PI_CR1_C10=1; //配置PI0端口为推挽输出模式
PI_CR2_C20=0; //配置PI0端口低斜率输出2MHz
LED=0; //让PI0引脚输出低电平
}
上一篇:搭建STM8S001开发环境
下一篇:关于STM8S001J学习过程记录
推荐阅读最新更新时间:2024-11-12 11:45
推荐帖子
- 如何解析键盘手柄发过来的命令并控制云台动作(pelco-D/P协议)?
- 键盘(例如PelcoKBD-300,或者SamsungSPC-1010键盘)手柄通过RS485串口发送命令给主程序,主程序解析后作用于另外一台云台设备,云台设备用的是标准的Pelco-D和Pelco-P协议,网上找到的资料都是直接写云台设备的程序,我没接触过键盘手柄控制的模式,不知道键盘手柄发送过来的命令是什么格式的??读RS485出来的数据又怎么解析呢?麻烦各位多帮忙。。如何解析键盘手柄发过来的命令并控制云台动作(pelco-D/P协议)?帖子沉啦?
- xiguajing 嵌入式系统
- STM32单片机是不是写内部FLASH时不可以调试
- 我在使用官方的FLASH_EraseProgram例程时,发现只要打开调试,则flash擦除程序HAL_FLASHEx_Erase就会失败。无论断点下到什么位置都会失败。STM32单片机是不是写内部FLASH时不可以调试看你的HAL_FLASHEx_Erase要擦除哪一块区域。如果要擦除当前正在执行的程序,那应该会失败。对,楼上老师说的是这样。 我擦除的是片内最后一块扇区,MCU有128Kflash,ADDR_FLASH_PAGE_63,2K一个FLASH块,程序应该没
- bigbat stm32/stm8
- 各位高手好!如今搞java web 开发好些,还是搞嵌入式好些?
- 请大家例出他们好处,让我比较一下,可以吗?我很想搞嵌入式开发,但不想放弃javaweb开发方面的东西。请大家帮我拿拿主意!各位高手好!如今搞javaweb开发好些,还是搞嵌入式好些?我是菜鸟,首先我个人认为各有优势吧!看个人兴趣了。当然是嵌入式开发现在搞PC上的软件不值钱了一抓一大把我也是楼主这样的想法,我同样是做javaWeb应用的.而现在又想做嵌入式,不过不知道是不是应该转行...废话,嵌入式火的程度,你又不是不知道,但是嵌入式的门槛比较高,想象清楚啊~垃
- huangjinhu 嵌入式系统
- 如何通过串口通信来改变数码管的所显示的东西
- 在这个代码中,我想用串口助手来控制数码管的显示,但是我并不想让显示的程序放在interrupt4中(也就是说想在主函数中来控制数码管的该变)#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbitdu=P2^6;sbitwe=P2^7;uchara;charcodetable={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x
- 胡豆豆的春天 51单片机
- ^@^深圳安科/收购/天馈线分析仪!!!!!!
- lwq21 单片机
- 瑞萨CPK-RA6M4 开发板测评+开箱搭建环境
- 申请的瑞萨CPK-RA6M4开发板已经到手了,下面看下开箱和搭建环境。第一见开发板把手册全部打印成册的,快速入门查阅还是不错的。这款单片机内核基于Cortex-M33是最近今年推出的内核,主打安全性能上的升级。也就是里面的TrustZone。看下开发板基本是排针引出了IO,也保留了arduino接口,板载了光照度传感器,J-link仿真器件,但没有串口直接转USB比较不方便使用了。RT-Thread是对其支持了,所以本次也都将
- 流行科技 瑞萨电子MCU