草庐IT

HAL_UART_Transmit_DMA

全部标签

电磁寻迹智能车HAL库基于cubeMX—三轮(分段PID+归一化+差速+均值滤波+多路ADC+三叉+环岛+十字)

一、杂谈拖了好久才来更文章….是因为一直比较忙,哈哈。工程在文末今年呢,是第二次参加智能汽车校赛,本来也是参加了飞卡的,但是因为某些原因(包括个人的也有包括组队的一些其实现在看来也就那样的问题)我退出了,说有遗憾那必然是有的,因为毕竟哪个工科男生没有一个做车车的想法呢,但不后悔,因为有了更多时间去做其它也想做的事情。所以这个智能车校赛就当作过过车瘾了。说一下大致的情况吧,我写程序调车,另一个同伴搭车做硬件,我们是高年级组了要求的是做三轮车,去年也参加了做的四轮车,去年调了一个月接近,也是我一个人调的程序,最后拿了三等奖。其实三轮车和四轮车区别不大,无非就改改代码控制而已。今年的三轮车组别,我调

电磁寻迹智能车HAL库基于cubeMX—三轮(分段PID+归一化+差速+均值滤波+多路ADC+三叉+环岛+十字)

一、杂谈拖了好久才来更文章….是因为一直比较忙,哈哈。工程在文末今年呢,是第二次参加智能汽车校赛,本来也是参加了飞卡的,但是因为某些原因(包括个人的也有包括组队的一些其实现在看来也就那样的问题)我退出了,说有遗憾那必然是有的,因为毕竟哪个工科男生没有一个做车车的想法呢,但不后悔,因为有了更多时间去做其它也想做的事情。所以这个智能车校赛就当作过过车瘾了。说一下大致的情况吧,我写程序调车,另一个同伴搭车做硬件,我们是高年级组了要求的是做三轮车,去年也参加了做的四轮车,去年调了一个月接近,也是我一个人调的程序,最后拿了三等奖。其实三轮车和四轮车区别不大,无非就改改代码控制而已。今年的三轮车组别,我调

stm32编码器电机测速(hal库)

记录一下今天参考别人的代码实现了四个电机的测速。 编码器被广泛应用于电机测速,实现电机闭环控制。所以不论是自己做小车还是后续参加各种比赛,必须要学会编码器测速。一.参数           编码电机其实就是一个带有编码器的电机,我的这个电机是一个带霍尔传感器的电机,型号是JGB37-520,然后我的电机减速比是30(一定要记住,买的时候也要看清电机减速比是多少,涉及到转速的计算),额定电压12V,然后就是编码器的参数了,见下图电机驱动模块我用的TB6612的四路的板子,就是下面这款,很好用,就是稍微有点贵。二.常用测速方法主要分为M法、T法和M/T法,详情见这篇文章STM32CubeMax编码

基于正点原子F103精英板和CubeIDE的Hal库LCD驱动移植(从零开始)

最近在学习王维波老师的《STM32Cube高效开发教程》,王老师移植的是普中科技的驱动,而我手动移植了一下正点原子的lcd驱动,看了网上的诸多教程,有的博客存在一些bug,于是乎手动整理了一下,带来了移植驱动的全过程和问题解答。希望对即将入门嵌入式的小伙伴有一点帮助。准备环节:正点原子的官方例程(精英板和mini板两者驱动有些许区别,我们用精英板)、CubeIDE开发环境。CubeMX配置:第一步:打开CubeIDE,新建项目,选择单片机型号以及项目名称。第二步:CubeMX初始化RCC、SYS相关 第三步:分配时钟树,勾选生成.c/.h代码  第四步:FSMC的配置在左侧的Connectiv

基于正点原子F103精英板和CubeIDE的Hal库LCD驱动移植(从零开始)

最近在学习王维波老师的《STM32Cube高效开发教程》,王老师移植的是普中科技的驱动,而我手动移植了一下正点原子的lcd驱动,看了网上的诸多教程,有的博客存在一些bug,于是乎手动整理了一下,带来了移植驱动的全过程和问题解答。希望对即将入门嵌入式的小伙伴有一点帮助。准备环节:正点原子的官方例程(精英板和mini板两者驱动有些许区别,我们用精英板)、CubeIDE开发环境。CubeMX配置:第一步:打开CubeIDE,新建项目,选择单片机型号以及项目名称。第二步:CubeMX初始化RCC、SYS相关 第三步:分配时钟树,勾选生成.c/.h代码  第四步:FSMC的配置在左侧的Connectiv

MicroBlaze系列教程(5):AXI_UART16550的使用

文章目录@[toc]AXI_UART16550简介MicroBlaze硬件配置常用函数使用示例参考资料工程下载本文是XilinxMicroBlaze系列教程的第5篇文章。AXI_UART16550简介axi-uart16550是Xilinx的一款串口IP核,支持配置成16450或16550模式,16550和16450是指的早期电脑主板上的串口芯片型号,16550相比于16450多了FIFO,现在已经很少使用。相比于axi-uartlite,16550支持1或2位停止位,包括uartlite所有的功能,而且支持在SDK中灵活对波特率、数据、校验方式进行配置。与uartlite不同的是,不能单独指

Android Mediatek 修改打印串口 (uart0) 为普通串口

目录修改的文件:文件修改说明:这个主要修改了Mediatek 打印串口(uart0)为普通串口,这样可以避免在使用uart0不必要的调试信息。修改的文件:bootable/bootloader/lk/app/mt_boot/mt_boot.csystem/core/rootdir/init.rc文件修改说明:mt_boot.c:修改了启动Linux的函数boot_linux_fdt,将printk.disable_uart的值从0改为1,这样在用户构建中就不会打印调试信息。init.rc:注释掉了console服务的定义和启动,这个服务在ro.debuggable=1时会启动一个shell在控

DMA循环模式ringbuf缓冲区搭建

一、为什么需要        最简单的串口数据处理机制是数据接收并原样回发的机制是:成功接收到一个数,触发进入中断,在中断函数中将数据读取出来,然后立即。这一种数据处理机制是“非缓冲中断方式”,虽然这种数据处理方式不消耗时间,但是这种数据处理方式严重的缺点是:数据无缓冲区,如果先前接收的的数据如果尚未发送完成(处理完成),然后串口又接收到新的数据,新接收的数据就会把尚未处理的数据覆盖,从而导致“数据丢包”。 对于“数据丢包”,最简单的办法就是使用一个数组来接收数据:每接收一个数据,数组下标偏移。虽然这样的做法能起到一定的“缓冲效果”,但是数组的空间得不到很好的利用,已处理的数据仍然会占据原有的

STM32CubeMX配置ADC采样(轮询、中断、DMA)

STM32CubeMX能够极大减小STM32外设配置的工作量,因此作者也借助空闲时间对STM32CubeMX相关配置进行了学习,本文介绍如何利用STM32CubeMX配置ADC采样,记录了作者学习过程中遇到的问题及解决办法,使大家少走弯路,并方便以后复习目录1、单通道轮询2、单通道中断3、单通道DMA4、多通道轮询5、多通道中断6、多通道DMA1、单通道轮询先选择所使用的MCU,这里我使用的是STM32F407ZGT系列修改一下DEBUG功能,否则后续无法调试修改时钟,采用外部晶振配置一串口,用于打印采集的ADC值这里我采用ADC1的通道0,并开启连续采样模式,否则每次开启ADC采样后只进行一

STM32CubeMX配置ADC采样(轮询、中断、DMA)

STM32CubeMX能够极大减小STM32外设配置的工作量,因此作者也借助空闲时间对STM32CubeMX相关配置进行了学习,本文介绍如何利用STM32CubeMX配置ADC采样,记录了作者学习过程中遇到的问题及解决办法,使大家少走弯路,并方便以后复习目录1、单通道轮询2、单通道中断3、单通道DMA4、多通道轮询5、多通道中断6、多通道DMA1、单通道轮询先选择所使用的MCU,这里我使用的是STM32F407ZGT系列修改一下DEBUG功能,否则后续无法调试修改时钟,采用外部晶振配置一串口,用于打印采集的ADC值这里我采用ADC1的通道0,并开启连续采样模式,否则每次开启ADC采样后只进行一