- 博客(15)
- 收藏
- 关注
原创 STM32提高程序运行效率的方法
而局部变量大多定位于MCU内部的寄存器中,在绝大多数MCU 中,使用寄存器操作速度比数据存储器快,指令也更多更灵活,有利于生成质量更高的代码,而且局部变量所的占用的寄存器和数据存储器在不同的模块中可以重复利用。通常使用自加、自减指令和复合赋值表达式(如a-=1 及a+=1 等)都能够生成高质量的程序代码,编译器通常都能够生成inc 和dec 之类的指令,而使用a=a+1 或a=a-1之类的指令,有很多C 编译器都会生成2~3个字节的指令。生成的代码与源代码密切相关,但生成的代码要多得多,包括死代码。
2023-01-13 19:26:19 3143
原创 STM32程序仿真正常,脱机程序跑飞或不跑
测量电压后发现,带负载时稳压模块输出只有4V,而空载是可以输出5V的,说明负载电流太大(除了主控板还接了很多其他5V供电的模块),稳压模块输出不足导致电压被拉低到4V,经控制板降压后给芯片供电仅有3V,芯片不能正常工作。(1)查阅资料时发现,仿真器USB端拔掉,而另一端连接在控制板上时,有可能导致程序无法正常运行,原因为单片机复位引脚被仿真器内部拉低,导致程序一直在复位(我的不会有这个问题)(1)首先测试复位电路,发现复位按键损坏,更换之后仍然存在此问题,复位电路不是导致程序跑飞的根本原因。
2023-01-13 18:23:04 2520
转载 STM32+HAL库移植FreeRTOS
使用STM32CubeMX创建裸机工程:这里我是用的芯片是STM32F103RBT6,时钟主频为72MHz,配置时钟树:配置调试串口1:配置两个LED灯:由于FreeRTOS使用系统嘀嗒定时器当作心跳,HAL库也使用了这个定时器当作超时计数用,FreeRTOS和HAL库不能同时使用SysTick定时器,所在在这里将HAL库的定时器改为其他的定时器,我改成了定时器4:配置中断,注意这里一定要选择组4,也就是全部为抢占优先级:输出工程:FreeRTOS源码官网下载地址:https://www.f
2022-10-26 18:03:16 2244
原创 HAL库STM32实现串口打印
将以下代码加入mian.c中{return ch;}测试while(1) {/* USER CODE END WHILE */ printf("Z测试\n");
2022-10-26 17:47:39 1365
原创 STM32实现编码器电机【速度与位置环闭环控制】
电机类型:520编码器电机(12V 110RPM 减速比90)控制芯片:STM32F103ZET6。电机驱动:TB6612。
2022-10-15 22:19:01 8044 10
原创 WiFi模式下nfs与tftp的网络环境搭建
注:本文摘自正点原子网络环境NFS&TFTP搭建手册1.准备工作使用场景:路由器离电脑比较远,只有一条网线。设备:电脑(Windows)、正点原子 Linux 开发板(出厂系统)、直通网线。网络拓扑结构:2.VMware 设置打开 VMware Workstation Pro 里的 虚拟机 -> 设置设置网络适配器为桥接模式。因为电脑是 WiFi 上网,所以需要添加一个网络适配器并设置成 NAT 模式,供虚拟机上网。具体操作如下图所示:默认添加的网络适配器是 NAT
2022-05-11 19:52:27 830
原创 Makefile的语法/函数/命令
一、Makefile语法1.1通配符:%.o符号含义$@表示目标文件$<表示第一个依赖文件$^表示第一个依赖文件1.2假想目标:.PHONY用法:(如果不加.PHONY,当工程下有同名clean文件时,将无法执行make clean)clean: rm *.o -rf.PHONY: clean1.3变量符号含义:=即时变量,即刻赋值给变量=延时变量,使用到才赋值?=延时变量,第一次定义才起效果+=
2022-05-10 12:38:33 107
原创 STM32hal库驱动数字舵机
一、简介常用数字舵机的控制一般为周期20ms,在0.5-2.5ms之间为可控范围,对应占空比为2.5%-12.5%二、CUBE配置2.1配置定时器通道定时器通道设置为PWM Generation2.2配置参数设置PSC与ARR寄存器,周期为20ms,Mode设置为PWM mode 2周期计算公式:周期=1/(主时钟频率/PSC/ARR)mode1与mode2的区别:mode1:向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;在向下计数时,
2022-05-08 14:41:02 2008
原创 STM32使用正点原子无线烧录器无线查看数据波形
所需资源硬件:正点原子无线烧录器软件:MiniBalance波形显示上位机CUBE配置配置串口使用CUBEMX配置串口,默认使用串口1,波特率为1152001.将串口模式配置为Asynchronous2.波特率设置为115200配置定时器配置定时器频率为1kHz,并打开中断。频率计算公式:频率=主时钟频率/预分频系数(PSC)/自动重装值(ARR)1.设置时钟源将时钟源设为Internal Clock2.设置频率3.打开定时器中断代码实现1.在中断回调函数中进行计
2022-05-08 13:15:05 2058 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人