小编San*_*ius的帖子

如何在STM32上启动和停止计时器?

我有一个大问题.我不知道如何用按钮停止计时器并用另一个按钮重新启动计时器.

这是我到目前为止的代码:


此代码是启动计时器的按钮的中断处理程序.我认为通过启用到目前为止工作的计时器是可能的.

void EXTI0_1_IRQHandler(void)
{
    if ((EXTI->PR & EXTI_PR_PR1) == EXTI_PR_PR1)  /* Check line 1 has triggered the IT */
    {
        EXTI->PR = EXTI_PR_PR1; /* Clear the pending bit */
        NVIC_EnableIRQ(TIM7_IRQn);

    }
}
Run Code Online (Sandbox Code Playgroud)

此代码是停止计时器的按钮的中断处理程序.这段代码不起作用,计时器保持打开状态.

void EXTI4_15_IRQHandler(void)
{
    if ((EXTI->PR & EXTI_PR_PR4) == EXTI_PR_PR4)  /* Check line 1 has triggered the IT */
    {
        EXTI->PR = EXTI_PR_PR4; /* Clear the pending bit */
        NVIC_DisableIRQ(TIM7_IRQn);
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有人有一些提示或知道它必须如何?

c timer stm32

5
推荐指数
2
解决办法
1万
查看次数

点击事件后,值消失

我尝试用onclick事件制作一个带有javascript的计算器我想要按钮的值来转换输入文本框.当我在文本框中简单地将代码的值写入代码时,它会立即消失.

我使用的代码可以在本文下面找到,我做错了什么.
HTML:

    var iGetal = 0;
    function GetalRekenmachine()
    {
        iGetal = iGetal + 1;
        document.getElementById("Display").value = iGetal;
    }
Run Code Online (Sandbox Code Playgroud)
 <button id="Cijfer7" value="7" onclick="GetalRekenmachine()">7</button>
    <input type="text" id="Display"/>
    


    
Run Code Online (Sandbox Code Playgroud)

javascript onclick

2
推荐指数
1
解决办法
1909
查看次数

从 uint16 到 uint8 的转换

有人知道如何在我的 STM32F091 的 C 程序中正确地将 uint16 转换为 uint8 吗?

我以为是这样的:

uint16_t Test = 0x565;
uint8_t Test2 = (uint8_t)Test;
Run Code Online (Sandbox Code Playgroud)

但这效果不佳,所以有人有建议吗?


[来自评论的更新:]

我使用的电位器的最小值为 0x0,最大值为 0xFFF。测试必须有ADC1->DR的值(这是来自STM32F0中ADC的值)

c compression type-conversion stm32

2
推荐指数
1
解决办法
3067
查看次数

将字符串添加到数组 C(指针)

大家好,下面我有一些代码可以初始化一个有 4 个元素的数组,但有 50 个元素的空间。

现在我希望我可以手动向数组添加一些元素,但它对我不起作用有人可以帮助我吗?就像这里我想将 Sander 添加到第 5 个元素。

#include <stdio.h>

int main()
{
    int i;

char *arr[50] = {"C","C++","Java","VBA"};
char *(*ptr)[50] = &arr;

(*ptr)[5]="Sander";
for(i=0;i<5;i++)
    printf("String %d : %s\n",i+1,(*ptr)[i]);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

多谢

c arrays pointers c-strings string-literals

2
推荐指数
1
解决办法
2万
查看次数

同一EXTI Line STM32上有多个中断

对于PA1和PC1的例子,是否可以从相同的EXTI线获得多个中断,它们都在EXTI1上.

因此,通过点击PA1上的按钮,LED在PB6上亮起,然后点击PC1,LED在PC0上切换.

微控制器==> STM32F091

这是我用于2个不同行的中断的代码:

//PC1
SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI1_PA;
EXTI->IMR = EXTI_IMR_MR1;
EXTI->RTSR = EXTI_RTSR_TR1;
EXTI->FTSR = EXTI_FTSR_TR1; 
//PB0
SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI1_PC;
EXTI->IMR |= EXTI_IMR_MR1; 
EXTI->RTSR |= EXTI_RTSR_TR1; 
EXTI->FTSR |= EXTI_FTSR_TR1;
NVIC_EnableIRQ(EXTI0_1_IRQn);
NVIC_SetPriority(EXTI0_1_IRQn,0);
Run Code Online (Sandbox Code Playgroud)

中断处理程序:

void EXTI0_1_IRQHandler(void)
{
if ((EXTI->PR & EXTI_PR_PR1) == EXTI_PR_PR1)  /* Check line 1 has triggered      the IT */
{
EXTI->PR = EXTI_PR_PR1; /* Clear the pending bit */
GPIOC->ODR ^= 1<<0;
}
if ((EXTI->PR & EXTI_PR_PR0) == EXTI_PR_PR0)  /* Check line 0 has triggered  the IT …
Run Code Online (Sandbox Code Playgroud)

c interrupt stm32 interrupt-handling

1
推荐指数
1
解决办法
4621
查看次数