单片机解密STM32 CAN发送和接收过滤原理
- 单片机解密#include "calculator_main.h"
- void Result(float fin);
- void Yunsuan(uint dat1);
- void Select(void);
- uchar num[] = {'0','1','2','3','4','5','6','7','8','9'};
- uchar CHAR[] = {'=','/','*','-','+'};
- int Num_1=0,Num_2=0;//用以存储运算符前后的两个数
- static float Tatal = 0;//存储运算结果
- uint FLAG = 0, FLAG_X = 0;
- int main(void)
- {
- //delay_init();
- LCD_Init();
- KEY_Init();
- while(1)
- {
- Select();
- }
- }
- /*******************************************************************************
- * 函 数 名 : Result()
- * 函数功能 : 在LCD1602第2行显示运算结果
- * 输 入 : 运算结果
- * 输 出 : 无
- *******************************************************************************/
- void Result(float fin)
- {
- uint k;
- char buf[16];
- LCDWriteCom(0xc0); //设置数据指针起点:第二行,第一个
- LCDWriteData('=');
- sprintf(buf,"%.2f",fin);//将结果 fin 转化为字符串 buf,然后向LCD1602打印
- for(k=0;k<strlen(buf);k++)
- LCDWriteData(buf[k]);
- }
- /*******************************************************************************
- * 函 数 名 : Yunsuan()
- * 函数功能 : 按下运算符键的处理
- * 输 入 : 键值
- * 输 出 : 无
- *******************************************************************************/
- void Yunsuan(uint dat1)
- {
- switch( CHAR[dat1-11] )//**********************************加减乘除
- {
- case '/':
- LCDWriteData('/');
- Select();
- if(FLAG==0) break;//若清零
- else if(FLAG>=1 && FLAG_X!=1) Select();//若为运算符键,则继续检测按键

芯片解密