STM32脱坑
教室里的风琴
这个作者很懒,什么都没留下…
展开
-
STM32脱坑【Day 11】
1),其中,CK_PSC为时钟频率,PSC为分频值,代码中写成7200-1,也就是7200分频,ARR为自动重装载值,计数达到此值自动置0,代码中写成10000-1。像之前的中断一样,定时器的配置流程如上图所示,首先是时钟单元的获取(确定用什么时钟,定时频率),然后是时基单元(定多长时间),中断输出(达到定时标志进入中断处理相关任务)简单看了下定时器的内容,挺多的,觉得定时器就是封装的中断,因为单独的一个定时器无法完成任何事,还需要定时器(中断)函数。实验结果:计数周期为1s,OLED上显示数字变化。原创 2023-06-02 11:17:50 · 119 阅读 · 0 评论 -
STM32脱坑【Day 10】
实验结果:程序移植还是挺有意思的,虽然是个单一功能的项目,但是也花费了不少时间,本来打算使用CubeMx生成代码直接移植的,但是源文件使用标准库写的,比较麻烦,所以还是使用传统的项目建立方法一步步移植了。之前在B站上看到江科大的教学视频使用的4针脚OLED,于是拷贝其项目,然后在自己的板子上点亮,方便后期调试。江科大使用的是硬件模拟I2C通信驱动OLED,因此很方便移植,找到两个空闲引脚配置即可。由于目标板不同,因此首先确定自己的板子引脚,PC_5(SCK)和PC_6(SDA),另外两根线接电源和GND。原创 2023-06-01 16:40:33 · 121 阅读 · 0 评论 -
STM32脱坑【Day 9】
需要注意的是:由于串口使用的是中断模式,拿串口接收来说,可能需要接收的数据很长,当触发串口接收中断并完成一次接收后,CPU就去执行其他任务了,这时候就需要直到数据何时接收完毕,因此串口中断函数不能写到循环当中,而需要写到主循环之前,在触发串口接收中断并且将完整数据接收完之后再处理其他任务。DMA_6通道作为USART2_RX的串口接收,就是将上位机发来的数据从外设USART2接收端搬到内存变量中,DMA_7作为USART2_RX的串口发送,将板子上内存变量中的数据搬到USART2发送端发到上位机。原创 2023-05-31 09:39:07 · 108 阅读 · 0 评论 -
STM32脱坑【Day 8】
关于New Bing:之前在使用GPT 3.5和其他大语言模型,相比之下,New Bing的回答速度稍慢些,但是准确率和人性化的程度丝毫不逊色,感觉使用的是GPT-4模型(一些奇葩问题也能作答)。使用方法:首先注册微软账号,打开EDGE浏览器,然后绕过重定向,进入网址https://bing.com/.之后需要将设置中的国家和地区更改一下。keil5纯手敲代码,实现按键中断,对中断的理解更近一步,当然离不开New Bing 的帮助。实验现象,上电后LED实现呼吸灯效果,按键控制呼吸灯开关。原创 2023-05-29 11:44:50 · 57 阅读 · 0 评论 -
STM32脱坑【Day 7】
定义收发数据数组receivedata[2],使用HAL_UART_Transmit()函数实现从机向主机发送数据,HAL_UART_Receive()函数接收主机发来的数据。本实验实现了基本的串口收发和外设控制,但是这种控制方式对系统资源占用较大,CPU时钟在检测串口工作状态,资源利用率很低,因此有必要引入中断提高串口收发效率。首先是根据板子原理图找到板载串口号,确认为PA2(USART_TX)和PA3(USART_RX);然后将数据指令与LED状态进行匹配,实现控制小灯的效果。发送R1时,LED点亮;原创 2023-05-28 19:45:52 · 54 阅读 · 0 评论 -
STM32脱坑【Day 6】
首先配置ioc文件,PB13作为LED口,PA3作为按键中断口,根据个人板子配置,端口输入输出模式,我用的面包板,结合实际电路,按键中断口配置为下拉输入,上升沿检测;LED口配置为无上下拉,输出模式为默认低电平(LOW)。需要将system tick timer的优先级提高,也就是优先级书目字小于中断线3,这里设置system tick timer 优先级为14,EXTI3为15。如果在中断函数中使用了HAL_Delay()函数,还要在ioc文件中修改NVIC优先级。实验目标:中断中实现按键控制小灯亮灭。原创 2023-05-27 21:09:08 · 154 阅读 · 0 评论 -
STM32脱坑【Day 5】
读取按键信息,单个按键控制LED亮灭,并将LED状态信息传入OLED。STM32按键、LED、OLED使用。原创 2023-05-27 00:07:39 · 133 阅读 · 0 评论 -
STM32脱坑【Day 4】
目标:使用中断函数处理按键控制LED程序,按键按下作为一次中断输入,也就是一种输入状态。这两天被拉去搞DSP了,读地址读得要吐,看看32缓缓。中断学习,这里只做简单使用。原创 2023-05-26 16:02:18 · 65 阅读 · 0 评论 -
STM32脱坑【Day 3】
总结一下,simulink将模型以代码形式下载到板上运行,这个应该是下载到了RAM上,因为仿真停止后就没有实验现象了。上面的例子都是开胃小菜,一切都要为下面的这个示例服务,不知道有没有人做过这个,能否指点一二。原创 2023-05-23 10:37:43 · 87 阅读 · 0 评论 -
STM32脱坑【Day 2】
③在模型设置中将模型将求解器设置为定步长类型,最大步长设置为auto,主要是为了便于看到实验现象,如果设置为定步长,模型中的占空比调节就比较麻烦。串口通信部分查看设备管理器,找到STM32的virtual com号,错误的话将导致无法运行。这里主要参考了第三个网址的文档内容:建立Simulink和板子的通讯,实现实时调节参数。①首先还是安装STM32 Nucleo硬件支持包,还有其他必要的Matlab工具箱。附上一些调节效果,不过还不是实时调节的。不知道什么原因,尚待解决。原创 2023-05-23 09:22:44 · 551 阅读 · 8 评论 -
STM32脱坑【Day 1】
从去年到现在,学习了电机控制相关的算法,也零零散散搭建了仿真事例,也接触到了simulink代码生成方面的内容。很想做一点硬件实现方面的工作,正好手头有一块P-Nucleo-IHM001电机算法评估板,于是萌生了代码实现和部署的想法。简单了解之后我发现需要补充STM32以及嵌入式项目开发的知识,于是写下自己所做的事还有踩过的坑。原创 2023-05-21 10:09:45 · 105 阅读 · 0 评论