-
上面的IRS2011给浮栅充电的二极管漏了,照下面的一样加上试试
-
原帖由 tianshuihu 于 2013-11-20 21:36 发表 [url=https://bbs.eeworld.com.cn/redirect.php?goto=findpost&pid=1592749&ptid=419131][/url]
一岁多的孩子使用电烙铁...我无法想象这是怎样一幅画面,只记得小侄子一岁才刚刚会走,偶尔咿咿呀呀说出几个不太清楚的词语...
孩子有爱好可以发展,做出成绩值得表扬,但是不可过分夸大表扬,媒体更应该对大众对孩 ...
话说得很中肯,自己用电铬铁就被烫过好多次,一岁的小孩怎么可能把弄好,媒体太不负责任。。。。。。。
-
好东西
-
好吧,看来确实不错
-
ucos3 不倚赖于malloc,任务栈以及内核对像可以在静态或动态分配。ucos3管理了中断栈(msp),栈大小由一个配置宏来设置。
系统启动之前创建一个起启任务,如果能运行到起始任务则IDE栈配置没有问题,若运行到启动任务之后死机,则需检查任务栈、中断栈是否溢出,
总之,问题应当很简单,也很容易找。Goodluck~~~~~~~~~~~~
-
大部分编码器都有零信号,编码器每转动一圈发出一个零点信号。
零点信号连接到STM32 IO利用外部中断服务程序执行定时器复位,修正累计偏差。
-
解决方法。
1.所有不用的IO配置为输出(驱动为高或低)或配置为输入并连接1K电阻到VCC。这样做是为了避免输入浮空时噪声翻转输入带来额外功率消耗。
2.使用定时器1做唤醒源,延时指令用休眠代替。
-
SPI数据通信实际上就是两个串行移位寄存器首尾环境在一起。数据发送同步于数据接收,也就是发完一个字节的同时也收到了一个字节。
主机的发送是启动数据传输,而从机的发送函数实际上是为下一次数据接收时准备发送数据。
你的程序是从机接收到一个字节,再返回发送,所以返回数据将必然将后移一个字节。
要使环回正确。主机应当丢弃第一次发送时收到的第一个字节。所有数据发送完成后再发一个无效数据,读取对端返回的最后一个字节。
-
不要瞎整了,Cortex-m0并没有中断向量地址偏移寄存器。这个只有M3和M4才有的。请看STM32F0xxx Cortex-M0 programming manual,Page84,
楼主可以尝试这样,BootLoad 程序启始于复位地址,复位首先进入Boot程序,然后跳转到应用程序以及应用程序编写和M3一样,应用程序不需设置向量表偏移,向量表采用下面的方式维护。
Bootload处理所有中断向量。当需进入应用执行时。置g_bAppRun为真
所有的32个中断向量按以下方式实现,APP_START_ADR为应用代码起始地址,ISR_HAND_OFFSET为中断向量在中断向量表中的仿移量(4字节单位,每个中断向量均不同)
typedef void (*pFun)(void);
void ISRHandle(void)
{
pFun p;
if(g_bAppRun)
{
p = (pFun)(APP_START_ADR + ISR_HAND_OFFSET);
}
else
{
P = BootLoadIsr;
}
(*p)();
}
这种方式其实不但适合于M0,其它所有支持在线写代码区的单片机都可以实现,只是细节修改而已(主要是链接器)。
[ 本帖最后由 xg_qing 于 2013-4-1 16:46 编辑 ]
-
FLASH插除以页为单位,页地址以下地址无效。换句话说,页大小为2K时,接收的实际有效地址将是ADR&~0x7FF,也就是说写地址写0x0800 0400 ,0x0800 0401,0x0800 0403都看成是0x800 0000。
虽然实际是这样,但你不应当传入一个非页边界对齐的地址,这是非常不规范的。日后维护的人也看不懂了。
-
楼上说得非常好,不要一遇到问题就问人,这样永远不会进步。
虽然很久没用430,但看样子发送死在这句很有可能串口没配置好。
玩MCU这么多年。8051->430->PIC->ARM几乎就没遇到不能解决的问题。
多上官网E2E、Forum,多看apNote,Datasheet吧。
-
PIC对IO的操作为读改写,两个LED配置为一个同一个端口执行会出错(CPU速度较高时)
LED_Error2_ON;
LED_Error1_OFF;
如果问题是这里,可以在这之间加delay。
端口没有优先级概念。
-
刚在TI e2e上看到Stellaris市场的人出来说话了,M3在随后的几年会继续供货,但新设计不建议采用。后续M4会推MAC+PHY的产品替代M3。
这种状态估计用M3的人越来越少,小客户想拿货肯定不容易了。
已经用M3完成了最好等M4出来再转。
-
原帖由 fengzhang2002 于 2012-12-4 18:29 发表 [url=https://bbs.eeworld.com.cn/redirect.php?goto=findpost&pid=1421999&ptid=361281][/url]
不得,6000.8000.9000目前供货正常
目前买是没问题,只是官方已经不再推荐用户用它了,长期用它肯定不行了。期待TI能出新的M4填补空缺才好。
不然代码移值到其它厂家的真是个大工程。
-
等稳定了再说吧,经过前面的供货风波已经不敢再用了。
TI M3优势就是6000、8000系列的以太网MAC+PHY、还有IQMATH。如果用9000系列的,那还不如用STM32F107,价格供货都好很多。9000系列定价太高了都可以STM32F4了、而且本来BUG就多。
-
我的也快到了,昨天收到邮件了,不过没有报关员问我是什么东西。
-
嵌入式实用资源有限,怎能不关心客户端数量。嵌入式TCP协议栈在配置时就要求填最大TCP连接数与最大UDP连接数了。
当所有客户端要求服务器提供相同的服务时可以只写一份服务任务代码,当一个TCP连接请求被接收时,建立服务任务并传递TCP端口号给服务任务代码以提供服务(也可以识情况用结构指针来包含更多信息)。TCP连接建立时分配空间,断开时释放内存空间。栈空间分配就可以用内存管理实现。
-
ucos2的内存管理只能分配固定大小的内存。实际上它是用一个单向链表管理内存收发。
自己定义数组需自己管理链的插入和删除并保证线程安全。已经有很棒的车轮了,为什么还要自己造一个车轮呢?
-
到ST官网上查看了AP, 确实如你所说,AN3109有描述该问题及解决方案。它用两种方式实现了DMA超时处理。一种用定时器捕捉检测空闲,另一种用UART中断检测空闲。前一种更高效,但占用定时器资源。
两种方式都比我的要高效,且实时性和TI的FIFO加超时是一样的。看来该问题已经可以完结了。本来已经用自己的方试实现了,现在看来还得改了。以后要多去去官网看看。。。
多谢大家!
-
原帖由 azhiking 于 2012-10-25 08:42 发表 [url=https://bbs.eeworld.com.cn/redirect.php?goto=findpost&pid=1399595&ptid=355112][/url]
确实是这样,LM3S的DMA也不支持超时中断。
ATMEL的DMA是支持超时中断的,类似于LM3S的FIFO超时中断。
不过DMA收发的话,对MCU的资源占用是非常小的,这是UART+FIFO不可比拟的。
使用DMA CPU负担轻多了,但针对这种不知道传输数据量的情况下DMA的实时性比UART+FIFO还是要差,ATMLE没用过,支持DMA超时的话那就是最完美的了。
有了上面各位的铺垫,我又想到了另一种实现。
简单的配置DMA接收数据,设置传输完成中断,同时,配置一个定时器中断,每次定时中断到来时检查DMA有没有数据到达,若有,手动挂起DMA中断处理数据,若无则不做任何处理。数据处理全部在DMA中断中完成,结构非常简单。
这样处理后,数据处理延时最坏情况下也就是定时器的中断时间,实时性较好。
例如,可以设计为1mS中断一次,对大部分系统来说,这个中断开销都是合适的,带操作系统时直接用Tick时钟就行了。