目录

前言

一、屏幕设计

二、stm32部分代码

1.main.c

2.usart.c

3.其余代码

总结:程序工程+屏幕文件链接



前言

前段时间花3天时间做的大创项目智能药箱,做完总结一下。

一、屏幕设计

主界面:

时钟设置:

服药设置:

出药测试:

短信测试:

二、stm32部分代码

1.main.c

#include "stm32f4xx.h"
#include "usart.h"
#include "delay.h"
#include "servo.h"
#include "motor.h"
#include "thumb.h"
#include "worm.h"
#include "stepmotor.h"
#include "infrared.h"
#include "ds18b20.h"
//#include "exti.h"
#include "key.h"
#include "LD3320.h"
#include "jetson.h"
#include "rubbish.h"
#include "voice.h"
#include "rtc.h"#include "usmart.h"
//#include "lcd.h"
//#include "sram.h"
//#include "malloc.h"
//#include "w25qxx.h"
//#include "sdio_sdcard.h"
//#include "ff.h"
//#include "exfuns.h"
//#include "fontupd.h"
#include "text.h"
//#include "touch.h"
#include "usart3.h"
#include "sim800c.h"
/*********************************************************************************************************
*                                          全局变量
*********************************************************************************************************//*********************************************************************************************************
*                                          函数声明
*********************************************************************************************************/
void tablet(int medicine_count)//药片
{int i;for(i=0;i<medicine_count;i++){set_Angle_2(0);//药片  TIM4 通道2 B7delay_ms(1000);set_Angle_2(100);//胶囊  TIM4 通道2 B7delay_ms(2000);}}
void pill_1(int medicine_count)//药丸1
{int i;for(i=0;i<medicine_count;i++){TIM_SetCompare1(TIM4,800);//药丸1 TIM4 通道1 B6delay_ms(1000);set_Angle_1(70);//药丸1 TIM4 通道1 B6delay_ms(2000);}
}
void pill_2(int medicine_count)//药丸2
{int i;for(i=0;i<medicine_count;i++){TIM_SetCompare4(TIM4,700);//药丸2 TIM4 通道4 B9delay_ms(1000);set_Angle_4(80);//药丸2 TIM4 通道4 B9delay_ms(2000);}
}
void capsule(int medicine_count)//胶囊
{int i;for(i=0;i<medicine_count;i++){set_Angle_3(0);//药片  TIM4 通道3 B8delay_ms(1000);set_Angle_3(100);//药片  TIM4 通道3 B8delay_ms(2000);}
}
void Medicien(int medicine_box,int medicine_count)
{switch(medicine_box){case(1):pill_1(medicine_count);break;case(2):tablet(medicine_count);break;case(3):capsule(medicine_count);break;case(4):pill_2(medicine_count);break;}
}
void Medicien_star(void)
{int i;if(page==16){while(page==16);}if(page==17){ while(page==17){if(medicine_flag==7){for(i=0;i<8;i+=2){Medicien(medicinebuf[i],medicinebuf[i+1]);}page=0;break;}}    }if(page==18){pill_1(2);tablet(2);capsule(2);pill_2(2);page=0;}
}int main(void)
{   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);delay_init(168);uart_init(9600);   //串口初始化为9600usart3_init(115200);                         //初始化串口3     KEY_Init();TIM4_PWM_Init();My_RTC_Init();               //初始化RTCNVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2RTC_Set_WakeUp(RTC_WakeUpClock_CK_SPRE_16bits,0);      //配置WAKE UP中断,1秒钟中断一次set_Angle_1(70);//药丸1 TIM4 通道1 B6set_Angle_2(100);//胶囊  TIM4 通道2 B7set_Angle_3(100);//药片  TIM4 通道3 B8set_Angle_4(80);//药丸2 TIM4 通道4 B9delay_ms(1000);while(1){     switch(page){case 0:break;case 1:main_interface_show();break;case 2:rtc_show_set();break;case 7:voice_IO(1);break;
//            case 8:play_back();break;
//            case 9:play_back();break;
//            case 10:play_back();break;
//            case 11:play_back();break;case 16:Medicien_star();break;case 17:Medicien_star();break;case 18:pill_1(2);tablet(2);capsule(2);pill_2(2);page=1;break;case 19:voice_IO(7);break;case 20://usmart_dev.init(168);//初始化USMARTsim800c_test(1);break;case 21:sim800c_test(2);break;}}
}

2.usart.c

void USART1_IRQHandler(void)                 //串口1中断服务程序
{u8 Res;
#if SYSTEM_SUPPORT_OS       //如果SYSTEM_SUPPORT_OS为真,则需要支持OS.OSIntEnter();
#endifif(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中断(接收到的数据必须是0x0d 0x0a结尾){Res =USART_ReceiveData(USART1);//(USART1->DR);   //读取接收到的数据if((USART_RX_STA&0x8000)==0)//接收未完成{if(USART_RX_STA&0x4000)//接收到了0x0d{if(Res!=0x0a)USART_RX_STA=0;//接收错误,重新开始else USART_RX_STA|=0x8000;  //接收完成了 }else //还没收到0X0D{   if(Res==0x0d)USART_RX_STA|=0x4000;else{USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;USART_RX_STA++;if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收   }      }}     if((page==5||page==6)&&time_flag<=3){timebuf[time_flag]=Res;time_flag++;}else if((page==10)&&tea_flag<=4){teabuf[tea_flag]=Res;if(teabuf[0]<10){page=teabuf[0];}tea_flag++;}else if((page==17)&&tea_flag<=7){medicinebuf[medicine_flag]=Res;medicine_flag++;}else if(page!=5&&page!=6&&page!=10&&page!=17){switch(Res){case 0x01:page=1;break;case 0x02:page=2;break;case 0x03:page=3;break;case 0x04:page=4;break;case 0x05:page=5;break;case 0x06:page=6;break;case 0x07:page=7;break; case 0x08:page=8;break;case 0x09:page=9;break;case 0x0a:page=10;break;case 0x0b:page=11;break;case 0x0c:page=12;break;case 0x0d:page=13;break;case 0x0e:page=14;break;case 0x10:page=16;break;case 0x11:page=17;break;case 0x12:page=18;break;case 0x13:page=19;break;case 0x14:page=20;break;case 0x15:page=21;break;case 0x16:page=22;break;case 0x17:page=23;break;case 0x18:page=24;break;case 0x19:page=25;break;}}}
#if SYSTEM_SUPPORT_OS   //如果SYSTEM_SUPPORT_OS为真,则需要支持OS.OSIntExit();
#endif
}
#endif  

3.其余代码

这个工程是基于正点原子的SMI600短信模块测试程序,工程代码我已经打包好上传,有需要的小伙伴可以在评论区留言。


总结:程序工程+屏幕文件链接

程序代码工程链接:基于STM32F407的HMI USART串口屏智能药箱设计.zip

第九届全国大学生机械设计创新大赛基于STM32F407的HMI USART串口屏智能药箱设计相关推荐

  1. 第九届全国大学生GIS应用技能大赛(A上午)

    一.案例背景   雷尼尔山国家公园是一座以雷尼尔山为中心的公园,雷尼尔山是美国最高的火山,拥有除了阿拉斯加以外最大的单一冰河以及最大的冰河系统.    我们现在有一份雷尼尔山国家公园地形图的一部分扫描 ...

  2. 第六届全国大学生生物医学工程创新设计竞赛参赛经历

    前言/背景 第六届全国大学生生物医学工程创新设计竞赛是生物医学工程及相关专业锻炼自己创新实践能力的一个很好地平台,我通过实验室师兄师姐的分享得知了这个比赛,又在老师的推荐下进行组队参赛.2020年因为 ...

  3. 全国大学生计算机应用能力与信息素养大赛官网,第九届全国大学生计算机应用能力与信息素养大赛...

    经过激烈角逐,第九届全国大学生计算机应用能力与信息素养大赛(暨海峡两岸产业核心技能素养大赛)于2019年5月30日在首都经贸大学圆满结束. 本届大赛共有200多个本专科院校代表队,近15000名同学参 ...

  4. “曹光群杯·第二届全国大学生绿色化妆品创新创意大赛”启动仪式在沪举办

    2023年5月12日,"曹光群杯·第二届全国大学生绿色化妆品创新创意大赛"启动仪式在2023中国化妆品产学研协同创新论坛上举行. 曹光群杯·第二届全国大学生绿色化妆品创新创意大赛启 ...

  5. 第九届全国大学生计算机应用能力与信息素养,我院师生在第九届全国大学生计算机应用能力与信息素养大赛中取得优异成绩...

    我院师生在第九届全国大学生计算机应用能力与信息素养大赛中取得优异成绩 供稿:公共计算机 审核:院长办公室  日期:2019-06-03  点击量:2047 5月31日-6月2日,第九届全国大学生计算机 ...

  6. 赛宁首创革新赛制助力人才培养 | 第十六届全国大学生信息安全竞赛-创新实践能力赛全面启动!

    ​​为积极响应国家网络空间安全人才战略,加快攻防兼备创新人才培养步伐,实现以赛促学.以赛促教.以赛促用,推动网络空间安全人才培养和产学研用生态发展,由国防科技大学与中国科学技术大学联合承办的第十六届全 ...

  7. 第九届全国大学生智能汽车竞赛获奖名单

    第九届全国大学生智能汽车竞赛获奖名单 序号 学校 队名 竞赛组别 获奖等级 1 南京师范大学 先驱者 摄像头组 特等奖 2 北京科技大学 北京科技大学摄像头组一队 摄像头组 特等奖 3 电子科技大学 ...

  8. “世格杯”第一届全国大学生外贸跟单技能大赛顺利举行

    2012年12月1日上午10时,"世格杯"第一届全国大学生外贸跟单技能大赛在江苏经贸职业技术学院顺利举行.来自全国47所院校的102名参赛选手进入赛场,进行外贸跟单技能的比试. 转 ...

  9. 第七届全国大学生GIS技能应用大赛试题答案及数据下载(下午)分析

    一.题目背景 生态环境敏感性是指生态系统对区域内自然和人类活动干扰的敏感程度,它反映区域生态系统在遇到干扰时,发生生态环境问题的难易程度和可能性的大小,并用来表征外界干扰可能造成的后果,即在同样干扰强 ...

  10. 第九届全国大学生光电设计竞赛——赛题1:基于智能手机的苹果糖度无损测量新手攻略指南

    引言: "小哥,买苹果嘛?" (你摇了摇头,目光充满了坚定) "所以你又摇头又眼神坚定的到底买不买,数电不定态是吧--咳咳,看打扮你是光电村里新来的冒险者?那建议你去看看 ...

最新文章

  1. 使用Python和OpenCV进行文本偏斜校正
  2. Print all attributes and values in a Javascript Object
  3. linux开始时间and结束时间,Linux NTP configure and Hangcheck-time
  4. 优化PHP程序的方法(温故知新)
  5. SAP Spartacus 中的 Commands and queries
  6. 心痛!常德网约车司机遇害 滴滴回应:已成立应急处置小组
  7. 各种陷进,盘点那些坑你没商量的JDK方法
  8. java单例默认_Spring bean为什么默认是单例
  9. 在opencv3中实现机器学习之:利用svm(支持向量机)分类
  10. Parcel React 开发服务器热更新实战
  11. mex 1 hello,world
  12. .net模式子窗口传值给父窗口
  13. 职业计算机试题,职业高中计算机专业综合练习试题一
  14. apache tomcat linux 配置,linux下apache+tomcat配置
  15. TP5路由知识简单个人汇总
  16. VB数据库中EOF和BOF的认识与用法
  17. 劫持无处不在,如何应对镜像劫持?三大手段应对重定向
  18. autojs微博_auto.js的使用以及薅羊毛插件示例
  19. Hexo+Github轻松搭建个人博客
  20. 本科三本的计算机博士,读书中的我——从三本本科到985博士

热门文章

  1. oracle查询怎样更效率,Oracle提高查询效率的方法
  2. 圆柱体积怎么算立方公式_圆柱体积公式是什么,怎么算,
  3. 拼音字母匹配排序php,小程序实现仿通讯录,拼音字母排序
  4. 【校招VIP】考研二战长时间没工作,面试被问为什么有职场空窗期?你应该这样回答
  5. 谷歌浏览器误删怎么办
  6. GPS误差分析及DGPS
  7. 大数据安全国内外技术发展现状与趋势现状
  8. CSS3 文字边框 -webkit-text-stroke
  9. 要怎么在计算机里清除桌面内存,告诉你电脑内存怎么清理
  10. ffmpeg录制麦克风声音和pc内部声音(如播放歌曲)---混音--修正