-
不要这么定义,先分配好Flash空间
-
向上计数,ARR里面就是终止值
-
学习了,这么先进的东西.
-
接分。。。。
加入。
-
如果输入引脚上有外围电路,可以使用浮空输入配置,否则最好使用内置上拉或下拉。
-
显示不正常可以在唤醒启来再加一次初始化LCD,可能跟屏有关系。
-
楼主是 想开发 对应控制的应用程序吗?
好像都可以啊。
-
引用 8 楼 yueliren 的回复:
用个一个while()检测高电平,然后在其内部给你想要高电平的那个管脚置1,C语言的话,先用bit声明一个为变量,初始化为1,然后赋值给那个管脚。
用汇编的话,就直接给此管脚赋值1就行了
我看行
-
BOOT里面为什么要用DMA呢?
另外,楼主用的是什么MCU。
-
不是wzctool
-
你是要做单片机啊 还是要写程序啊
-
对于16位总线,不可能有地址0x6C00 0001,只有0x6C00 0000,0x6C00 0002.。。。。。
是啊,2个字节为一个单位,但关键是为什么0x6C00 0002时A0=1
-
可以清屏啊,清屏后再写数据
-
用单片机自身的定时器做长时间小误差的定时,很难。最好用过专用的时间芯片来完成
-
版主,目前我TIM中断是这么处理的:
IT_Status = TIM4->SR & (TIM_IT_CC1 | TIM_IT_Update);
IT_Enable = TIM4->DIER & (TIM_IT_CC1 | TIM_IT_Update);
IT_Flag = IT_Status & IT_Enable;
TIM4->SR = (INT16U)(~(TIM_IT_CC1 | TIM_IT_Update));
if (ValBit(IT_Flag, 0))
{
O4FLOW2_FreqA_Step_CNT1++;
TIM4->SR &= 0xfffe;
}
//==
if (ValBit(IT_Flag, 1))
{ // TIM_IT_CC1
// Clear TIM2 Capture compare interrupt pending bit
TIM_ClearITPendingBit(TIM4, TIM_IT_CC1);
// Get the Input Capture value
O4Flow2_FreqA_IC1Value1 = TIM_GetCapture1(TIM4);
if (O4Flow2_FreqA_IC1Value1 != 0)
{
O4Flow2_FreqA_IC1Value1 += 0x10000*(O4FLOW2_FreqA_Step_CNT1-1);
// Frequency computation
O4Flow2_FrequencyA = 36000000000 / O4Flow2_FreqA_IC1Value1;
O4FLOW2_FreqA_Step_CNT1 = 0;
}
else
{
//DutyCycle = 0;
O4Flow2_FrequencyA = 0;
}
}
不过有一个疑问,是否CC1IF使能的话,也会导致UIF中断位置位?
如果是的话,那么O4Flow2_FreqA_IC1Value1 += 0x10000*(O4FLOW2_FreqA_Step_CNT1-1); 这句中O4FLOW2_FreqA_Step_CNT1-1 是有道理的。
因为我刚才测试,这个计数值-1的话,好像频率测量是对的。 不过没想通为何要-1
-
俺前一段配了一套太阳能,50W的,包括65AH的蓄电池,控制器,逆变器等花了1K多。
DC-DC转换,俺想还是需要专门的逆变器,俺的系统12V蓄电池,经逆变后,给24V电动车充电.............汗一下。
-
顶下;
晚点再给下具体代码。
-
先把datasheet、user manual啃一遍
在开发板的基础上写一个小应用熟练一下
操作系统方面的基本知识要掌握
-
Becky0311@tom.com
多谢啦
-
三年,我只是找到了一个可以睡觉和上自习的地方.