实例介绍
【实例截图】
一、开发说明
1、开发环境: IAR For STM8 V3.10.1
2、标准外设库: V1.6.2
3、硬件: 泉志stm8l151k4t6核酸检测板 & ST-LINK/V2下载调试器
二、例程说明
例程主要内容是:配置UART1:恢复USART1的缺省值-使能USART1外设时钟、将
USART1的TX&RX引脚映射到PA2&PA3(默认的是PC3&PC2)并配置IO功能,初始化
UART1,波特率9600,数据位8位,停止位1位,无奇偶校验,使能发送&接收,
在主函数中将系统时钟配置为16M,初始化UART1,然后打印信息(重定向printf
和getchar在main.c文件中实现),主函数循环中等待用户输入信息并打印。
注:本例程的测试条件需要一个USB转TTL连接技新STM8L051F3核心板与电脑PC,并
在电脑的上位机(一般是串口调试助手)实现。(TXD-->PA3、RXD-->PA2、GND-->GND)。
三、使用说明
1、打开工程
2、编译:Project--->Make(快捷键F7)
3、下载:Project--->Download and Debug(快捷键Ctrl D)
4、效果:上电打印:UART1的测试例程,重定向C语言库printf&scanf函数
Enter Text
四 开发过程: 2020/08/14 状态机实现4按键 数码管595*2 四位显示 模块编程
09/02 iic 读取ds3231 通过逻辑分析仪0x00 0x02的值。 u8 IIC_ReadByte(u8 ADDR)
没有在头文件里声明,导致传参0x00 逻辑分析仪显示传的是0x0f,数据就异常。非常奇怪啊!
在头文件里声明后正常。
{
val=GPIO_ReadInputData(GPIOB)&0x0f;
switch(KeyScanState)
{
case KeyScanState_0:
{if( val!=0x0f )
KeyScanState=KeyScanState_1;
val_back = val;
break;
}
case KeyScanState_1 :
{ //if(val!=0x0f)
if(val=val_back)
{
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)==0) KEY1_CLICK();
else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==0) KEY2_CLICK();
else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2)==0) KEY3_CLICK();
else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_3)==0) KEY4_CLICK();
KeyScanState=KeyScanState_2;
}
else {KeyScanState=KeyScanState_0;}
break;
}
case KeyScanState_2 :
{ if(val==0x0f) KeyScanState=KeyScanState_0;
break;
}
default: break;
}
flag_T4=0;
}
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论