STM32_HAL库相关操作
文章平均质量分 86
使用CubeMX对stm32进行开发,包含对hal库各种外设io,中断,定时器,通讯协议等等操作
bird1999625
热爱嵌入式以及物联网相关技术,自学三年,带着喜欢一直走下去
展开
-
C/C++---字符分布分割得到数字,适用于STM32/ESP32等等
上一篇ESP32博文我说要更一篇字符分割的,实际上,这篇博文适用于ESP32,STM32等等等等所有的C与C++代码原理:在一个有首有尾特定的字符串中依次取出数字,我们这里用b@[data0]@[data1]@[data2]e,代表我们的字符串,'b’是字符串的开头,'e’是字符串的结尾,而中间用@分割,填入数字(支持小数),把这样的字符串再反向用分步切割加强制转化的方法把这些数字再一次取出来作用:这个其实非常有用,我们的MCU可以通过协议接收别的MCU或者电脑发出的字符串,再把字符串里面的信息提取出来原创 2020-06-08 01:29:42 · 2099 阅读 · 3 评论 -
(HAL库学习12)触摸屏的使用
这一篇也拖更比较久了,这里给大家讲讲触摸的一些需要注意的东西就行了,然后给大家HAL库移植好的工程首先我们需要用到内部flash来存储我们的一些触摸用的关键数据,所以前一篇关于flash使用的文章大家最好看看,还有,之前给大家看的那个flash示例的代码,地址是16进制表示哈,这一点必须注意,我之前就是因为不小心写成10进制调了半天没调出来,比如一页 1024 字节 那转化为16进制就是 400 哈。触摸原理方面简要说说,就是通过SPI读取触摸信号引脚部分传来的信息,再根据转换因子去转换换算出触摸发生在原创 2020-05-25 02:59:33 · 1178 阅读 · 2 评论 -
(HAL库学习11)内部flash的使用,同时教得到bin文件的方法(反应单片机烧录进去的程序大小)
首先这一期肯定是要做的,同时下一期要更的触摸功能也需要这个flash存几个关键的触摸参数第一:先讲讲你不得不知道的flash使用:不同型号的STM芯片,FLASH 大小不一样,最小只有16k字节,最大的1024k字节,它由一些信息快与自身操作相关的寄存器以及最重要的主存储器组成,而主存储器就是我们存放代码和常量(比如const类型)的地方,比如上一篇博文讲的4寸SPI_TFTLCD的屏幕例子,那张图片以及单片机内部的执行代码都是在flash里面存储的,而flash特点在于,他在掉电之后不会被擦除,仍然保原创 2020-05-24 03:51:50 · 2326 阅读 · 3 评论 -
(HAL库学习10)SPI屏幕HAL库驱动移植(触摸部分下一篇讲),软件SPI
我这里用的是4寸SPI带触摸的TFT,但是无论什么型号的,教大家移植方法,都可以使用,先看效果首先讲讲为什么讲这一节,希望大家能看完我下面这段话http://www.lcdwiki.com 这个网址可能很多人都熟悉,这是一家做嵌入式屏幕的公司产品展示网页,我之前更新的0.96oled也是这里面的产品,现在更的是SPI驱动的TFT,这里面品类的屏幕我都会抽一个移植HAL库给大家并教大家移植方法(其实同品类的屏幕驱动原理是一样的,就是初始化写入寄存器时值不一样,由厂家提供,在给的源码里面可以看见)然后原创 2020-05-19 20:51:57 · 2111 阅读 · 4 评论 -
(HAL库学习9)模块驱动的移植
这一篇作为道歉文,我早就应该更一下如何移植模块的,应该照顾所有的看我博文的人,有一些萌新确实有很多东西不知道怎么做。首先第一步,准备好我们要移植的文件第二步:在我们的keil工程里面建造自己的文件夹专门存放我们的所有的模块驱动第三步在工程页面新建我们的文件夹存放模块驱动这里其实不是不需要这么做,但是你最好这样管理工程,不然驱动代码东放一个西放一个,工程大了你自己都找不到。最后一步,添加头文件路径到这里我们就移植完了,就可以使用了,比如在main.c里面导入头文件:#include原创 2020-05-17 04:25:50 · 1308 阅读 · 2 评论 -
(HAL库学习8)STM32CubeMX 驱动0.96寸IIC oled(取字模,取图模)
这一篇讲解用STM32CubeMX来使用0.96寸的IIC oled(128*64,VCC,GND,SCL,SDA四脚)首先告诉大家结果,你们只需要把我下面的三个文件移植入自己的CubeMX生成的工程里面即可,我用的是F401CCU6,但是无论你用的是哪个型号的STM32,这三个文件移植后都是可以正常使用的,这也算标准库比不了的先给大家看看HAL库驱动的结果灵魂画师不必在意哈,0.0.第一步:在CubeMX上开启iic1第二步:移植我的这三个文件这三个分别为oled.c oled.h原创 2020-05-09 19:34:26 · 9444 阅读 · 28 评论 -
(HAL库学习7)STM32CubeMX HAL库 PWM输出
这一节是设置STM32单片机定时器PWM输出驱动舵机pwm输出依靠的是定时器通道,stm32除了定时器6,7,都有输出pwm的通道,高级定时器通道数还要多于普通定时器。定时器的核心特质就是两个参数:频率和占空比,这里先告诉大家结果,设置频率在CubeMX上设置,而占空比我写了一个函数大家可以设置占空比。第一步在CubeMX上开启pwm输出通道:开启pwm输出是很简单的哈,但是要理解他这个分...原创 2020-05-07 17:24:12 · 4128 阅读 · 7 评论 -
(HAL库学习6)STM32CubeMX HAL库 定时器的使用
这一篇的内容为使用stm32的定时器基本功能,也就是定时多长时间产生什么样的动作,关于定时器别的高级用法(pwm,捕获等)在后面几篇博文中会一一带来第一步:老规矩,在CubeMX中配置定时器这个是我的时钟树上面就是一个定时器的设置,选择模式那里默认的是up就是向上计数哈,其他东西基本没有的什么变动的,使用默认的就好,具体代表什么自己可以百度,最最最重要的理解上面那个分频,这个非常重要,根...原创 2020-05-06 21:27:00 · 1407 阅读 · 8 评论 -
(HAL库学习5) STM32CubeMX HAL库 外部中断使用
今天内容为使用STM32CubeMX配置STM32单片机的外部中断首先:STM32含有一共20条中断/事件线,前面0-15条是供给IO用的,后面四条是有特殊用处的:16:PVD输出 17RTC:闹钟事件 18:USB唤醒事件 19:以太网唤醒事件,而对应IO的16条线就对应的IO的相应编号,比如PA0,PB0,PC0…这些都是零号中断线上的。第二:中断发生的原理顺序,这点很重要,比如设...原创 2020-05-06 19:31:24 · 1667 阅读 · 3 评论 -
(HAL库学习4)STM32CubeMX HAL FreeRTOS 任务创建与删除(也会教直接用代码实现方式)
这次教的是使用STM32CubeMX使用FreeRTOS来进行任务的创建与任务的删除(其实还有FreeRTOS还有一些需要注意的地方,但是任务的创建与删除就是最重要的了,其他的会在后面讲到)首先说说对FreeRTOS的看法吧,这是公认的大面积使用的嵌入式操作系统,我之前使用的是ucos,FreeRTOS以前接触的不多,拿他来比较的话,FreeRTOS最大的又是就在于完全免费,所以向我以后会更新的...原创 2020-05-03 17:57:47 · 4817 阅读 · 10 评论 -
(HAL库学习3)STM32CubeMX HAL库 ADC与DAC使用
这次的教学是用CubeMX开启STM32的ADC 与 DAC功能本次测试再次换了一块板子,用的是STM32F103RCT6,并不是我想换哈,hal库无论你用啥板子,函数几乎都没发生改变,底层驱动又是软件默认帮我们设置好的,之所以换板子是因为系列中中低端的大多数板子是没有DAC功能的(ADC都有),以下赋一张F1的图本次使用的RCT6就是F1系列上面这个48kbRAM这个,室友两个DAC的哈。...原创 2020-05-02 23:29:18 · 3944 阅读 · 3 评论 -
(HAL库学习2)STM32CubeMX HAL库 io口上拉下拉与读取状态
使用STM32CubeMX创建工程,输入输出io口高低电平,读取io高低电平并且使用串口打印输出(本次演示实验使用的是STM32F411CEU6,创建工程以及打开串口和之前的文章步骤一样的,只是切记,创建工程设置时钟频率那里设置为100,因为之前用的是f103c8t6的,所以之前是72)io输出与读取:第一步:在STM32CubeMX中设置好相应的io口在按照我之前的文章弄好工程以及串口打印...原创 2020-05-02 14:15:08 · 5270 阅读 · 4 评论 -
(HAL库学习1)STM32CubeMX开启串口通信HAL库
使用STM32CubeMX使能串口并完成发送+接收第一步,在STM32CubeMX上使能串口,完成属性配置并且打开串口中断(测试使用的是f103c8t6,但是其他板子操作是一样的,关于CubeMX创建工程以及工程的必要初始化配置看我博客第一篇文章)按照上面这张图进行串口使能配置,属性除了波特率有很大可能改动以外大多数情况都是用默认的,使能后打开中断设置进行优先级配置这样就完成了第一步,点...原创 2020-04-30 18:27:40 · 1732 阅读 · 0 评论 -
(HAL库学习0)STM32CubeMX创建工程
STM32 CubeMX简介首先STM32 CubeMX存在的最根本目的是为了简化开发人员的工作为目标的,几乎覆盖了所有的STM32的型号,采用图形化编辑,可以设置时钟树,自动处理引脚冲突,生成的初始化c代码可以直接使用,不需要再自己编辑外设硬件初始化工作安装网上一大堆教程不作叙述了这里以最常用到的STM32F103C8T6作为教程的创建示范第一步:选择相应的芯片型号第二步:进行必要的硬...原创 2020-04-29 16:46:25 · 1142 阅读 · 1 评论