推荐阅读最新更新时间:2024-03-16 15:43
程序换个IDE就不运行了?
有人使用STM32H743芯片做应用开发,遇到个比较奇怪的事情。事情是这样的,他使用ST公司的图形化配置工具STM32CubeMx进行基本配置后,如果基于ARM MDK IDE创建工程并组织代码,编译除错后运行一切正常。但如果他基于IAR IDE创建工程并使用相同的用户代码时,发现程序没法正常运行,同时还没有任何报错。颇为奇怪。 经进一步了解。他的代码要实现的一个主要功能就是ADC,并利用通用DMA将ADC结果搬运到内存。现在最明显的问题就是,当把IDE从MDK切换到IAR后,ADC的结果没有被搬运到内存。借助调试可以确认,ADC外设确实启动了、DMA配置也没有问题,那到底怎么回事呢?两个环境下的外设配置及用户应用代码是完全一
[单片机]
STM32 USB设计单片机程序篇
首先,我们来看看usb的工作过程。 当usb设备接入到主机时,主机开始枚举usb设备,并向usb设备发出指令要求获取usb设备的相关描述信息,其中包括设备描述(device descriptor)、配置描述(configuration descriptor)、接口描述(interface descriptor)、端点描述(endpoint descriptor)等。这些信息是通过端点0(endpoint 0)传送到主机的。获取各种描述信息后,操作系统会为其配置相应的资源。这样主机就可以与设备之间进行通信了。 usb通讯有四种通讯方式控制(control)、中断(interrupt)、批量(bulk)和同步(sync
[单片机]
STM32 IIC通信之PAJ7620U2手势识别模块驱动程序源码详解
大家好。本人小白一个,最近在自学stm32,想用手势识别模块做一点好玩的,正好借此巩固IIC 通信的内容。 很多人刚刚接触IIC、SPI、CAN等通信方式时都会有一堆的问题:为什么要学它?学它可以做什么?我该怎么去学习它呢?我就在这里和大家分享一下自己学习时的所思所感吧,若有表述不对之处,还请各位大佬指出,我好立刻改正。 话不多说,先上硬货。 一、回答上面的问题: 1、什么是IIC通信呢?简单,两条线通信同步串行总线。(在此不做更多说明) 2、为什么要学习这些看起来“根本没多大用处”的通信协议呢?大哥,你总不能永远靠串口吃饭吧 ,况且真正到了实际项目中,通信的方式要根据环境选择,你总不能想当然的自己决定吧,学好这些通信方式,你
[单片机]
STM32 程序卡死在启动文件startup_stm32fxxxx.s的SysTick_Handler中
出现的问题 硬件调试的时候发现程序一直在启动文件下面箭头这行。显然是跟SysTick_Handler有关 由于我使用了FreeRTOS,所以需要SysTick为系统时基单元,所以需要SysTick_Handler,但是我却没有定义此中断函数,所以导致上面的程序一直进入不了以SysTick_handler命名的中断函数;填上就好了; 解决问题 添加SysTick_Handler函数:
[单片机]
CPLD被STM32读写VHDL程序
1 2 3 --本程序用来测试STM32对CPLD的读写操作 4 5 --测试功能如下: 6 7 --向0x05地址写入0x01,LED灯停止闪烁,写入其他数据闪烁继续 8 9 --0x03,0x04寄存器为定值,可以通过STM32读取然后使用串口输出看看是否一致 10 11 12 13 --文件名:AD.vhd 14 15 library ieee; 16 17 use ieee.std_logic_1164.all; 18 19 use ieee.std_logic_unsigned.all; 20 21 22 23 entity AD is 24 25 port
[单片机]
STM32串口接收不定长数据原理与源程序
今天说一下STM32单片机的接收不定长度字节数据的方法。由于STM32单片机带IDLE中断,所以利用这个中断,可以接收不定长字节的数据,由于STM32属于ARM单片机,所以这篇文章的方法也适合其他的ARM单片机。 IDLE中断什么时候发生? IDLE就是串口收到一帧数据后,发生的中断。什么是一帧数据呢?比如说给单片机一次发来1个字节,或者一次发来8个字节,这些一次发来的数据,就称为一帧数据,也可以叫做一包数据。 如何判断一帧数据结束,就是我们今天讨论的问题。因为很多项目中都要用到这个,因为只有接收到一帧数据以后,你才可以判断这次收了几个字节和每个字节的内容是否符合协议要求。 看了前面IDLE中断的定义,你就会明白了,一帧数据结束后
[单片机]
stm32的程序下载方式ISP、JFLASH、MDK总结
1.首先看一下stm32启动模式 stm32的启动模式由32芯片的boot0与boot1引脚决定。分为内嵌flash启动模式(正常启动模式)、内存启动模式、rom启动模式 启动方式与引脚高低电平的对应关系如下,芯片复位的四个时钟周期内会去读取boot0和boot1引脚的电平情况确定芯片的运行 模式。 boot0=0,boot1=x ----------------内嵌flash启动模式 boot0=1,boot1=1 ----------------内存启动模式 boot0=1,boot1=0----------------rom启动模式(串口isp下载程序) 2.串口isp下载方式 isp串口下载HEX程
[单片机]
DHT11温湿度传感器stm32测试程序
//dht11.h #ifndef __DHT_H__ #define __DHT_H__ #include stm32f10x.h #include systick.h #include led.h #include stdio.h #include Usart1.h #define DHT11_GPIO_TYPE GPIOA #define DHT11_GPIO_PIN GPIO_Pin_8 #define DHT11_RCC RCC_APB2Periph_GPIOA #define DHT11_OUT_H GPIO_SetBits(DHT11_GPIO_TYPE, DHT11_GPIO
[单片机]