microcontroller 相关问题

此标记与微控制器有关的问题有关。微控制器是一种简单或小型处理器,其程序和执行存储器通常位于同一芯片上,带有用于控制其他硬件的输入/输出引脚。请指定与您的问题相关的微控制器和编译器或工具。

时域信号的STEVAL-STWINKT1B单位

我需要使用圣路易斯提供的数据记录器软件来分析我保存为 .csv 文件的原始麦克风数据。 STEVAL-STWINKT1B 用作数据采集的传感器。我找不到任何

回答 1 投票 0

与外部 SPI 闪存通信时是否应禁用中断?

我在 STM32 MCU 上使用外部 SPI 闪存。 我想知道以下情况是否会导致闪存或读取缓冲区中的数据损坏? 如果 ISR 同时触发,则

回答 1 投票 0

使用 git 管理自动生成的微控制器代码的编辑、修补和合并

我们使用的工具 (STM32CubeMx) 提供 GUI 来配置嵌入式微控制器,并根据该配置生成完整的 C 项目。这包括 C 文件、头文件和 o...

回答 1 投票 0

有没有比使用 sprintf 将浮点数格式化为字符串更节省空间的方法?

我正在为微控制器开发C代码,该代码从传感器获取输入,并将来自传感器的数据以及字母数字字符LCD上的其他字符串一起输出。 我一般用...

回答 3 投票 0

以STM32F10为例,当我启用Usart1时,为什么CUBEMX不调用HAL_GPIO_Init来设置相应引脚的备用功能?

我只是尝试了解 .ioc(cubemx) 文件如何响应我在 MCU 中设置的配置,当我启用外围设备(例如 usart 或其他)时,它必须生成关联的代码...

回答 1 投票 0

如何将函数放置在C中的特定地址?

我想在特定位置放置一个函数void loadableSW (void):0x3FF802。在另一个函数 residentMain() 中,我将使用函数指针跳转到该位置。如何声明函数

回答 2 投票 0

TensorFlow Lite 转换器代表_加速计数据上的 Conv2D 数据集

我有一个 TensorFlow Keras 模型,看起来像这样。请注意,这个模型太大,无法在微控制器上运行,这是我的最终目标,但这是一个起点。最终目标是获得

回答 1 投票 0

I2C 不工作,从设备不确认。收到地址后

作为初学者,我尝试在两个 pic18f4550 之间发送数据,其中主机发送数据,从机接收数据并在 LED(PORTD)上打印数据位。但不知道问题出在哪里,奴隶不是

回答 1 投票 0

在C和C++中,为什么这个带有递增整数的`main`函数永远不会溢出?

在C和C++中,嵌入式最基本的main函数是: int 主函数(无效){ 整数 i = 0; 而(1){ 我++; } } 但是,由于 i 是一个整数,它不会在某个时候溢出吗? 另外,...

回答 2 投票 0

c 和 c++ 为什么 main 永远不会溢出?

所以在c和c++中,嵌入式最基本的main是 int 主函数(无效){ 整数 i = 0; 而(1){ 我++; } } 但由于“i”是一个整数,它不会在某个时候溢出吗? 另外,使用安全吗...

回答 1 投票 0

PIc16f886 不将字符串转换为 int

我正在尝试从eeprom读取保存的值,在将读取的数据转换为整数之后,将eeprom读取为字符很容易完成,但不起作用 我的代码是: 字符AM[]; int per,vt,vtt; 上午[0]=

回答 1 投票 0

使用 MPLAB X IPE v6.15 编程 HEX,导致 PIC 无法启动

使用 MPLAB IDE(32 位版本)对 PIC18F6722 进行编程时,我的 PIC 工作并成功启动,但是当我使用 MPLAB IDE 生成的十六进制,但使用 MPLAB X IPE 对其进行编程时,

回答 1 投票 0

在 keil uVision for LPC2148 逻辑分析仪上找不到我的信号

我正在尝试在keil上为lpc2148运行我的PWM程序。占空比为 10%。但是,我可以在 Port0 (P0.21) 上看到信号。 这是我的代码。我非常有信心这是正确的。 #包括 我正在尝试在keil上为lpc2148运行我的PWM程序。占空比为 10%。但是,我可以在 Port0 (P0.21) 上看到信号。 这是我的代码。我非常有信心这是正确的。 #include<lpc214x.h> int main() { PINSEL0=0x00000000; // P0.0 to P0.15 pins of PORT0 as GPIO PINSEL1=0x00000400; // P0.21 Pin of PORT0 as PWM PINSEL2=0x00000000; // P1.16 to P1.31 pins of PORT1 as GPIO /*Configure the PLL block and set the CCLK and PCLK at 60 MHz */ PLL0CON=0x01; PLL0CFG=0x24; PLL0FEED=0xaa; PLL0FEED=0x55; while (!(PLL0STAT & 0x00000400)); PLL0CON=0x03; PLL0FEED=0xaa; PLL0FEED=0x55; VPBDIV=0x01; /* Setup and initialize the PWM block */ PWMPCR=0x00; // Single Edge PWM Mode PWMPR=60000-1; // Resolution of PWM is set at 1 mS PWMMR0=10; // Period of PWM is 10 mS PWMMR5=1; // Pulse width of PWM5 is 1 mS PWMMCR= (1<<1); // PWMTC is reset on match with PWMMR0 PWMLER= (1<<5)| (1<<0); // Update Match Registers PWMMR0 and PWMMR5 PWMPCR= (1<<13); // Enable PWM5 output PWMTCR= (1<<1); // Reset PWM TC and PWM PR PWMTCR= (1<<0)| (1<<3); // Enable PWM Timer Counters and PWM Mode //PWMMR5 = 1; //PWMLER = (1<<5); //Update Latch Enable bit for PWMMR5 } 请帮忙。 Keil 调试器的“逻辑分析器”工具通过 SWO 跟踪监视特定的“全局”变量。您的代码没有全局变量,并且您没有说明您正在监视的内容。 在实际硬件上仅可以监视全局变量。外设寄存器和 I/O 引脚只能在仿真中进行监控,如 https://www.keil.com/support/man/docs/uv4/uv4_db_dbg_logicanalyzer_restrictions.htm 要获得跟随 PWM 的跟踪,您需要实现一个 PWM 中断处理程序,该处理程序要么将输出引脚的状态复制到全局变量,要么(更好)读取 PWMIR 寄存器并将其复制到全局变量,然后/或将全局设置为由 PWMIR 寄存器推断的状态。然后你监视全局变量而不是直接监视引脚。例如: volatile bool pwmout = 0 ; volatile bool pwmmatch = 0 ; __irq void PWM_ISR( void ) { pwmmatch = PWMIR ; if( (PWMIR & 0x0001) != 0 ) // MR0 = 1 { pwmout = 1 ; } else if ( PWMIR & 0x0020 ) // MR5 = 1 { pwmout = 0 ; } PWMIR = 0 ; // clear interrupt VICVectAddr = 0x00000000; } 然后您可以在逻辑分析仪中监控 pwmout 和/或 pwmmatch。我不熟悉您的特定微控制器,因此上述内容可能需要一些调整。显然,您还需要启用中断处理程序 - 例如: VICVectAddr0 = (unsigned) PWM_ISR; /* PWM ISR Address */ VICVectCntl0 = (0x00000020 | 8); /* Enable PWM IRQ slot */ VICIntEnable = VICIntEnable | 0x00000100; /* Enable PWM interrupt */ VICIntSelect = VICIntSelect | 0x00000000; /* PWM configured as IRQ */ 但我只是复制现有的示例 - 不保证。 最后在main()的末尾添加一个无限循环以防止main()终止到谁知道在哪里:for(;;) { // do nothing } 是的,代码是正确的,但是要使用Keil逻辑分析仪观察波形,您需要指定正确的端口引脚符号。您应该使用 “PORT0.21”,而不是使用 “P0.21”。

回答 2 投票 0

在微控制器上,是否可以使用轮询来读取串行端口而不丢失传入数据?

在微控制器上,是否可以使用轮询来读取串行端口而不丢失传入数据? 假设我的 MCU 有一个用于 UART 的 1 字节硬件缓冲区。在 115200 波特率下,这意味着我大约...

回答 1 投票 0

BCD 数学例程而不是使用除法和取模(使用 MSP430F427 MCU)

我正在使用MSP430F427 MCU,我有下面的代码来提取个位(d5)、十位(d4)和百位(d3)。我期待 4 位数字的值,例如 1000+,但必须仅显示 3 位数字 (

回答 1 投票 0

__CC_ARM、__ICCARM__、__GNUC__ 和 __TASKING__ 宏是什么意思?

我正在stm开发STM32l151rct6a,我偶然发现了这些宏定义 __CC_ARM、__ICCARM__、__GNUC__、__TASKING__ 有谁知道他们的意思吗?

回答 3 投票 0

为什么 CMSIS DRIVER 不提供嵌入式世界中使用的所有重要驱动程序

我想使用CMSIS驱动API而不是stm提供的HAL。当我访问链接 CMSIS DRIVER APIs No 我在哪里找到的,最常用的驱动程序,如 pwm、adc、gpio 等,为什么会这样...

回答 1 投票 0

如何知道串口中哪个接收帧有错误?

我在学习通信协议时使用atmega32,我对uart中的奇偶校验标志有疑问,如果接收到的数据有奇偶校验问题,则设置该标志。现在我从

回答 1 投票 0

为什么我需要在atmega2560上的ADC中添加巨大的延迟来切换通道?

我有这段代码,它需要多个 adc 转换并以串行方式发送它们,如果我在 set_ADMUX() 之后不添加 3 ms 延迟,则 ADC 样本不是通道的正确样本,但我认为它是一个。 ..

回答 1 投票 0

PIC12F675 休眠期间的 WDT 复位问题 - 需要较长的唤醒间隔

我正在开发一个使用 PIC12F675 微控制器的项目。我的目标是使用 GPIO1 上的内置 ADC 读取电压,并根据测量结果,我想打开 LED 几秒钟...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.