STM8S学习

上传人:学*** 文档编号:299782676 上传时间:2022-05-28 格式:DOCX 页数:3 大小:16.37KB
返回 下载 相关 举报
STM8S学习_第1页
第1页 / 共3页
STM8S学习_第2页
第2页 / 共3页
STM8S学习_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《STM8S学习》由会员分享,可在线阅读,更多相关《STM8S学习(3页珍藏版)》请在金锄头文库上搜索。

1、本文格式为Word版,下载可任意编辑STM8S学习 STM8S学习简朴操作单个IO口 刚接触STM8系列单片机,学习了简朴端口的操作,今天就来共享我的成果。由于是刚接触,各位见笑了。 STM8系列单片机每一个端口都有一个输出数据寄放器 (ODR),一个引脚输入寄放器 (IDR)和一个数据方向寄放器 (DDR)。寄放器1(CR1)和操纵寄放器2(CR2)用于对输入/输出举行配置。任何一个I/O引脚可以通过对DDR,ODR,CR1和CR2寄放器的相应位举行编程来配置。下面是我截取的STM8教程里的片面配置表格: I/O模式 DDR位 CR1位 CR2位 配置模式 0 0 0 悬浮输入 0 1 0

2、上拉输入 输入 0 0 1 中断悬浮输入 0 1 1 中断上拉输入 1 0 0 开漏输出 1 1 0 上拉输出 输出 1 X 1 输出(最快速度10MHz) X X X 真正的开漏输出(针对某些特点引脚) 大家根据上表对端口举行配置理应没有问题,但是对某一个端口举行配置时可能会遇上麻烦。那怎么对单个端口举行配置呢?我再附上一个表格,以便说明问题。 地址偏移值 0x00 寄放器 7 6 5 4 3 2 1 0 Px_ODR ODR7 ODR6 ODR5 ODR4 ODR3 ODR2 ODR1 ODR0 0 0 0 0 0 0 0 0 复位值 Px_1DR 复位值 IDR7 0 IDR6 0 ID

3、R5 0 IDR4 0 IDR3 0 IDR2 0 IDR1 0 IDR0 0 0x01 0x02 Px_DDR DDP7 DDP6 DDP5 DDP4 DDP3 DDP2 DDP1 DDP0 0 0 0 0 0 0 0 0 复位值 Px_CR1 CR17 CR16 0 0 复位值 Px_CR2 CR27 CR26 0 0 复位值 CR15 CR14 CR13 CR12 0 0 0 0 CR25 CR24 CR23 CR22 0 0 0 0 CR11 0 CR10 0 0x03 0x04 CR21 CR20 0 0 假设同名端口(PA端口、PB端口等等)都有8个IO口70,因此对应上表我们察觉

4、正好一个IO口对应一列,譬如7所在的列对应7号IO口,0所在的列对应0号IO口,于是单个IO口(假设是PB1)配置程序可写为: PB_DDR = 0x02; / 配置PB端口的方向寄放器,PB1为输出模式 PB_CR1 = 0x02; / 设置PB1为推挽输出 PB_CR2 = 0x00; 下面附上PB1口操纵LED闪烁的程序 #include void GPIO_init(void) PB_DDR = 0x02; / 配置PB端口的方向寄放器,PB1为输出模式 PB_CR1 = 0x02; / 设置PB1为推挽输出 PB_CR2 = 0x00; void delay (void) unsig

5、ned char i,j,k; for(i=10;i0;i-) for(j=202;j0;j-) for(k=81;k0;k-); main() GPIO_init();/端口初始化 CLK_DeInit();/恢复时钟寄放器 CLK_HSICmd(ENABLE);/启用内部高速振荡器(HSI 16MHz) CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);/主时钟=16MHZ/1=16MHz CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);/CPU时钟=主时钟/1=18MHZ while (1) PB_ODR = 0x02;/PB1输出高电平,LED亮 delayms(); PB_ODR = 0x00; /PB1输出低电平,LED灭 delayms(); 3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号