我有一个大问题.我不知道如何用按钮停止计时器并用另一个按钮重新启动计时器.
这是我到目前为止的代码:
此代码是启动计时器的按钮的中断处理程序.我认为通过启用到目前为止工作的计时器是可能的.
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)
有没有人有一些提示或知道它必须如何?
我尝试用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)
有人知道如何在我的 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的值)
大家好,下面我有一些代码可以初始化一个有 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)
多谢
对于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 ×4
stm32 ×3
arrays ×1
c-strings ×1
compression ×1
interrupt ×1
javascript ×1
onclick ×1
pointers ×1
timer ×1