嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 5 元微信扫码支付:5 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
状态机实现4按键 数码管595*2 四位显示 模块编程
一、开发说明
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;
}