STM32
文章平均质量分 53
.
Slow-Down
这个作者很懒,什么都没留下…
展开
-
记录Qt编写MQTT客户端,注册OneNet使用MQTT协议与Nb模块通信
OneNet部分该部分主要是在移动端拿到三个重要信息,产品号,设备号,鉴权信息。OneNet部分作用可理解为信息转发部分。OneNet官网注册部分直接参考官网文档MQTT界面,选择多协议接入自行参考官方文档创建产品,添加设备创建产品后就能得到产品号,第一个重要信息添加设备会设置鉴权信息,完成后可以得到另外两个重要信息,设备号,鉴权信息点击设备详情即可看到设备ID,鉴权信息另外可先自行下载官方测试的工具下载...原创 2021-12-02 17:43:33 · 2579 阅读 · 9 评论 -
按键使用定时器进行短按长按
测试板stm32f407,定时器采用10ms计数主程序u8 key_value = 0; //按键值int main(){ delay_init(168); //延时函数初始化 KEY_Init(); //按键IO口初始化 TIM3_Int_Init(100-1,8400-1);//0.1ms 计数100次 10ms溢出一次 Usart_Config(); // USART初始化函数 printf("ok\r\n"); while (1) { //每次按键按下对标志进行取原创 2021-06-23 15:50:45 · 1167 阅读 · 1 评论 -
STM32F4使用CCMRAM空间
文章目录keil修改使用方法参考链接STM32F407的RAM有192Kb其中192K=128(普通内存:任何外设都可以访问)+64CCMRAM(仅CPU可访问),上面IROM1和IRAM1设置可参考这里keil修改使用CCMRAM首先按图中方式勾选其次在xxx.sct中修改ccmram下面在程序中定义数组到CCM中其中RW-data+ZI-data=51244+129028=180272/2014=176K就是RAM中的空间,也可以查看map文件使用方法变量、数组、函数前转载 2021-05-19 19:02:30 · 5524 阅读 · 0 评论 -
FreeRtos列表和列表项插入、删除、尾部添加实验
参考正点原子stm32f4FreeRtos列表列表项实验初始化列表和列表项跟据打印出来的信息,可以画一个列表和列表项对应的地址图(对得不是很齐)添加列表项1灵魂画手,哈哈哈添加列表项2形成了一个环,虽然有点丑,哈哈添加列表项3删除列表项2可以看到虽然2在列表项中被删除,但是2里面的指针还是指向上次的位置末尾添加列表项2对比一下上一次的插入,末尾插入就是列表项13连接不变,将列表项2插入迷你列表项的pxNext,那么2的pxPrevious指针就是指向迷你列表项,下原创 2021-04-08 10:54:25 · 386 阅读 · 0 评论 -
FreeRtos列表和列表项
参考学习正点原子FreeRtos第七章先看列表,列表项,迷你列表项介绍,大多是书上介绍列表列表是FreeRTOS中的一个数据结构,概念上和链表有点类似,列表被用来跟踪FreeRTOS中的任务。与列表相关的全部东西都在文件 list.c和 list.h中。在list.h 中定义了一个叫List_t 的结构体,如下:typedef struct xLIST{listFIRST_LIST_INTEGRITY_CHECK_VALUE (1)configLIST_VOLATILE UBaseTy原创 2021-04-08 09:27:11 · 325 阅读 · 0 评论 -
FreeRtos使用注意(基础知识)
关于中断NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);中断优先级设置为0-15级抢占优先级,0子优先级。 这个也是官方强烈建议的。其中中断优先级0-15级,0的优先级是最高的,与任务优先级相反。port.c中宏configMAX_SYSCALL_INTERRUPT_PRIORITY==5,设置为5表示从5以上的优先级是不归freertos管的具体实验可参考关于任务FreeRTOS 中任务的最高优先级是通过 FreeRTOSConfig.h 文件中原创 2021-04-07 10:57:46 · 662 阅读 · 0 评论 -
STM32堆栈空间大小设置
今天遇到一个问题,在移植STM32代码中,程序直接跑飞,而编译器毫无报错警告提示,与别人交流发现自己程序的栈大小设置比较小,keil默认生成的大小Stack栈的大小为:0x400(1024Byte),Heap堆的大小为:0x200(512Byte)。我理解的意思是栈空间中定义一个u8的数组大小不能超过1024,因为1B=8b,甚至还要预留一些空间给其它内容使用。...原创 2021-03-01 17:42:25 · 3184 阅读 · 0 评论 -
STM32F4修改晶振频率
新建工程stm32f4晶振频率为25mhz,通常开发板外接的晶振频率为8mhz,串口打印输出会乱码,需进行一下修改:点击system_stm32f4xx.c文件,找到 #define PLL_M 25 这条语句,将参数值25改为8,在这条语句上面,右键点击 Go To Definination Of “HSE_VALUE”找到#define HSE_VALUE ((uint32_t)25000000) 将25000000改为 8000000....原创 2021-02-24 13:23:16 · 2205 阅读 · 1 评论 -
w5500网络连接状态判断
通过判断PHY寄存器的LINK位对连接状态进行判断,为1表示有连接,0表示无连接。#define PHYCFGR (0x002E00)#define RST_PHY 0x80#define OPMODE 0x40#define DPX 0x04#define SPD 0x02#define LINK 0x01int i = (IINCHIP_READ(PHYCFGR)&LINK);...原创 2020-12-10 16:46:54 · 3180 阅读 · 0 评论 -
keil中编译后程序占用大小
Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116Code是代码占用的空间,RO-data是 Read Only 只读常量的大小,如const型,RW-data是(Read Write) 初始化了的可读写变量的大小,ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化。简单的说就是在烧写的时候是FLASH中的被占用的空间为:Code+RO Data+R转载 2020-12-07 13:35:41 · 1457 阅读 · 2 评论 -
keil魔术棒中target中的IROM1与IRAM1
stm32f4的板载Flash默认大小是1M也就是1024k,RAM大小为128k,下载程序时IROM1默认起始地址是0x8000000开始后的0x100000空间共计1024k给程序使用,RAM默认起始地址的0x20000000到0x20000给程序使用共计128k。上图中表示程序起始地址为0x8010000到0xf0000共计960k给程序使用。...原创 2020-11-17 14:41:44 · 14818 阅读 · 0 评论 -
STM32FreeRtos中断学习
FerrRtos中断学习简介本例程参考正点原子stm32F4FreeRtos第四章,移植好FerrRtos后进行中断的实验。宏configMAX_SYSCALL_INTERRUPT_PRIORITYport.c中设置为5如下:configMAX_SYSCALL_INTERRUPT_PRIORITY==5表示进入临界区后,高优先级不会被打断(0-4不会被打断)实验现象定时器2和定时器3都配置为1S的中断,程序运行时每秒中time2和time3都会打印输出,5秒后在线程中关闭中断,此时只有tim原创 2020-09-08 17:34:56 · 1810 阅读 · 3 评论 -
STM32F4定时器
STM32F4定时器STM32一共有三种定时器,总共有14个定时器。高级定时器 TIM1、TIM8 。通用定时器 TIM2、TIM5、TIM3、TIM4,TIM9~TIM14 , 其中2、5是32位定时器计数范围更大精度更高,3、4功能上与2、5一样都可以产生DMA请求。TIM9~TIM14相对上面两类通用定时器功能上要少一些。基本定时器 TIM6、TIM7 没有捕获等通道所以相对以上两...翻译 2019-06-25 12:46:27 · 12464 阅读 · 0 评论