我在主模式下使用STM32F205的SPI1。并且在事务处理期间从不设置RXNE标志。以下是SPI初始化的一部分:
SPI1->CR1 = SPI_CR1_MSTR | SPI_CR1_SSI | SPI_CR1_SSM | SPI_CR1_SPE;
SPI1->CR2 = 0;
然后我尝试执行单个字节的发送/接收:
while(!(SPI1->SR & SPI_FLAG_TXE)) {} // wait for compeltion of the previous
我正在尝试下载minicom,用于我在eclipse中使用STM32微控制器进行的FreeRTOS项目。minicom应用程序应该允许我读取键盘输入,但它可用于MacOS。
有没有办法把它下载到Windows上
谢谢。您只需要一个用于windows的串行终端
您有很多自由选择:
Putty、Realterm等。下载并使用。谢谢!那么我应该遵循这样的原则吗?只需先设置putty连接,然后再设置minicom?本文是针对IGEP板的,那么它是否适用于其他微控制器,如stm32?
标签: Stm32
alarmreal-time-clock
我在学英语。有些困惑我真的无法理解
RTC报警和原始系统报警有什么区别。我只知道RTC可以节省更多的电能,其他什么都不知道。有谁能给我解释一下,或者给我举个例子来说明两者的区别吗。非常感谢。请看一下这个。这应详细说明RTC的功能及其提供的功能
简而言之:STM32微控制器中嵌入的实时时钟(RTC)充当独立的BCD定时器/计数器。RTC可用于提供功能齐全的日历、警报、定期唤醒装置、数字校准、同步、时间戳和高级篡改检测
RTC也可以比内部SysClk更精确。应该有合适的白皮书和文档可用:我已经尝试让
我想从设备的SRAM区域运行我的程序
我似乎很清楚,我必须执行以下步骤:
修改向量表偏移寄存器SCB->VTOR(位于0xE000ED08)以指向SRAM区域的开始,因为我的向量表位于该区域:0x20000000
重置设备,使其再次获取堆栈指针初始化值和重置处理程序地址
不幸的是,每当我在OpenOCD中发出reset init命令时,SCB->VTOR的值就会被清除。因此,堆栈指针初始化值和重置处理程序地址从0x00000000获取,而不是从0x20000000获取
问题:
如何让我的STM
我使用的是STM32F7系列微控制器,当内核被连接到JTAG接口的调试器停止时,有一些GPIO更改值(切换、脉冲、高z…)将非常有用。有人知道这样的特征吗 有DBGMCU寄存器,当内核停止时,这些寄存器可以选择性地停止某些外围设备(主要是定时器)
这样做的目的是让计时器在运行时输出低电平信号,在不运行时输出高电平信号。一个定时器不能做到这一点,但在主从配置中使用两个定时器是可能的
配置TIM3以输出一个占空比非常高的PWM信号,在两个周期内从低开始,然后在65536个周期的剩余周期内变高。从它到
我在STM32WB上使用LoRaWAN发送一些信息,然后进入待机模式。
问题是在我待机后,一个新的加入就完成了。
我听说我的连接可以使用MIB函数保存在内存中,但我无法正确使用它们并继续进行连接根本不进行连接。。。
有人知道如何使用它们吗?或者在什么地方有好的教程吗?(我暂时什么也没找到)
以下是我实际上正在尝试的:
uint32_t last_time = 0;
int main(void)
{
/* USER CODE BEGIN 1 */
data_t data;
LoraF
标签: Stm32
freertosstm32cubeide
我想用32位微控制器和FreeRTOS做实验。我正在STM32CubeIDE中为我的核子板创建一个新项目,并启用FreeRTOS。我切换HAL使用的计时器(我基本上在看这个视频,但使用另一块NucleoBoard)。当我启动调试模式时,当通过执行osKernelStart()启动任务调度器时,它会立即调用Hardfaulthandler;我不知道为什么。我的任务现在正在做的唯一一件事就是切换LED引脚A5…cubeide 1.4.0在使用FreeRTOS时产生了一个坏代码(NVIC设置,INT
我制作了一个定制板,其特点是STM32F469NI MCU与AS4C4M32S SDRAM耦合
以下是SDRAM定时和寄存器设置信息:
hsdram1.Instance = FMC_SDRAM_DEVICE;
/* hsdram1.Init */
hsdram1.Init.SDBank = FMC_SDRAM_BANK1;
hsdram1.Init.ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_8;
hsdram1.Init.RowBi
我是ARM处理器的新手,我最近买了STM32F4发现工具包。您是否建议我开始使用CooCoz或其他IDE进行编程?
对不起,英语很好。是的,它很容易使用
下载,并嵌入gcc arm
安装并配置CooCox。在“项目->选择工具链路径”中,选择带有工具链的目录,默认情况下为“C:\Program Files\GNU Tools ARM Embedded\4.8 2013q4\bin”
创建新项目,选择stm32f407vg芯片,然后从存储库中选择M4 CMSIS核心、CMSIS引导、RCC、GPI
我在使用STM32F4 DMA时遇到问题。
我已在循环模式下设置DMA配置,如下所示:
hdma_usart1_rx.Instance = DMA2_Stream2;
hdma_usart1_rx.Init.Channel = DMA_CHANNEL_4;
hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_usart1_rx.In
在STM32代码中使用的HAL库中,我们看到使用了如下样式:
#define I2C1 ((I2C_TypeDef *) I2C1_Base)
为什么这样使用define
为什么使用指针类型
为什么星星不在括号外
I2C1\u Base在其他地方声明,是一个十六进制数字
(I2C_TypeDef*)将I2C1_Base数字转换为指向I2C_TypeDef的指针,星形必须位于括号内,因为它转换为指针类型,如果它位于括号外,则它将是一个解引用,不会编译
定义允许这样的代码
I2C1-&
据我所知,FIFO(在硬件环境中)是一个缓冲区,将根据先进先出原则进行管理。您可以按顺序将一些位放入其中,然后可以在达到所需阈值时按块读取它们。但我对STM32串行音频接口的FIFO管理感到困惑:
根据数据表,串行音频接口(SAI)支持多达8个字的FIFO。(8x32位)SAI的数据寄存器(SAI_xDR)为1个字(32位)。文件解释了
如果FIFO未满,写入该寄存器将加载FIFO
如果FIFO不为空,则从该寄存器读取的数据将清空FIFO
如何解读
我的猜测是:如果我对此寄存器进行写入访问,它将
我想使用蓝牙模块来控制led的状态。我很确定程序会进入中断,因为它可以发回我用智能手机发送的字符。但是我也改变了代码中的全局变量LEDSTATE,但是LED的状态没有改变,我发现变量在一个监视窗口中保持不变。我很困惑。我试图使用关键字volatile或extern,但没有任何改变
volatile uint8_t LEDSTATE=1;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
uint8_t k;
UNU
标签: Stm32
stm32f4stm32f7stm32f0
我从M3迁移到M7。M3使用STM32F103VE,具有64 KB的SRAM。M7是STM32F746ZG,具有240KB的SRAM。我把大部分M3代码移到了M7。M7中的以太网功能使用了额外的LWIP。但我发现堆内存不足,并增加如下
#define configTOTAL_HEAP_SIZE ( ( size_t ) (42 * 1024 ) )
使用M3时,使用了以下堆大小
#define configTOTAL_HEAP_SIZE ( ( size_t ) (15 * 1024 ) )
我在玩STM32H743(核子板,STM32CubeIDE)上的RDP级别
以下是我测试过的代码:
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART3_UART_Init();
OBInit.Banks = FLASH_BANK_1;
HAL_FLASHEx_OBGetConfig(&OBInit);
RdpLevel = OBInit.RDPLev
例如,我有一个需要保存到闪存的计数器值,重新启动后,我想再次读取该计数器。我是ARM处理器的新手。我正在使用HAL驱动程序
类似于:
s8 adl_flhRead( ascii * Handle, u16 ID, u16 Len, u8 * ReadData );
s8 adl_flhWrite( ascii * Handle, u16 ID, u16 Len, u8 * WriteData );
您需要对闪存写入的工作原理有一些基本的了解-它不像写入RAM或EEPROM那样简单,在RAM或
尝试将STM32F4发现板上的二进制信号量与FreeRTOS一起使用会产生一些奇怪(甚至错误)的结果
首先,FreeRTOS的文档说明:
信号量handle_t xSemaphoreCreateBinary(void)
创建二进制信号量的函数。二进制信号量是
可用或不可用,因此为二进制
信号量是在“empty”状态下创建的,这意味着信号量
必须先给出,然后才能使用
xSemaphoreTake()函数
这很好,因为在这种情况下,一些Thread1会等待前面创建的信号量,直到它解除阻塞(Threa
在所有主要位置搜索了很长时间(超过3个月)以获取信息并阅读了该芯片的数据表后,我想询问STM32的专家,是否有使用ADC的示例,可能来自arduino IDE的DMA。我确实在这里看到了一些不完整的部分,以及其他编译器/IDE环境的部分。但也许我还没有幸运地找到我所需要的正确信息(连我都能理解)。
非常感谢你的帮助
我想对音频数据进行采样,一个30KHz以上的通道,12位,每次采集16个样本时,会有一个中断来处理数组中的数据
我看过pigOscope代码(它使用analogread)和关于ana
我开始在STM32探索板中使用SWD功能。我将openocd跟踪输出重定向到文本文件(因为我找不到任何适用于Linux的好的SWD监视器)。我不知道为什么我只发送了一个字符,却得到了两个字符
在我的输出文件中,每个字符前面都有不同的ASCII码(大多数情况下不可打印)。由于端口的原因,前面的代码是常量。例如:
Port 0:
0x01 [Character] 0x01 [Character] etc.
Port 1:
0x09 [Character] 0x09 [Character] etc.
标签: Stm32
bootloaderstm32f4usart
我想通过USART将STM32F446RE(在引导加载程序模式下)与我的电脑连接,以便在其上闪存一些HEX文件。
在USB端口和STM(USART1)之间,我得到了一个USB到USART的网桥(CP2102)。
我使用STM32CubeProgrammer将STM32F446RE连接到主机
一切都很顺利,但只有一件事有点棘手
我的问题是,这种联系没有直接建立起来。
我需要大约2或3次尝试,然后才能连接STM。
之后,它就可以正常工作了,没有任何问题
所以我的问题是STM在接收线上等待信号的时间有
可能会有粗鲁的表达,因为我不是以英语为母语的人。
我希望你能理解
我有一个如下所示的JTAG调试器,我想创建一个应用程序来控制JTAG
我知道有很多工具可以做到这一点。实际上,我也使用了IAR IDE工具,但我想知道IAR编译器如何控制JTAG
如何控制JTAG设备将二进制文件写入闪存?
任何信息都可以。如果你有任何线索,请告诉我
感谢阅读。在JTAG标准中,实现了一种协议,允许与微控制器进行通信,微控制器也使用该协议并具有硬件接口。该协议实现为一个状态机()。JTAG状态机的示意图如所示(即
标签: Stm32
uartat-commandkeil
我正在尝试通过UART通信与GSM模块通信。我可以像预期的那样从模块中得到消息。然而,当涉及while循环时(它是空的),调试会话以“cannotaccesstarget”错误结束。一步一步地,我要分享我的代码:
功能1处于发送状态。(注意:有些变量是全局声明的。)
第二个函数是AT_Init函数。它发送AT以获得OK响应。在这一点上,如果我没有错的话,我正在打开ReceiveInterrupt并尝试获取1字节
int AT_Init(UART_HandleTypeDef *huart, ATH
我想在我的STM32核子-64评估板核子-L073RZ上测量uC的电流消耗。手册上说,我只需拆下JP6/IDD跳线,然后将针脚连接到安培计:
但是,如果我只是删除JP6跳线无引脚连接,uC仍在运行,我仍然可以通过I2C进行调试/通信。我本以为,如果JP6被移除,uC将不再通电,因此无法访问
谁能解释一下,我的推理错误在哪里
以下是指向相应STM32 Nucleo-64手册第23页的链接:
将USB连接到调试端口是通过调试盒为MCU供电。试着从USB接口上取下左上角一英寸处的两条ST-LINK跳
我正在使用STOP模式来节省电源,同时取消初始化GPIO以实现最大的节能效果。在这种情况下,电流消耗低于1mA。我正在使用UARTRxpin作为外部中断,从STOP模式唤醒电路板。电路板确实会唤醒,但UART或其他外围设备(如DCMI)不工作。下面是我的代码
void MX_GPIO_Deinit()
{
GPIO_InitTypeDef GPIO_InitStruct;
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_
使用STM32H753,我在气缸组1的扇区0(0x0800000)中有引导代码,它检测并跳转到气缸组2的扇区0(0x08100000)中的应用程序代码。在应用程序代码中,我试图擦除和重写气缸组1扇区0,但当我在重置后过早设置FLASHH7\u CR\u START时,MCU锁定(没有故障处理程序输出)
应用程序代码非常复杂,支持芯片的许多功能,但既不支持银行交换,也不支持闪存CRC。已知故障处理程序可以工作
我尝试过的事情:
擦除前,从重置开始忙等待50-100ms;成功
将擦除/重写重定向到
在过去的两个晚上,我一直在尝试在STM32H7A3 MPU上设置计时器触发的DFSDM转换,但运气不好。谷歌搜索没有一个完整的例子,可能是因为DFSDM是一个更高级的主题。
目标:每隔1s向过滤器缓冲液中注入N个样品。
我附上了CubeMX设置的屏幕截图。转换在连续模式下按预期工作,因此通道和时钟设置正确。
在代码中,在启动1s计时器(HAL\u TIM\u Base\u Start())之前,我调用HAL\u DFSDM\u filterInjectedmsbsbsstart\u DMA()。
标签: Stm32
statusbarcan-bus
我想使用pcan USB适配器和带有stm32微控制器的pcan查看器软件(使用cube MX)。我不知道如何建立联系?请帮助我如何将stm32与安装在笔记本电脑上的pcan进行通信。我也需要can传输接收器吗?我也需要终端电阻吗?
请提供连接图。我投票结束这个问题,因为它是关于硬件的,而不是软件的,而且太广泛了。
我正在尝试发送示例文本,以确保UART\u GPIO\u传输功能正常工作。我使用两个字符数组:
char aMESSAGE[8] = "WHATEVER";
char bMESSAGE[10] = "0123456789";
此代码用于UART传输:
HAL_UART_Transmit(&UartHandle, &aMESSAGE,10, 0xFFF);
HAL_UART_Transmit(&UartHandle, &bMESSAGE,10, 0xFFF);
嘿,我在我自己的项目中使用ADS1292,我自己对SPI协议感到困惑
我在网上找到了一些代码,我发现它一次发送和接收
例如,我想向从设备发送0xFF
然后它首先发送数据并等待接收
当接收数据时,它发送一个伪字节,然后接收
谁能解释一下他们为什么这么做
uint8_t sEE_ReadByte(void)
{
return (sEE_SendByte(sEE_DUMMY_BYTE));
}
uint8_t sEE_SendByte(uint8_t byte)
{
/*!< Loop
我不知道有多少人使用STMCubeIDE来编程STM32微秒。显然,这是STMCubeMX工具与IDE的组合
我正在尝试将Cube.AI(AI包)添加到以下教程中,如。在第2.12分钟,您可以看到用户使用菜单中的“管理嵌入式软件包”(以及按钮)将Cube.AI添加到MX中
此按钮不在CubeIDE中,菜单选项处于非活动状态
有人能告诉我如何将Cube.AI安装到CubeIDE吗?第一次单击“检查更新”以确保您的STM32CubeMX是最新的,
然后重新启动并安装CUBE-AI软件包。
您可能需要
我正在寻找用STM32CUBEMX实现LIN协议,我已经在网上搜索过了,有一些文档和源代码。
是否有人通过STM32CUBEMX实现了LIN总线侦听器项目?
最好的问候硬件支持lin uart硬件模块可以在lin模式下运行。ST的HAL层还具有控制LIN设置的特殊功能。应该很容易让一个监听器运行。我没有发现任何相关的东西,但一些旧的和难以理解的代码
我有一个项目,其中包括STM32f4哈尔库和大量的代码。我有这个项目的makefile++
我想将我的项目导入IAR编译器。我如何做到这一点而不改变我的项目。如何通过在项目中添加一些内容来转换它?您需要在IAR中创建一个新项目,并自己添加所有设置。这是相当直接的,如果你不熟悉IAR,它将帮助你学习。它比makefile简单得多。当然,IAR也可以处理makefiles,但它可能不是最好的起点
将有一些编译器特定的HAL文件,您需要更改启动代码。这些已经在STM32 HAL下载中。您需要在IAR中
我正在使用STM32和CC1310,我有两个问题,两个问题相同。
我没有在其中任何一个上编写引导加载程序,我认为我无法获得它们的代码
-我如何放置一个比我的内存大的文件?我猜是压缩,但我不知道是否已经有了内置选项。(我对STM32的数据表有点迷茫,它可能是写的,隐藏在显而易见的地方)
-我想知道内存中已经存在的文件是什么,以知道是否需要更新,或者该文件是否是最新的。我正在考虑获取文件名,是否可以将其取回
PS:由于我没有编写引导加载程序,是否有可能以某种方式访问其代码?STM32有一个引导加载程
我正在使用STM32F103进行一个项目,我已经完成了固件的开发。我使用ST-Link实用程序将内容下载到微控制器。当我激活芯片上的读取保护时,它停止工作。我需要保护我的固件。有什么问题吗?您必须先解锁闪光灯。STM32 StdPeriph库中应该有一个调用。我的代码如下所示:
/* Read protect the flash. NEVER EVER set this to level 2. You can't
* write to the chip ever again after t
这个问题的答案在这里
很好地解释了整个机制,但我得到的是整个向量表填充了阻塞处理程序
我知道这一点,因为我在调试器中看到了它(除了整个事情不起作用之外):
这就好像链接器只是忽略了我定义良好的中断处理函数,例如:
void系统勾选处理程序(void)
{
...
}
作废tim1\U up\U isr(作废)
{
...
}
我正在使用embitzide,并遵循本教程使libopencm3正常工作(除了本期之外,它确实正常工作)
我对函数名进行了n-fold检查,并尝试了几个在线示例,包括l
我想在stm32f103中配置SPI1。为什么需要使引脚AF(备用功能)?它不能仅仅是输入或输出吗?当引脚为AF时,实际会发生什么情况?通过设置备用功能,这些引脚可以连接到多个不同的外围模块,您正在配置IC内的多路复用器,以便将管脚连接到正确的外设块以供使用。输出管脚可以由GPIOODR寄存器或外设控制。一定有办法说谁有控制权。如果您不需要外设的所有输出信号,可以将相应的引脚保留为GPIO,并将该引脚用于其他用途
如果引脚设置为通用输出,则输出电压电平由ODR寄存器确定。外围控制器对输出没有影
标签: Stm32
halstm32f0cubemx
我将STM32F030RCT6与CubeMX一起使用。设备是一个数据记录器,RTC是不能失败的主要因素。上有关于RTC卷影寄存器的内容
我将CubeMX配置为不生成MX\u RTC\u Init()函数,到目前为止它一直正常工作。(我用的是伦敦证交所)
我需要从GSM时间更新时间/日期,但当我使用HAL_SetDate()将年份设置为18时,经过一小段延迟后,我使用HAL_GetDate()读取数据,sDate.year给了我20。除了年份,其他值都是正确的
我尝试的是:
旧大规模集成电路
w
标签: Stm32
loralorawanstm32ldiscovery
我如何通过LoRaWAN发送消息
static void PrepareTxFrame( uint8_t port )
{
switch( port ) {
case 10: {
int pos = 0;
pc.printf("Prepare message\n");
#if 0
uint32_t tempValue = ( uint32_t )( LightValue * 1000000.0 );
AppData[0]
标签: Stm32
mbedreal-time-clock
我正在做一个集成STM32L051R8T6芯片组的项目,我需要RTC功能来实现一些功能,比如慢定时器和睡眠唤醒。但是,如果调用Mbed的set_time()来设置RTC,则程序将挂起或无法按预期执行
在实现任何东西之前,我试图运行Mbed的RTC示例代码:,但我没有运气。RTC似乎是用set_time()设置的,但是,当我调用time(NULL)时,我总是得到初始设置时间。看起来RTC没有计数
我正在使用Mbed的在线编译器编译STM32L053R8的代码,不确定该目标是否与我的非常不同,这就是
标签: Stm32
uartplatformiobluepill
我一直在想如何将代码上传到STM32103c8T bulepill板。
我的设置是
1-MacOs Catalina
2-STM32103c8T bulepill板
3-板UART USB-TTL CP2012 V3.0
4-平台化IDE
5-STM32立方体程序员软件,通过UART检测并连接到我的主板。
这意味着连接没有问题,但设置平台有问题
顺便说一句,我对ARM世界还不熟悉,我买了这块板来检查它的速度、深度睡眠和中断,我指的是Arduino Uno不能做的所有事情
问题是我不知道如何设置p
几天来,我一直在研究使用I2C控制多个I/O扩展器的操作
我研究了文档并提出了一些代码(我不与HAL合作,因为我对理解寄存器感兴趣)
#包括“main.h”
#包括“stdio.h”
//功能
/***时钟和计时器部分***/
//系统时钟设置
int systemClockInit(){
//开始时钟序列
/*
1-运行HSE+等待准备就绪
2-配置PLL
3-EN PLL+等待就绪
4-设置闪存等待周期
5套母线分压器
6-切换到PLL模式
7-禁用HSI(可选)
*/
//身体
int w
我正在使用stm32f767zi,我正在尝试通过USART外围设备发送测试数据。我在任何设备上都做了相同的配置,但这次它没有输出任何东西。。。我找不到错误,有人能帮忙吗
时钟设置
// Enables TIM8 (Delay), USART1 (STDOUT)
RCC->APB2ENR |= (RCC_APB2ENR_TIM8EN
| RCC_APB2ENR_USART1EN);
// Enables GPIOA, GPIOB, GPIOC, GPIOD, GPIOE, GPIO
我无法通过Olimex将ENC28J60-H连接到我的STM32L发现。
所以我写代码,读取一个ECON1寄存器,然后将一些值写入其中,然后再次读取。这里有一个问题:当我在这段代码的每一行使用一个分步调试程序(F10)时,一切都很顺利。但当我在这行之后设置断点时,寄存器返回0x00。
我决定,ENC只是没有足够的时间将值写入寄存器。但手册上说,它有自己的晶体振荡器,频率为20或25兆赫(记不清了)。我的频率大约是150千赫。
无论如何,我在每次SPI发送或接收之后设置了一个延迟(循环中的简单计数
我使用SWD在stm32芯片中加载固件并进行调试。它使用3个引脚:SWCLK(TCK)、SWDIO(TMS)和GND
我是否可以使用SWD接口中未使用的其他JTAG引脚:
(TDI、TDO、TRST)
为了自己的目的,同时保留在芯片中闪烁固件的可能性?嗯,这可能取决于调试器的功能
但总的来说:是的,您可以通过SWD进行flash编程,并将剩余的JTAG引脚用于其他目的。例如,一个Lauterbach调试器可以做到这一点
但是,如果调试器工具支持跟踪记录,我不会在应用程序中使用TDO引脚,因为该引
我正在使用一个STM32F4,我想与我的LSM303加速计通信。因此,我使用的是I2C,仅仅使用I2C就可以了,但当我尝试使用DMA时,它就停止工作了。
当我使用HAL_I2C_Master_Transmit_DMA时,它可以工作,我得到了IRQHandler和。但在那之后我想使用HAL_I2C_Master_Receive_DMA时,它会说I2C的状态还没有准备好。。。
我读到I2C与STM32FX有点混乱,但我不明白为什么它在没有DMA的情况下工作良好
此外,当它点击主站传输DMA的回调I2
我使用I2C工具测试固件(基于HAL)、I2C、STM32L0 MCU。当我向MCU发送命令(通过i2cset实用程序)时,它会发送一个应答(在i2cget中接收)。它很好用。如果在单个i2cset之后调用i2cget两次,它就会失败(这是预期的行为)。但如果我在那个错误之后执行i2cset,那么它也会失败。因此,接收传输中断(没有激活回调)。怎么能修好呢
目前,HAL\u I2C\u Slave\u Receive\u IT()在HAL\u I2C\u SlaveTxCpltCallback(
基于这个原因,我很确定这个问题的答案是“你不能”,但无论如何,这是值得一问的。在STM32处理器上,有没有办法确定软件中的特定CPU类型?(即,我想知道我的代码是在STM32F407x、STM32F417x还是STM32F437x上运行)您要查找的信息位于DBGMCU\u IDCODE寄存器中。从那里你可以分辨出你是407还是437,但我不认为你能分辨出你是407还是417
你可以试着给加密单元写信,看看它是否能区分407和417,但我不知道它是否可靠。有一个HAL库可以让你走得更远:
我刚买了一个STM32H747I-DISCO板。当我尝试调试它并使用其内部ST链接和STM32Cube IDE将代码加载到它时。它说:
在地址“0xa05f0000”处中断,没有可用的调试信息,或在程序代码之外
当出现一个小选项(查看反汇编)时,它会引导我找到一些汇编代码。我怎样才能修好它?我只是想让简单的led闪烁。老实说,我不知道如何使用这块板。这是我第一次使用它,也许我试图将代码写入错误的内核?或者问题出在调试属性中。我受够了。我怎样才能修好它
编辑:好的,所以我发现它也给出了“程序接收信
有人能解释一下STM32上的内存布局是如何工作的吗?例如,我使用的是STM32F205RCT6,它的闪存容量256Kbyte
如果我理解正确,这意味着我不能使用超过扇区5的内存。,因为我会违反256Kb的大小,对吗
下面的数据表图像()
您可以访问尽可能多的内存
如果您有256Kbyte闪存,则可以通过0x8000000-0x803FFFF访问
擦除扇区时,只能访问扇区0、扇区1、扇区2、扇区3、扇区4和扇区5,因为这些扇区的大小之和为256KB(相当简单的数学)
您必须了解,数据表用于多种型号
所以我使用的是STM32F103C8T6板,几天前它还可以正常工作,但最近我尝试用keil vision编译器加载代码,结果显示了以下消息STLINK错误(DEV_TARGET_Hold_处于_RESET状态)。
之后,使用STM32CubeProgrammer也显示了相同的问题,仅使用“热插拔”模式连接
这显然是一个重置错误,但我真的不知道它是怎么发生的,也没有在互联网上找到多少关于这个问题的资源,现在我无法在显示的stm32f103板上下载任何代码
在互联网上研究后发现可能是焊接问题,但
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 17 页