![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
cubemx
学习stm32的笔记
躬耕未敢忘忧国
这个作者很懒,什么都没留下…
展开
-
cubemx的freeRTOS移植
当任务获取到信号量的时候才能开始使用被保护的资源,使用完就释放信号量,下一个任务才能获取到信号量从而可用使用被保护的资源。**而 FreeRTOS 提供的互斥量可以通过优先级继承算法,可以降低优先级翻转问题产生的影响,所以,用于临界资源的保护一般建议使用互斥量。5,注意事项,RTOS目前对VC6编译器支持不好,需要修改文件,避免麻烦不要折腾了用V5.2,设置堆的大小,配置给系统的可用内存空间,不建议特别大,多数变量用全局变量。我们创建三个任务,一个高优先级任务,一个中优先级任务,一个低优先级任务。原创 2024-04-29 09:22:18 · 443 阅读 · 0 评论 -
cubeMX常用函数
/LED电平自动翻转。//触发TIM2中断定时器。时钟上升沿采集,下降沿输出,数据长度8位,先高位,后低位。Spi方式通讯,需要选择spi模式,0和3都可以。原创 2024-04-29 09:21:42 · 249 阅读 · 0 评论 -
四十七,发布程序
2,正式版报错了,因为串口打印函数做了修改,调试版屏蔽了,正式版也需要设置屏蔽。1,程序发给客户前要从新编译导出正式版。原创 2024-04-27 09:00:01 · 184 阅读 · 0 评论 -
四十六,看门狗
1,防止程序跑飞加看门狗,跑飞可以复位。原创 2024-04-27 08:59:11 · 76 阅读 · 0 评论 -
四十三,阿里云MQTT创建与测试
现在就可以对服务器接收和发送数据了。测试数据收发之服务器发送到客户端。打开服务器可以看到设备在线。然后把地址粘贴到测试软件上。查看日志也可以看到详细信息。打开阿里官方的测试客户端。在阿里云上创建一个产品。在物联网平台里注册设备。并用调试工具测试通讯。然后在设备里添加设备。成功之后找到设备查看。原创 2024-04-25 11:24:16 · 466 阅读 · 0 评论 -
三十四,外部中断
一个中断标志位有多个管脚,我们可以可以只设置一组中的一个管脚为中断,这样就固定中断源了,如果想启用同一组中的多个中断管脚,这样在中断函数总读取GPIO的电平来判断是那个管脚就行,我不断地告诉自己不要抬杠,怎么按键都不会同时触发的.4,这样就可以在程序里创建同名函数调用了,这个中断回调函数要注意不能放在main循环或者while循环里,要在外部.HAL库的延时函数要屏蔽调,因为HAL库的延时函数只能被主函数和子函数调用,不能在任何中断中调用.当产生中断后,可以通过中断标志位来判断中断来自哪里.原创 2024-04-25 11:14:06 · 249 阅读 · 0 评论 -
四十,ESP8266AT指令测试
相当于我们画电路板常用的电平转换类似。后面的单片机引脚通过程序连接在一起。透过一个简单的程序来完成这个动作。模块为服务器电脑为客户端的连接。并配置好网络名和密码。原创 2024-04-25 11:22:26 · 171 阅读 · 0 评论 -
二十八,ADC,ADC的DMA多通道
内核直接将绑定的功能获取的数据。读取的时候是读取的地址。多通道要设置为扫描模式。是直接寄存器访问功能。打开串口助手查看数据。看起来没有任何程序读。原创 2024-04-16 11:47:34 · 316 阅读 · 0 评论 -
三十一,spi(W25Q128)
多个芯片方便选择使能。原创 2024-04-25 10:15:15 · 288 阅读 · 0 评论 -
三十八,蓝牙简单测试
接收到数据就返回接收数据。原创 2024-04-25 11:17:25 · 141 阅读 · 0 评论 -
三十三,省电模式配置,CRC,芯片ID
停机模式也是在需要的地方直接添加代码。本质是在用不到单片机内部功能的时候。产生外部中断就可以唤醒停机模式了。直接在需要的地方添加睡眠函数。数据没有任何功能只用于校验。直接在固定的地址中读取数据。是专门的待机唤醒引脚。原创 2024-04-25 11:11:55 · 266 阅读 · 0 评论 -
四十二,esp8266代码讲解
先把当前接收的一个字节保存到接收缓存数组里。不然调了两小时都是只能发送不能接收。就不能满足继续数组保存数据的条件了。发送命令的函数就是常用的串口发送的。相当于先判断一个接收协议的首字节。发送的数据自动会在头添加一个回车。的数据赋值给当前接收数据的变量。如果主函数检测到标志的最高位置。步且这个接收条件一直保持满足。这样就算时间长了自己忘记了。定义的变量其他文件可以使用。所以把这个回车当起始位就行。当条件满足会执行相应的功能。步把标志位把标志位设置为。且接收标志最高位不等于。这样就满足条件进入了第。原创 2024-04-25 11:23:45 · 726 阅读 · 0 评论 -
三十六,RS485总线
1,RS485电路2,CUBE配置3,移植驱动其实485就是USART功能加外设这里使用485也是需要配置USART2的功能4,程序。原创 2024-04-25 11:15:19 · 196 阅读 · 0 评论 -
三十,温湿度DHT11
传感器返回固定长度的高度电平代表。其他都是为了初始化喝读取服务的。循环判断单总线的电平状态。单片机发出固定电平的信号。主要是初始化喝读取函数。需要注意因为是单总线。原创 2024-04-16 11:49:26 · 371 阅读 · 0 评论 -
二十九,RTC(一般不用,用专门的时钟芯片)
第一组寄存器进行判断。原创 2024-04-16 11:48:20 · 302 阅读 · 0 评论 -
三十九,蓝牙AT指令
蓝牙AT控制1,AT指令2,常用AT命令3,格式读取模块工作状态4,蓝牙模块回复数据5,程序。原创 2024-04-25 11:19:01 · 200 阅读 · 0 评论 -
三十五,定时器与PWM
输出比较的使用还需要其他一些配置。在开始计数前设置一个结束的数值。只要设置好溢出值就能精准定时了。每个时钟周期计数器加。原创 2024-04-25 11:14:39 · 524 阅读 · 0 评论 -
三十二,USB
自定义变量接收存放的数据。把接收数据转存到数组。原创 2024-04-25 11:10:54 · 249 阅读 · 0 评论 -
四十一,esp8266与单片机通讯
模块发送的数据有固定的格式比如发。这一小节是后续学习的基础。也是物联网常用的基础知识。下一节专门详解这次的代码。这里需要理解每一行代码。指令设备号和字符数量。在公司我最讨厌两种人。一种是非让我写注释的。原创 2024-04-25 11:23:03 · 447 阅读 · 3 评论 -
四十五,单片机连接云程序讲解
串口接收引入定时器是个很巧妙的设计,发现串口接收中断,然后定时一段时间,定时器时间到了,溢出中断直接把串口的接收标志置为完成.先清空定时器的计数值,然后判断串口3的接收标志位位0时,打开定时器开始计时.7.3主循环里保持设备在线的心跳包,10秒左右发一次,20次不成功就重新配网。发送命令后esp8266模块会回复数据,模块通讯都是类似的,就是类容不一样。还可以接收数据,判断目前接收的数据数量是否大于临时缓存空间的最大值,把MQTT的发送与接收与串口3的发送与接收绑定在一起,进行解码处理.原创 2024-04-25 11:25:35 · 158 阅读 · 0 评论 -
四十四,单片机连接阿里云
但是我们使用单片机的库函数来处理这些订阅发布。心跳包等一系列运算就可以很轻松实现通信目的。修改参数前先去云平台复制出所需要的参数。单片机和云平台通讯是个很复杂的程序。下载成功以后打开串口助手。然后观察云平台的日志列表。原创 2024-04-25 11:24:56 · 500 阅读 · 0 评论 -
三十二,HAL,USB
自定义变量接收存放的数据。把接收数据转存到数组。原创 2024-04-16 11:51:42 · 413 阅读 · 0 评论 -
三十七,CAN总线
1,电路原理2,CUBE设置3,CAN波特率计算4,打开CAN接收中断5,移植驱动6,程序7,CAN的接收和发送。原创 2024-04-25 11:16:17 · 270 阅读 · 0 评论 -
二十七,串口
为了防止构建工程的时候复制过来的文件与别的文件有冲突。设置工程排除这些冲突文件的重新构建。因为要把别的文件复制到工程里。原创 2024-04-16 11:45:33 · 289 阅读 · 0 评论 -
二十六,蜂鸣器与继电器
可以复制别的工程类似驱动电路的代码。复制成功以后要在项目里刷新一下。第一步当然是在工程里添加驱动。把蜂鸣器和延时都复制到项目里。只好重新写一个纳秒级别的延时。不要什么代码都自己写。原创 2024-04-16 11:44:36 · 389 阅读 · 0 评论 -
二十五,IDE的安装和设置
如果有需要可以升级软件。原创 2024-04-16 11:43:43 · 340 阅读 · 0 评论 -
二十三,RCC时钟简介
1,RCC时钟简介2,APB1和APB2时钟对应的外设3,时钟输出在单片机的PA8端口用于时钟输出输出时钟前要配置。原创 2024-04-16 11:42:01 · 382 阅读 · 0 评论 -
二十,CubeIDE编译下载
第一次用st-link下载可能需要给仿真器升级固件。原创 2024-04-16 11:39:34 · 333 阅读 · 0 评论 -
二十二,HAL库简介
禁用HAL库,有时候HAL有bug配置出来有问题,就需要禁用这个功能然后自己创建一个库文件实现功能.是自己建立的文件夹,用于存放针对开发板上硬件的控制,系统生成的是初始化,改用LL库,LL库会精简一些,程序接近寄存器程序.初始化后怎么调用新建一个文件,这样方便管理.原创 2024-04-16 11:41:22 · 341 阅读 · 0 评论 -
二十一,洋桃IOT开发板IO配置
初始化以后也需要在程序中随时配置输入输出模式。也可以选择不同的端口数量。端口配置按照开发板来的。芯片内同用一个堆栈区。原创 2024-04-16 11:40:36 · 437 阅读 · 0 评论 -
十九,STM32CubeIDE简介
CubeIDE简介1,图形界面2,系统内核3,RCC系统时钟4,工程管理5,编程界面6,编程界面设计树介绍7,时钟源类型8,RTC时钟9,配置时钟树10,配置GPIO。原创 2024-04-16 11:38:37 · 277 阅读 · 0 评论 -
二十四,点灯与按键
命名是将要编程的驱动功能。在文件夹里创建子文件夹。为熄灭,其他值为点亮)为熄灭,其他值为点亮)为熄灭,其他值为点亮)为熄灭,其他值为点亮)创建驱动文件总文件夹。在驱动文件夹里面建立。然后复制粘贴例子里的。里面引用头文件控制了。原创 2024-04-16 11:43:00 · 395 阅读 · 0 评论 -
十八,stm32CUBE的使用
7,设置GPIO,单机PC13脚,选择IO类型,这里点LED,选输出模式。2,选择芯片新建工程,输入芯片具体型号。4,配置时钟,尽量选择高速。原创 2024-04-16 11:37:44 · 271 阅读 · 0 评论