-
版主啊,你是不是认为我在用DMA+GPIO来传输?而不是DMA+SPI?DMA+GPIO可能么?我看手册上的DMA外设立有GPIO,但那它的传输请求是什么啊?系统怎么确定多久改变一次GPIO.类似SPI收到数就传输一次,ADC采了样就传输一次。GPIO何时传输一次?
-
已经解决了,在timer初始化程序中加入下面语句即可!
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
但还有一点不解,timer的其他通道不加此语句也能够输出设定波形。
不是是否是channel 1对应引脚的默认功能不是定时器所致。
-
谢谢大家, 我的stm32f101vb用在智能小车,我用左右轮测速功能,左右轮子每走1cm会产生42个中断,一秒钟左右轮各会产生2000左右个中断,加上5个红外遥控接收头。不停的有信号中断进来,加上systick的中断,相当于每 ...
hobbolo 发表于 2010-8-13 11:29
-
根据实际要求选择
-
又是卖广告的
-
因为仰慕您是版主啊 要不然怎么点名问呢 通讯的东西不一样 但机理相同
https://bbs.eeworld.com.cn/viewthread.p ... ight=STM32%2BI2C%2B
看这个 之前也有人 出现类似的问题
相似的问题应该总结下 避免后面的人犯同样的错误和提类似的问题
-
MARK,
-
建议arm9做主机 好歹有个操作系统不是
是否可以从单片机上连一个中断信号到ARM上,这样单片机收到信号之后可以给ARM个中断,实时性应该能保证。
-
我QQ是645776221,呵呵,我加你
-
需要在注册表中将串口配置名为 COM1
-
引用 1 楼 solomon1 的回复:
任务在删除过程中是dead态
MARK,学习下、
-
我修改了一下,用TIM2作4路捕获输入。我用同一PWM信号输入到4路上(常态低电平),怎么读CCR1~CCR4的值都不一样啊?搞了好久都不知道什么问题。能帮我看一下吗?程序如下。 输入PWM频度为1K的方波。
int main(void)
{
#ifdef DEBUG
debug();
#endif
/* System Clocks Configuration */
RCC_Configuration();
/* NVIC configuration */
NVIC_Configuration();
/* Configure the GPIO ports */
GPIO_Configuration();
//TIM2输出初始化
TIM_TimeBaseInitStruct.TIM_Period = 9999; //周期0~FFFF
TIM_TimeBaseInitStruct.TIM_Prescaler = 5; //时钟分频
TIM_TimeBaseInitStruct.TIM_ClockDivision = 0; //时钟分割
TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;//模式
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);//基本初始化
//TIM2通道的捕捉初始化
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1 ;//1通道选择
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising ;//上降沿
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;//管脚与寄存器对应关系
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;//分频器
TIM_ICInitStructure.TIM_ICFilter = 0x4; //滤波设置,经历几个周期跳变认定波形稳定0x0~0xF
TIM_ICInit(TIM2, &TIM_ICInitStructure); //初始化
TIM_ICInitStructure.TIM_Channel = TIM_Channel_2 ;//2通道选择
TIM_ICInit(TIM2, &TIM_ICInitStructure); //初始化
TIM_ICInitStructure.TIM_Channel = TIM_Channel_3 ;//3通道选择
TIM_ICInit(TIM2, &TIM_ICInitStructure); //初始化
TIM_ICInitStructure.TIM_Channel = TIM_Channel_4 ;//4通道选择
TIM_ICInit(TIM2, &TIM_ICInitStructure); //初始化
TIM_SelectInputTrigger(TIM2, TIM_TS_TI2FP2); //选择时钟触发源
TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset);//触发方式
TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable); //启动定时器的被动触发
TIM_ITConfig(TIM2, TIM_IT_CC1 | TIM_IT_CC2 |TIM_IT_CC3 |TIM_IT_CC4, ENABLE); //打开中断
TIM_Cmd(TIM2, ENABLE); //启动TIM2
while(1)
{}
}
-
SM501 SM502
-
有大概如下问题:
1、COMMTIMEOUTS结构体里的超时还没有设定
2、创建串口的时候,并没有用重叠io模式,注释与代码不一致
3、PurgeComm是清空接收或发送缓冲区,代码中在WriteFile之前清空了接收缓冲区,但是并没有调用ReadFile来接收串口数据。
4、WriteFile的第二个参数并不是字符串类型,是LPCVOID,也就是const void*
5、main函数的返回值是int,并不是布尔值,如果想提前返回,须return 0
6、整个主函数只是调用了一次发送,最好写个循环多次发送,这样便于观察数据
最好还是用现成的封装好的串口通讯类库。比如cserial或serialport等
-
单片机也可以使用多线程的么?楼主移植的是什么系统?
-
不顶,不行了,谢谢了!!!!!!!!!!!!!!!!
-
我刚才登陆了WAVECOM的官方网站,Q24PL002不是每款都支持TCP/IP的,我估计我被骗了,我的这个模块正好是没有这个功能的,
现在的问题是,我用ATD*99***1#工作正常,也就是说只能外接MCU使用AT指令来操作这个模块,还是可以使用内部的API能嵌入式的实现ATD*99***1#同样的工作呢。我现在只需要在FCM数据流中能收到ATD*99***1#之后的数据,为什么这么难实现,按道理来说,应该可以的啊,AT能实现,为什么使用ADL就不能呢????
我从OPEN AT 的文档里看到adl_gprsAct()函数的功能和ATD*99***1#的功能实质是一样的啊,而且响应时操作成功啊,FCM也已打开,为什么数据流一点反应都没有呢。。。
-
http://topic.eeworld.net/u/20091111/16/8f1cde89-22c6-467e-a11e-8d2e5f020885.html?68418
你追踪这封帖子下去就会有结果的
自己也可以google一下,申请的内存要怎么释放
比如new后,会跟着delete,要一一对应
-
现在的情况是我用GPRS modem拨号,ATD*99***1#后进行一系列验证,我已经通过了用户验证,然后终端分配了ip给我,ip是10.xxx.xxx.xxx,但是收到这个ip还是没连上网络啊,收到这个ip后我该怎么操作呢?是不是要再发请求给终端然后才能连接上
-
引用 6 楼 duojinian 的回复:
把你用的软件版本告诉我,我下来试试。
wave6000集成调试环境
谢谢了