- 博客(21)
- 资源 (32)
- 收藏
- 关注
原创 每节课都是一个项目 手把手用STM32打造联网气象站-13-万字讲清SPI接口和相关驱动
SPI=SerialPeripheralInterface,是串行外围设备接口,是一种高速,全双工,同步的通信总线。常规只占用四根线,节约了芯片管脚,PCB的布局省空间。我们日常用的最多的SPI接口包括FLASH,OLED屏幕,AD采样芯片,加速度传感器等。.........
2022-07-28 22:21:42
1126
1
原创 每节课都是一个项目 手把手用STM32打造联网气象站-12-万字讲清I2C的来龙去脉
计算机和嵌入式科学中有一个说法,叫做硬件越简单,软件越复杂,硬件越复杂,软件越简单。比如前面讲到的FMSC接口,硬件特别复杂,连线非常多,而软件就很简单,只需要几个管脚进行组合,就可以读出数据。而本节要讲的I2C接口,则是相反的例子硬件非常简单,只需要连接两根线,但是软件缺比较复杂,需要较多的时序组合,才能够形成读写操作。...........................
2022-07-25 20:46:31
3248
1
原创 每节课都是一个项目 手把手用STM32打造联网气象站-11-彻底让你搞懂按键检测
按键检测是我们常常使用的功能。按键检测实现有很多种方法。下面我们详细介绍按键检测的3种方法,然后再深入探讨一下,如何实现单击,双击,短按,长按的按键检测。相信这部分内容值得你学习和记录,也一定在后面项目种会用的上。............
2022-07-18 16:57:59
1067
原创 每节课都是一个项目 手把手用STM32打造联网气象站-10-带有屏幕显示的番茄时钟
上面详细讲解了如何搭建开发环境,如何用vscode来编辑代码,使得代码更加美观。2.上面讲解了如何点亮LED和SoftDelay并通过例子讲解了使用和不使用volatile的区别。如果在面试中,别人问到volatile的区别,你能够把这个例子讲出来,相信肯定能够大大加分。3.讲解了GPIO初始化步骤,如何规范的使用头文件,如何避免头文件被反复包含。前面3节比较简单,是为了使得学习曲线不要太陡峭,避免课程变为劝退课。4.第四节课内容开始明显增加,重点讲解了定时器以及中断的使用方法。...
2022-07-17 16:41:42
638
原创 每节课都是一个项目 手把手用STM32打造联网气象站-9-用LCD显示中文英文和图片
一种字体库必须包括字符宽度,字符高度,以及对应ASCII表的地址信息。我们把这些信息放在一起,构建一个结构体。备注上面的typedefstruct_tFont{}sFont这种写法,可以用_tFontfont1这种方式初始化,相当于定义了两种结构体类型,第一种是_tFont,第二种是sFONT,两种可以互换,_tFont就是sFONT,sFONT就是_tFont;如果把_tFont去掉,写成typedefstruct{}sFONT,语法上面也是没有任何问题的。.........
2022-07-17 14:43:37
2898
1
原创 每节课都是一个项目 手把手用STM32打造联网气象站-8-面子工程-学会点亮LCD屏幕
完成了STM32基础三板斧,用这个三板斧完成一些项目,我们接下来需要开始面子工程,点亮LCD屏幕。我们把LCD屏幕的教程提前,主要是使得教程更加有趣味性。我们每个人都会有一段时间,沉迷于某一个游戏之中,不能自拔,连续七八个小时玩游戏,熬夜到两三点,这个可能都是常态。为何游戏有这么大的魔力?游戏的吸引力来自于哪里?我们是否可以学习,让编程也有同等吸引力呢?游戏的魔力主要来自于这样几点:1.及时反馈:游戏总是每隔一段时间,会有一个正反馈,比如刷到某个装备,或者得到某个奖励。玩游戏的人不需要耗费太多的精力,就能够
2022-07-13 21:14:32
4440
原创 每节课都是一个项目 手把手用STM32打造联网气象站-7-诚不欺我,用TIM, GPIO, USART三板斧干项目(挖坑篇)
终于,我们把STM32的入门三板斧的武功讲完了。有了这三板斧,我们就可以完成一些基本的项目了。终于熬出头了,从这一节开始,我们就用这三板斧,来玩不同的项目了。当然。我们的项目不仅仅是玩,每一个项目都至少包含下面元素:1.高耦合低内聚,便于移植,便于重用;2. 不仅仅是好玩,而且有用,在其他项目中常常用得到;敬请收藏,关注,从下面开始,带你做项目带你飞!现代人很容易被各种琐事打扰,一会儿一个微信,一会儿一个电话,一会儿一条手机弹窗,让人们很难真正安静下来,从事写作或者学习。为了解决这个问题,我们利用手边的ST
2022-07-07 21:09:20
1171
原创 每节课都是一个项目 手把手用STM32打造联网气象站-6-STM32基础三件套-USART的初始化和使用
STM32基础系列包含了三件套,掌握了这三件套,类似于掌握了程咬金三板斧,就可以开始干项目,创造价值了。毕竟,真正的编程是一项实战性很强的技术,掌握编程主要靠实战,而不是靠知识灌输。STM32的编程三板斧:我们已经完成了前面2板斧,并且完成了一些有趣有用的例子。接下来我们讲解重要的第三板斧:USART串口的使用。 首先我们必须理解,USART串口非常之重要!我们在物联网项目中用到的各类模块:WIFI模块,蓝牙模块,ZIGBEE模块,4G模块,LORA模块,NBIOT模块,全部都是采用串口方式,和MCU进行通
2022-07-07 20:11:39
821
原创 每节课都是一个项目 手把手用STM32打造联网气象站-5-STM32基础三件套-采用TIM定时器,实现无阻塞LED任意占空比和次数闪烁
本节主要目的是:1. 通过项目学编程:通过实现一个小小的项目功能,梳理编码思路;2. 积累代码库:实现的这个小功能,后续可以不断使用并且在多处移植;实现一个LED控制函数,可以控制LED点亮x毫秒,熄灭y毫秒,并重复z次;为了避免阻塞,不能采用任何delay。由于不能使用delay函数,我们只能按照上一节提到的方法,将LED分为两种状态:熄灭状态和点亮状态。在熄灭状态时,设定倒计时时间y,在定时器中自减;自减为0后,点亮LED,并设定倒计时时间x,同样再定时器自减。如此反复z次,即可实现led按照指定占空比
2022-07-06 18:41:19
1399
原创 每节课都是一个项目 手把手用STM32打造联网气象站-4-STM32基础三件套-TIM定时器和SYSTICK初始化
STM32基础系列包含了三件套,掌握了这三件套,类似于掌握了程咬金三板斧,就可以开始干项目,创造价值了。毕竟,真正的编程是一项实战性很强的技术,掌握编程主要靠实战,而不是靠知识灌输。STM32的编程三件套就是:前面详细讲了第一板斧,如何初始化GPIO,顺道讲了如何跟着ST学编程,如何降低代码之间的耦合性。详细可以复习一下下面:(24条消息) 每节课都是一个项目 手把手用STM32打造联网气象站-3-STM32基础三件套-掌握GPIO初始化_可志嵌入式的博客-优快云博客本节讲解第二板斧,如何使用TIM定时器
2022-07-05 21:23:35
1879
1
原创 每节课都是一个项目 手把手用STM32打造联网气象站-3-STM32基础三件套-掌握GPIO初始化
STM32基础系列包含了三件套,掌握了这三件套,类似于掌握了程咬金三板斧,就可以开始干项目,创造价值了。毕竟,真正的编程是一项实战性很强的技术,掌握编程主要靠实战,而不是靠知识灌输。STM32的编程三件套就是:第二个是TIM定时器,这个很多人不容易理解,毕竟很多教程中,都仅仅用TIM定时器,作为PWM控制LED灯的亮度。但是想象一下,真正项目需求中,哪怕是LED点灯,一般描述也不是"LED闪两下",而是:“LED熄灭0.9S”,然后“LED点亮0.1S”,并且重复3次。也就是:需要非常精准的定时需求。三件套
2022-07-04 17:44:44
825
原创 每节课都是一个项目 手把手用STM32打造联网气象站-1-安装开发环境
工欲善其事必先利其器,我们为了打造一个可以联网的智能气象站,先得把集成开发环境IDE整利索。我们这个教程的集成开发环境包括了2部分。第一部分是常见的KEIL,本文会讲解KEIL的安装和使用。第二部分是更加常见的vscode,本教程后续主要代码将在vscode中编写。vscode中做代码编辑,显示效果更好一些,而且搜索,查找等功能也更加强大。另外,当我们后续切换为其他编辑环境时,可以方便的继续使用vscode编辑代码,而可以用不同的编译工具进行项目编译。接下来分为两部分,讲解搭建开发环境。 下面将细细道来,一
2022-07-02 21:35:43
1811
原创 Cadence全家桶Capture+Allegro流程-5-编辑焊盘并制作封装
Cadence作为专业绘图工具,在高速设计领域是王者一般的存在。但是从易用性角度来说,比AD还是有些差距。接下来我们从Padstack焊盘编辑器讲起,把Allegro的使用讲解一遍,并结合实际的一个小项目的案例进行详细讲解。同样,我们这个教程不是针对专业LAYOUT工程师,而是针对智能硬件工程师。因此我们的教程会讲解原理;讲解样品制作过程;但是并不会讲解cadence的各种细节,因为作为智能硬件工程师,往往并不需要掌握cadence的方方面面。作为专业layout工程师,可能需要掌握的更多。
2022-06-13 18:10:46
4447
原创 Cadence全家桶Capture+Allegro流程-5-画完原理图后必做的几件事
完成原理图后,必须做这样几件事情,否则设计可能前功尽弃。第一:DRC检查,检查设计中的一些单端网络,或者其他简单错误;第二:输出原理图,用来调试时候方便查看;第三:导出BOM,用来物料采购;第四:导出网表,用来在allegro中绘图;第五:处理网表导出过程中的一些错误;......
2022-06-07 21:59:52
3597
原创 Cadence全家桶Capture+Allegro流程-4-带你从头开始画原理图
从头开始画一张原理图,让你学会用Capture画原理图的神奇操作。
2022-06-03 21:51:39
1637
原创 Cadence全家桶Capture+Allegro流程-3-熟悉Capture CIS
本节介绍了Capture CIS的基本界面功能,原理图库的管理,如何将新期间放置到原理图库中,如何管理我们的日常库,原理图库和PCB库是如何交互的。
2022-06-02 22:40:02
3074
原创 Cadence全家桶Capture+Allegro流程-2-创建PCB和元器件封装
上一节完成了原理图库创建,我们顺利完成了ESP32-WROOM-E的原理图的制作过程,并且把这个库放在了SCH目录下。
2022-06-02 21:15:37
978
原创 Cadence全家桶Capture+Allegro流程-1-创建原理图库和元器件库
虽然AD非常普及,也很方便,但是对于高端设计,Cadence全家桶还是必不可少的。此文档记录用Cadence Capture绘制原理图和allegro绘制PCB的流程。
2022-06-02 16:37:25
3651
原创 保姆级教程手把手教你使用Arduino开发ESP32-2-熟悉常用示例
在真正玩转开发板和创新设置之前,我们得先熟悉一下常用的示例。如果说后面的各个创意设计是大餐,那么前面的常用示例,就是前菜。好像也不对,前面的创意设计应该是各种食材。熟悉各种食材的属性,才能够进行不同的搭配。
2022-06-02 14:35:36
5147
原创 保姆级教程手把手教你使用Arduino开发ESP32-1-搭建开发环境
Arduino简单,易学,好用,资料全,特别适合小白新手上路。ESP32频率高,价格低,内置蓝牙WIFI,支持语音识别LVGL等,是国产芯片中神一样的存在,大有取代STM32的趋势,再不学就晚了。但是原生的ESP_IDF确实对新手不太友好。ESP32+ARDUINO强强联手,价格便宜量又足,功能强大,界面友好,创意多多。接下来自己挖坑自己填,用ESP32+
2022-06-01 20:42:04
35843
番茄时钟串口移植的指令测试
2022-07-21
通过串口获取完成的番茄个数
2022-07-21
按键检测代码,实现短按,长按,连续按下检测功能。全程通畅无阻塞。 详细说明见博客: http://t.csdn.cn/DP43e
2022-07-20
通过串口控制单个番茄时钟时长
2022-07-19
番茄时钟通过移植增设串口通信,并通过串口环回测试
2022-07-19
串口收发指令代码,实现用指令获取硬件版本号与软件版本号
2022-07-19
按键检测代码,利用定时器实现按键防抖,全程无阻塞方式。
2022-07-19
按键检测代码,采用delay_ms方式,进行延时防抖。优点是不需要等到按键弹起就可以检测,缺点是会产生delay阻塞。
2022-07-19
实现番茄时钟暂停功能,设置番茄时钟结构体替代取代控制番茄时钟的全局变量,详情见博客
2022-07-19
摩尔斯电码,实现将摩尔斯电码通过串口进行打印,通过蜂鸣器进行发送,具体详情见博客
2022-07-19
按键检测代码,采用while循环方式,死等按键弹起。优点是稳定且实现了按键防抖,缺点是while循环在按键卡死状态下,会导致系统
2022-07-18
番茄时钟,可以通过串口改变番茄时钟时间,完成一个番茄时间后,单片机会通过串口将完成的番茄个数发送给串口上位机
2022-07-18
摩尔斯电码,实现将字符转为摩尔斯电码的主体功能,能将摩尔斯电码通过串口上位机进行显示
2022-07-17
用来演示无阻塞方式按键防抖代码开发 1. 完成了TIM, USART, LED GPIO初始化,从这里开始修改代码
2022-07-17
STM32创建黑白图片和彩色图片,在TFT LCD上实现显示。详细说明见博客:http://t.csdn.cn/SofN7
2022-07-17
演示讲解从头开始创建中文字库,并完成中文显示的过程:1. 创建中文mini字库2. 在中文mini字库中查找字符
2022-07-15
1.1创建中文字;1.2将中文字创建为中文字库;1.3中文字库的显示;1.4按照顺序显示中文;
2022-07-14
实现了番茄时钟的25分钟计时,开机后led闪烁25次,每过1分钟闪烁次数递减一次。计时结束后,蜂鸣器蜂鸣25次。
2022-07-14
实现LCD显示,详细介绍了LCD驱动,并介绍了LCD绘制直线和绘制长方形的工作原理,并且给出了对应的DEMO;
2022-07-13
实现串口环回,实现printf,实现SendString等函数;具体详细见博客;作为代码块,方便后续使用。
2022-07-07
STM32 TIM6和USART2同时使能,并通串口发送HI。 用来示例NVIC分组配置过程; 增加环回功能,增加LED点亮熄灭
2022-07-07
STM32 TIM6和USART2同时使能,并通串口发送HI。 用来示例NVIC分组配置过程;
2022-07-07
STM32, TIM定时器时间分钟,小时计时,并且通过LED闪烁方式显示出来。
2022-07-06
采用类似GPIO_TypeDef的方式,定义Led_TypeDef结构体类型,用结构体类型设置led参数,用固定占空比闪烁
2022-07-06
STM32无阻塞控制LED,可以设置LED占空比和闪烁次数,采用TIM精确定时,采用宏定义定义数字,全局变量在头文件中声明。
2022-07-06
STM32中,采用定时器6,实现无阻塞0.5HZ LED闪烁;全程宏定义软编码,方便移植。具体见博客。
2022-07-05
led点灯代码。代码简单,主要用来验证开发环境。开发环境采用vscode+keil,详见博文
2022-07-03
STM32F103C8T6 AM2320单总线驱动
2018-12-10
程序运行过程中,调用__WFI();命令,即可进入睡眠模式。WFI可以通过任意中断唤醒,这里采用按键中断唤醒
2018-12-08
STM32通过RTC从休眠模式,定时唤醒。 主程序中,在当前时间,设置30S后RTC唤醒,然后就进入休眠状态。RTC在30S后自动唤醒,从头开始运行主程序。
2018-11-18
STM32 RTC使用,包括初始化,后备寄存器,RTC定时,年月日设置和读取等
2018-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人