|
|
前往: |
| <<例说STM32>>勘误贴/问题贴 |
| 发表人 | 内容 | |
|---|---|---|
| 2011/07/22 16:36 |
|
|
|
[楼主位] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
<<例说STM32>>第一版印刷,其中难免有些有错误的地方,希望大家把发现的问题,都在这里提出来.谢谢!
我会对问题进行解答和更正.谢谢! |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/07/22 16:40 |
|
|
|
[1楼] smy096
等级:
注册时间:![]() 2011/01/20 08:21 文章: 29 离线 |
小胖俺看原子哥书上P127页的定时器那块发现一个小小的问题哈,
哥在这页上写TIM3的时钟为72M,然后在下一页却写时钟为36M, 然后俺找示波器看周期,发现设置为Timerx_Init(1,7199)时候, 实际定时值为200us,Timerx_Init(2,7199)为300us,依次往后 类推,得到的应该是当前arr+1的定时值哈,求指点哈~~ |
|
|
||
| 2011/07/22 17:02 |
|
|
|
[2楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
我在电子档上没搜索到:TIM3的时钟为72M.这句话.回头我看看书吧.
|
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/07/23 02:17 |
|
|
|
[3楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【1楼】 smy096 :
--------------------------------- 我回家翻了2.0的手册,没找到:TIM3的时钟为72M这句话. 这里可以告诉你. TIM3的时钟确实是72M(使用我们的源码),这点你可以看时钟树图,在<<STM32参考手册>>,里面清楚的说明了这个结果. 记得有个倍频就可以了. 既然时钟为72M. 所以Timerx_Init(1,7199),设定TIM的计数频率为10Khz.从0加到1,总共需要2个计数,即200us. 其他的依次类推. |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/07/24 18:14 |
|
|
|
[4楼] hpy6666
等级:
注册时间:![]() 2011/07/02 16:11 文章: 69 来自: 江苏 离线 |
原子哥lcd.h中的说明有误:
void LCD_Init(void) { RCC->APB2ENR|=1<<3;//先使能外设PORTB时钟 RCC->APB2ENR|=1<<4;//先使能外设PORTC时钟 RCC->APB2ENR|=1<<0; //开启辅助时钟 JTAG_Set(SWD_ENABLE); //开启SWD //PORTC6~10复用推挽输出 ??这里感觉复用推挽不对应该是3=0011(modex=00,cnfy=11) GPIOC->CRH&=0XFFFFF000; //通用推挽输出50MHZ 3=0011(modex=00,cnfy=11) GPIOC->CRH|=0X00000333; GPIOC->CRL&=0X0000FFFF; GPIOC->CRL|=0X33330000; GPIOC->ODR|=0X07C0; //PORTB 推挽输出 GPIOB->CRH=0X33333333; GPIOB->CRL=0X33333333; GPIOB->ODR=0XFFFF; |
|
|
||
| 2011/07/24 19:17 |
|
|
|
[5楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【4楼】 hpy6666 :
--------------------------------- 是推挽输出,复用推挽,可能注释有误. 以代码为准,注释可能有误! |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/07/25 20:33 |
|
|
|
[6楼] 十八铜人
等级:
注册时间:![]() 2011/07/25 20:23 文章: 37 来自: 海外 离线 |
p144 “ 因为我们在 Stm32_Clock_Init 函数里面已经初
始化 APB1的时钟为 2分频,所以,TIM3 的时钟为 36M,” 貌似是72M吧。 |
|
|
||
| 2011/07/25 22:23 |
|
|
|
[7楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【6楼】 十八铜人 :
--------------------------------- 对,是72M. 但是这个72M,不是由APB1来的,apb1得到的是36M,但是通用定时器,在其时钟分频数不为1的条件下,会倍频. 所以频率=2*APB1的分频频率. |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/07/26 10:41 |
|
|
|
[8楼] 十八铜人
等级:
注册时间:![]() 2011/07/25 20:23 文章: 37 来自: 海外 离线 |
我的意思是36M是不是印刷错误,应该改成72M。
还是我理解的有问题? |
|
|
||
| 2011/07/26 10:45 |
|
|
|
[9楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【8楼】 十八铜人 :
--------------------------------- 不是印刷错误,是我的错误.呵呵.出版社按我的稿印刷的. |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/07/26 11:21 |
|
|
|
[10楼] 十八铜人
等级:
注册时间:![]() 2011/07/25 20:23 文章: 37 来自: 海外 离线 |
回复【9楼】 正点原子 :
--------------------------------- 哦 |
|
|
||
| 2011/07/26 18:45 |
|
|
|
[11楼] 沉睡的木瓜
等级:
注册时间:![]() 2011/07/23 20:17 文章: 1 离线 |
其他都挺好的,就是光盘不怎么给力啊。时间很短,才到第三章。
|
|
|
||
| 2011/09/01 10:28 |
|
|
|
[12楼] zhpnncjdsg
等级:
注册时间:![]() 2011/06/30 12:44 文章: 1 离线 |
key.c的那个文件夹的那个程序少一个头文件夹“sys.h” 没有这个程序不能编译
|
|
|
||
| 2011/09/01 12:27 |
|
|
|
[13楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【12楼】 zhpnncjdsg :
--------------------------------- 谢谢 |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/09/02 09:30 |
|
|
|
[14楼] newmandirl
等级:
注册时间:![]() 2011/09/02 09:17 文章: 21 离线 |
你好,我想问问我按照书本上的实验八PWM的例子,只改了IO口之后就没有效果了,一直同样的亮度,不知道是什么原因呢?还有的是用了PWM2模式是不是可以不用管TIM3中断呢?因为我看到在main函数当中没有了Timerx_Init。。。请指教一下。。
|
|
|
||
| 2011/09/02 09:38 |
|
|
|
[15楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【14楼】 newmandirl :
--------------------------------- pwm必须通过某些固定的IO口来输出的,你随意换,怎么能行呢? 你还没理解PWM,及它与IO口之间的关系,弄懂了这个再说。 另外,这里是书本的勘误贴,提问请单独开贴,强烈建议提问之前先搜索论坛,很多问题别人已经问过了。 |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/09/25 14:59 |
|
|
|
[16楼] 螃蟹爱虫
等级:
注册时间:![]() 2011/09/03 00:18 文章: 372 来自: 广东 离线 |
原大哥,你好。《例说STM32》P195:ADC_SQR1的位19:15描述中的“这些位定义了转换序列中的第16个转换通道的编号(01~7)”,应为“这些位定义了转换序列中的第16个转换通道的编号(01~17)”,请确认!
|
|
|
||
| 2011/09/26 22:30 |
|
|
|
[17楼] 螃蟹爱虫
等级:
注册时间:![]() 2011/09/03 00:18 文章: 372 来自: 广东 离线 |
另外P210处第一行,“DMA_IFCR的各位就是用来清除DMA_ISR的对应位的,通过写0清除”正确为“DMA_IFCR的各位就是用来清除DMA_ISR的对应位的,通过写1清除”.
|
|
|
||
| 2011/10/12 14:16 |
|
|
|
[18楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【16楼】 螃蟹爱虫 :
--------------------------------- 却是是bug,应该是01~17. 回复【17楼】 螃蟹爱虫 : --------------------------------- 这也是一个bug. 谢谢你的两个建议.下次在我这里买东西,送你一个18b20. |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/10/17 21:47 |
|
|
|
[19楼] 螃蟹爱虫
等级:
注册时间:![]() 2011/09/03 00:18 文章: 372 来自: 广东 离线 |
不客气,我也希望论坛能向更好的方向发展,送东西就不必了,我也知道你也是需要成本的,我只希望在这里提有关STM32的问题能够得到大家以及原子的积极回应就好啦,这样大家也能共同进步,呵呵。。
|
|
|
||
| 2011/10/17 21:52 |
|
|
|
[20楼] 螃蟹爱虫
等级:
注册时间:![]() 2011/09/03 00:18 文章: 372 来自: 广东 离线 |
P264,SD卡初始化第三步后,应该增加一步。发送CMD8命令获取SD卡支持的电压以及版本等操作条件寄存器。。。程序是写了这一步,文字叙述没写。。
|
|
|
||
| 2011/10/17 22:30 |
|
|
|
[21楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【20楼】 螃蟹爱虫 :
--------------------------------- 谢谢 |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/10/18 11:27 |
|
|
|
[22楼] qqae
等级:
注册时间:![]() 2011/10/18 11:00 文章: 5 来自: 北京 离线 |
昨天去参加研讨会,领到了你的大作,谢谢! 以后还望多多指教。 有什么工程项目要做的话也分我一点。
|
|
|
||
| 2011/10/18 17:55 |
|
|
|
[23楼] raosibin
等级:
注册时间:![]() 2011/10/18 15:42 文章: 12 离线 |
P208 表20.1 通道5中,USART3_RX ,应该为USART1_RX
|
|
|
||
| 2011/10/18 18:00 |
|
|
|
[24楼] raosibin
等级:
注册时间:![]() 2011/10/18 15:42 文章: 12 离线 |
P203 第三行,设置ADC,并开启ADC_CR2的AWDEN位,是否是设置ADC,并开启ADC_CR2的TSVREFE位呢
|
|
|
||
| 2011/10/18 23:31 |
|
|
|
[25楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【23楼】 raosibin :
--------------------------------- 确实有误。 ADC_CR2有TSVREFE位么? 我没发现哦。 |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/10/20 10:59 |
|
|
|
[26楼] raosibin
等级:
注册时间:![]() 2011/10/18 15:42 文章: 12 离线 |
回复【25楼】 正点原子 :
--------------------------------- ADC_CR2 的23位不是写的TSVREFE 位吗,书上P193页图18.3 上也有呢。参考手册上P173也是这样说的啊。难道是我看错了啊 |
|
|
||
| 2011/10/20 11:01 |
|
|
|
[27楼] raosibin
等级:
注册时间:![]() 2011/10/18 15:42 文章: 12 离线 |
回复【25楼】 正点原子 :
--------------------------------- 更何况AWDEN 是ADC_CR1上的位吧 |
|
|
||
| 2011/10/20 11:17 |
|
|
|
[28楼] raosibin
等级:
注册时间:![]() 2011/10/18 15:42 文章: 12 离线 |
P221 SPI总线时序图中(a)里面 MISI 应为MOSI,两个时序图好像也颠倒了吧?即(a)中的应该是CPHA = 1的时序图,不知道我的理解对不对
|
|
|
||
| 2011/10/20 20:07 |
|
|
|
[29楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【27楼】 raosibin :
--------------------------------- 不好意思,当时写的时候,看的是第七版的资料.上面标错了...我就跟着错了... 回复【28楼】 raosibin : --------------------------------- 这个我回家考证一下. |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/10/23 09:04 |
|
|
|
[30楼] haspire
等级:
注册时间:![]() 2011/10/17 21:52 文章: 31 来自: 福建 离线 |
原子哥,书上P76最后一行的 GPIOA->CRH1 = 0X000008B0; 是不是有问题啊,是不是应该是 GPIOA->CRH |= 0X000008B0;我觉得应该是”按位或“而不是1啊?
|
|
|
||
| 2011/10/26 22:07 |
|
|
|
[31楼] dby12
等级:
注册时间:![]() 2011/10/26 21:46 文章: 7 离线 |
回复【楼主位】 正点原子 :
--------------------------------- 我的stm32读到的LCD ID是8989,可<不完全手册>上介绍的是9230。光盘中的资料没有关于8989的,有些命令不一样。不知大家发现没? |
|
|
||
| 2011/10/28 14:05 |
|
|
|
[32楼] fengye1966
等级:
注册时间:![]() 2011/10/27 15:13 文章: 53 来自: 北京 离线 |
回复【30楼】 haspire :
--------------------------------- 你说的对,是“按位或”。原子哥最近有点忙。 |
|
|
||
| 2011/10/28 14:07 |
|
|
|
[33楼] fengye1966
等级:
注册时间:![]() 2011/10/27 15:13 文章: 53 来自: 北京 离线 |
回复【31楼】 dby12 :
--------------------------------- 命令的确不一样,不过程序上已经都考虑到了,做了相应的处理。请参考光盘中SSD1289资料.谢谢 |
|
|
||
| 2011/10/28 16:22 |
|
|
|
[34楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【30楼】 haspire :
--------------------------------- 这个应该是笔误了. |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/10/29 23:47 |
|
|
|
[35楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
fengye1966 提出:
原子哥,我先提出关于这个问题的一个勘误。《例说STM32》125页图12.5最后寄存器的最后一位标志“UIE”应该是“UIF”。我看勘误贴中没有这个信息,麻烦您转过去,谢谢。 |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/11/04 14:33 |
|
|
|
[36楼] yinyangdianzi
等级:
注册时间:![]() 2010/12/15 09:05 文章: 193 来自: 上海 离线 |
我来支持一下
|
|
|
STM32芯片---上海银洋电子021-53086303 <br>欢迎来电15900733302 采购找张经理 |
||
|
||
| 2011/11/14 11:18 |
|
|
|
[37楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
书本介绍void uart_init(u32 pclk2,u32 bound)这个函数的时候,最后的中断配置有误.
MY_NVIC_Init(3,3,USART1_IRQChannel,2);//组2,最低优先级 应该为: MY_NVIC_Init(2,3,USART1_IRQChannel,2);//组2,最低优先级 |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/11/15 12:06 |
|
|
|
[38楼] 在路上9303
等级:
注册时间:![]() 2011/11/08 21:35 文章: 11 离线 |
#define GPIOD_ODR_Addr (GPIOD_BASE+12) //0x4001140C
#define GPIOE_ODR_Addr (GPIOE_BASE+12) //0x4001180C #define GPIOF_ODR_Addr (GPIOF_BASE+12) //0x40011A0C #define GPIOG_ODR_Addr (GPIOG_BASE+12) //0x40011E0C GPIOF_BASE和GPIOG_BASE 注释应该是错了吧??? 这篇文章被编辑了 1 次. 最近一次更新是在 2011/11/15 12:07 |
|
|
||
| 2011/11/15 12:29 |
|
|
|
[39楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【38楼】 在路上9303 :
--------------------------------- 没错啊. 144脚的型号有GPIOF和G... |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/11/15 16:33 |
|
|
|
[40楼] 在路上9303
等级:
注册时间:![]() 2011/11/08 21:35 文章: 11 离线 |
回复【39楼】 正点原子 :
--------------------------------- 不是,我说的是GPIOF和GPIOG寄存器基地址 你后边的注释好像错啦 |
|
|
||
| 2011/11/15 22:38 |
|
|
|
[41楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
这个可能有误.呵呵.
|
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/11/22 14:05 |
|
|
|
[42楼] lsh3721
等级:
注册时间:![]() 2011/11/22 14:04 文章: 3 离线 |
回复【楼主位】 正点原子 :
--------------------------------- 书上有个地方印错了,第81页最上面第二排图 CNF0印错成CNF4了 |
|
|
||
| 2011/11/22 14:18 |
|
|
|
[43楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
谢谢
|
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/11/27 21:07 |
|
|
|
[44楼] 科科1987
等级:
注册时间:![]() 2011/11/27 20:54 文章: 91 离线 |
int main(void) -------------------------------- Timerx_Init(5000,7199);//10Khz的计数频率,计数到5000为500ms delay_ms(200); 是不是应该是DS0每200ms闪烁一次,而DS1每0.5s闪烁一次? |
|
|
||
| 2011/11/27 21:17 |
|
|
|
[45楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【44楼】 科科1987 :
--------------------------------- 你可以实际下载看看. 为什么是一倍的关系? 因为亮200ms,灭200ms,需要400ms才一个周期. 所以是0.4s,同样,1s也是这么来的. |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/11/27 21:37 |
|
|
|
[46楼] 科科1987
等级:
注册时间:![]() 2011/11/27 20:54 文章: 91 离线 |
回复【45楼】 正点原子 :
这篇文章被编辑了 2 次. 最近一次更新是在 2011/11/27 22:15 |
|
|
||
| 2011/11/29 16:49 |
|
|
|
[47楼] zhangjikuan0521
等级:
注册时间:![]() 2011/11/28 10:52 文章: 21 来自: 山东 离线 |
原子大哥,在DMA实验里使能DMA时钟后是不是要加至少两个nop()等待时钟稳定呢,我写的时候按照你的来DMA不工作,加上nop()便OK了,我看的还是1.0,刚才下2.0没成功,所以不知道2.0修改了吗,为了完善不完全手册还是提出来了,呵呵
|
|
|
||
| 2011/11/29 17:06 |
|
|
|
[48楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【47楼】 zhangjikuan0521 :
--------------------------------- 是应该加延时的. 最新的代码应该修改过来了吧 ? |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/12/08 21:11 |
|
|
[49楼] 张洋
等级:
注册时间:![]() 2010/12/14 10:47 文章: 337 来自: 广州 离线 |
P58下面,“nms,其参数nms为要延时的微秒数”---》应为“毫秒数”
|
|
|
希望openedv能给大家提供一个友好的技术交流平台! |
||
|
||
| 2011/12/08 22:08 |
|
|
|
[50楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
67页 倒数第3行 中断接挂->中断解挂
72页 倒数第5行 1,下降沿;2,上升沿 倒数第9行 下降沿触发 73页 12行 //line BITx上事件上升沿触发 |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/12/21 14:13 |
|
|
|
[51楼] mikeliujia
等级:
注册时间:![]() 2011/09/09 12:16 文章: 1 来自: 武汉 离线 |
回复【楼主位】 正点原子 :
--------------------------------- 130页,图13.1中第11位OC2PF应改为OC2PE。 133页,PWM_init(900,0); //不分频。PWM的频率 = 7200/900 Hz =8kHz 这句的注释有问题吧? 134页,倒数第五行:3线或4线的穿行SPI接口方式,应把“穿行”改为“串行” 这篇文章被编辑了 1 次. 最近一次更新是在 2011/12/21 15:08 |
|
|
||
| 2012/01/13 19:38 |
|
|
|
[52楼] cjq_enjoy
等级:
注册时间:![]() 2011/07/07 07:36 文章: 8 离线 |
http://www.openedv.co
|
|
|
||
| 2012/02/01 16:55 |
|
|
|
[53楼] ssugang
等级:
注册时间:![]() 2012/02/01 16:52 文章: 4 离线 |
10页 续表1.1 倒数第二行重叠
108页 VLED1=!LED1; 应该是 LED1=!LED1; |
|
|
||
| 2012/02/01 23:27 |
|
|
|
[54楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【53楼】 ssugang :
--------------------------------- 谢谢. |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/02/17 04:30 |
|
|
|
[55楼] duxing47
等级:
注册时间:![]() 2012/02/16 14:17 文章: 11 离线 |
STM32不完全手册_V2.1.pdf
12页图中W25X16指出的是16M 13页介绍的却是2M |
|
|
||
| 2012/02/17 08:51 |
|
|
|
[56楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
16M是位.
2M是字节. |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/02/17 23:48 |
|
|
|
[57楼] liuliuzelin
等级:
注册时间:![]() 2011/04/12 19:05 文章: 64 来自: 辽宁 离线 |
回复【37楼】 正点原子 :
--------------------------------- 书本介绍void uart_init(u32 pclk2,u32 bound)这个函数的时候,最后的中断配置有误. MY_NVIC_Init(3,3,USART1_IRQChannel,2);//组2,最低优先级 应该为: MY_NVIC_Init(2,3,USART1_IRQChannel,2);//组2,最低优先级 ———————————————————————————————————— 这个之前的配置应该没错。。。应该是3 组2为2位抢占优先级,0~3....所以最低应该配置为3 |
|
|
自信人生一百年 |
||
|
||
| 2012/02/18 21:22 |
|
|
|
[58楼] Pony279
等级:
注册时间:![]() 2012/02/08 19:13 文章: 438 在线 |
最近在学习LCD TFT,参考了下正点原子师兄写的不完全手册中的OLED和LCD部分,有这样一段话 (PDF搜"假读")
“在8080 方式下读数据操作的时候,我们有时候(例如读显存的时候)需要一个假读命 (Dummy Read),以使得微控制器的操作频率和显存的操作频率相匹配。” 好像不合适,我用的LCD的控制器是 HX8347-A 的,datasheet上是这样说的 When the data is written into the GRAM from the MPU, it is first written into the write-data latch and then automatically written into the GRAM by internal operation. Data is read through the read-data latch when reading from the GRAM. Therefore, the first read data operation is invalid and the following read data operations are valid. 意思是是假读的原因是中间有个锁存器吧? 如果是频率问题,仅仅是一次假读好像没有意义吧? 这篇文章被编辑了 1 次. 最近一次更新是在 2012/02/18 21:23 |
|
|
决定从此潜心搞好功课,闲时玩玩板子,逛逛论坛... |
||
|
||
| 2012/02/18 21:50 |
|
|
|
[59楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
不同的手册说法有些区别.
|
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/02/21 18:22 |
|
|
|
[60楼] Pony279
等级:
注册时间:![]() 2012/02/08 19:13 文章: 438 在线 |
回复【59楼】 正点原子 :
--------------------------------- 看了下ILI9320的datasheet 搜 latch , 在Block Diagram 上看到也是有锁存 用dummy搜了整篇文档,好像没有对 dummy read 的解释。 |
|
|
决定从此潜心搞好功课,闲时玩玩板子,逛逛论坛... |
||
|
||
| 2012/02/21 18:29 |
|
|
|
[61楼] Pony279
等级:
注册时间:![]() 2012/02/08 19:13 文章: 438 在线 |
找到了,(搜invalid) 在 "6. Block Description" 那一节是这样解释的
ILI9320 has a 16-bit index register (IR), an 18-bit write- data register (WDR), and an 18-bit read-data register (RDR). The IR is the register to store index information from control registers and the internal GRAM. The WDR is the register to temporarily store data to be written to control registers and the internal GRAM. The RDR is the register to temporarily store data read from the GRAM. Data from the MPU to be written to the internal GRAM are first written to the WDR and then autom atically written to the internal GRAM in internal operation. Data are read via the RDR from the internal GRAM. Therefore, invalid data are read out to the data bus when the ILI9320 read the first data from the internal GRAM. Valid data are read out after the ILI9320 performs the second read operation. 这篇文章被编辑了 1 次. 最近一次更新是在 2012/02/21 18:33 |
|
|
决定从此潜心搞好功课,闲时玩玩板子,逛逛论坛... |
||
|
||
| 2012/02/23 10:04 |
|
|
|
[62楼] roma
等级:
注册时间:![]() 2012/02/22 15:42 文章: 21 来自: 北京 离线 |
回复【楼主位】 正点原子 :
--------------------------------- 楼主,请问133页,PWM_init(900,0); //不分频。PWM的频率 = 72000/900 Hz =8kHz 这句的注释是不是错误的?72000应该是72000000,然后结果是80KHz |
|
|
每天都要有进步 <br><br> |
||
|
||
| 2012/02/23 11:01 |
|
|
|
[63楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
是80K,我的公式也没错,只是计算错了...囧...
|
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/03/01 23:02 |
|
|
|
[64楼] 逆风飞扬
等级:
注册时间:![]() 2012/02/24 08:33 文章: 22 离线 |
void PWM_Init(u16 arr,u16 psc)
{ //此部分需手动修改IO口设置 RCC->APB1ENR|=1<<1; //TIM3时钟使能 GPIOA->CRH&=0XFFFFFFF0;//PA8输出 GPIOA->CRH|=0X00000004;//浮空输入 GPIOA->CRL&=0X0FFFFFFF;//PA7输出 GPIOA->CRL|=0XB0000000;//复用功能输出 GPIOA->ODR|=1<<7;//PA7上拉 TIM3->ARR=arr;//设定计数器自动重装值 TIM3->PSC=psc;//预分频器不分频 TIM3->CCMR1|=7<<12; //CH2 PWM2模式 TIM3->CCMR1|=1<<11; //CH2预装载使能 TIM3->CCER|=1<<4; //OC2 输出使能 TIM3->CR1=0x8000; //ARPE使能 TIM3->CR1|=0x01; //使能定时器3 } 这个有误 |
|
|
加入STM32的学习行列 |
||
|
||
| 2012/03/01 23:21 |
|
|
|
[65楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
嗯,有人提过了.
|
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/03/08 21:40 |
|
|
|
[66楼] luoyusheng
等级:
注册时间:![]() 2012/03/08 21:35 文章: 1 离线 |
STM32不完全手册串口实验中代码与实验代码有一处不符,特纠正一下,以程序代码为主。
PDF文档中代码:
程序中代码: RCC->APB2ENR|=1<<2; //使能PORTA口时钟 RCC->APB2ENR|=1<<14; //使能串口时钟 GPIOA->CRH&=0XFFFFF00F; GPIOA->CRH|=0X000008B0;//IO状态设置 |
|
|
||
| 2012/03/09 01:08 |
|
|
|
[67楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
是的.有的问题
|
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/03/09 22:45 |
|
|
|
[68楼] Pony279
等级:
注册时间:![]() 2012/02/08 19:13 文章: 438 在线 |
建议:
手册中讲NVIC的“分组”理解为“分组方式”会不会更妥当? 虽然这个对掌握了NVIC的人已经没什么的了,我第一次看到这里的时候确实是有点吃力的, 那个表,组1,组2,我一开始以为是有5个组。如果解释为5种分组方式,可能会更好理解一点,因为AIRCR[10:8]是用来描述怎样进行优先级分组的。 ![]() |
|
|
决定从此潜心搞好功课,闲时玩玩板子,逛逛论坛... |
||
|
||
| 2012/03/10 00:38 |
|
|
|
[69楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
嗯
|
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/03/10 21:33 |
|
|
|
[70楼] shaojunyun
等级:
注册时间:![]() 2012/02/21 22:33 文章: 30 离线 |
P146页 TIMx_CCMR1控制CH3和CH4,此处应该为TIMx_CCMR2.
P149页 PA8输出应该为PA8输入。 |
|
|
||
| 2012/03/11 00:48 |
|
|
|
[71楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
谢谢
|
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/03/13 20:46 |
|
|
|
[72楼] shaojunyun
等级:
注册时间:![]() 2012/02/21 22:33 文章: 30 离线 |
原子哥,什么时候会出本不完全手册V2.1?
|
|
|
||
| 2012/03/13 21:54 |
|
|
|
[73楼] Pony279
等级:
注册时间:![]() 2012/02/08 19:13 文章: 438 在线 |
回复【72楼】 shaojunyun :
--------------------------------- 不是已经有2.1版了么... |
|
|
决定从此潜心搞好功课,闲时玩玩板子,逛逛论坛... |
||
|
||
| 2012/03/14 19:35 |
|
|
|
[74楼] shaojunyun
等级:
注册时间:![]() 2012/02/21 22:33 文章: 30 离线 |
回复【73楼】 Pony279 :
--------------------------------- 真的?传我一份呗(*^__^*) |
|
|
||
| 2012/03/16 20:22 |
|
|
|
[75楼] 冰是睡着的水
等级:
注册时间:![]() 2011/12/25 19:43 文章: 79 来自: 广州 离线 |
回复【楼主位】 正点原子 :
--------------------------------- 串口实验,小小问题,第76页GPIOA->CRH1=0X000008B0;应该是 GPIOA->CRH|=0X000008B0; 第101页也是一样。。呵呵,小小问题不想提的,害见笑了。。呵呵 这篇文章被编辑了 1 次. 最近一次更新是在 2012/03/16 20:23 |
|
|
不抛弃,不放弃 |
||
|
||
| 2012/03/16 20:23 |
|
|
|
[76楼] 冰是睡着的水
等级:
注册时间:![]() 2011/12/25 19:43 文章: 79 来自: 广州 离线 |
回复【75楼】 冰是睡着的水 :
--------------------------------- GPIOA->CRH|=0X000008B0; |
|
|
不抛弃,不放弃 |
||
|
||
| 2012/03/16 22:16 |
|
|
|
[77楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
是的,这里有点问题.
|
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/03/17 09:52 |
|
|
|
[78楼] sundart
等级:
注册时间:![]() 2012/03/17 09:42 文章: 1 离线 |
一个小错字,只为再版时更好!
P99页上图8.3上一行中“当收到收据时”应该改为“当收到数据时”。 另外还有一个问题是在淘宝中的产品介绍页面中“宝贝详情”的“公告”中:“文件系统才用FATFS ”,应该是“文件系统采用FATFS”。 |
|
|
||
| 2012/03/17 11:15 |
|
|
|
[79楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【78楼】 sundart :
--------------------------------- 谢谢 |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/03/18 19:17 |
|
|
|
[80楼] Pony279
等级:
注册时间:![]() 2012/02/08 19:13 文章: 438 在线 |
请问原子哥,STM32是可以做双向IO的,为什么LCD驱动里不使用双向的方式,而是在读的时候重新配置IO模式?
|
|
|
决定从此潜心搞好功课,闲时玩玩板子,逛逛论坛... |
||
|
||
| 2012/03/18 23:08 |
|
|
|
[81楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【80楼】 Pony279 :
--------------------------------- 双向只能是在开漏输出的模式吧? 如果开漏输出,外部接一堆的上拉电阻.... 还不如软件设置输入输出来的方便. |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/03/19 12:34 |
|
|
|
[82楼] Pony279
等级:
注册时间:![]() 2012/02/08 19:13 文章: 438 在线 |
确实,
感觉最底层的读写操作的调用还是挺频繁的, 可惜STM32在开漏的时候没内部上拉。。。 |
|
|
决定从此潜心搞好功课,闲时玩玩板子,逛逛论坛... |
||
|
||
| 2012/03/19 12:38 |
|
|
|
[83楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8089 来自: 湖南 在线 |
回复【82楼】 Pony279 :
--------------------------------- 读操作不常用的.所以,问题不大. |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2012/03/29 23:09 |
|
|
|
[84楼] boyubeiyu
等级:
注册时间:![]() 2012/03/27 19:48 文章: 2 来自: 天津 离线 |
例说stm32书本中P98页倒数第四行“TXIE为发送缓冲区空中断使能位”应该为“TXEIE为发送缓冲区空中断使能位”
|
|
|
||
| 2012/04/04 07:05 |
|
|
|
[85楼] spydf
等级:
注册时间:![]() 2011/10/25 22:44 文章: 11 离线 |
TC(发送完成),当该位被置位的时候,表示USART_DR内的数据已经被发送完成了。如
果设置了这个位的中断,则会产生中断。该位也有两种清零方式:1 )读USART_SR ,写 USART_DR。2 )直接向该位写 0 。 读取USART_SR应该改为USART_DR |
|
|
||
| 2012/04/10 21:38 |
|
|
|
[86楼] 以枫之名
等级:
注册时间:![]() 2012/03/08 12:52 文章: 190 来自: 广东 离线 |
光盘里的汉字显示例程有个小问题,Show_Font的参数,y、y0要改成U16,Show_Str函数的参数y要改成U16,否则,当y+size>255时,显示会乱掉,字符没问题,汉字就会乱,把Y改成U16就没事了
|
|
|
||
| 2012/04/11 13:11 |
|
|
|
[87楼] dzc0426
等级:
注册时间:![]() 2012/04/11 13:09 文章: 2 离线 |
回复【37楼】 正点原子 :
-------------------------------- 为啥改成2?????不应该是3么~~~百思不得其解 |
|
|
||
| 2012/04/11 13:12 |
|
|
|
[88楼] dzc0426
等级:
注册时间:![]() 2012/04/11 13:09 文章: 2 离线 |
回复【83楼】 正点原子 :
--------------------------------- 书本介绍void uart_init(u32 pclk2,u32 bound)这个函数的时候,最后的中断配置有误. MY_NVIC_Init(3,3,USART1_IRQChannel,2);//组2,最低优先级 应该为: MY_NVIC_Init(2,3,USART1_IRQChannel,2);//组2,最低优先级 为啥改成2?????不应该是3么~~~百思不得其解 |
|
|
||
| 2012/04/15 18:59 |
|
|
|
[89楼] 爱吃水煮鱼
等级:
注册时间:![]() 2012/04/15 18:56 文章: 19 来自: 河北 在线 |
我发现ALIENTEK这块板子所带的TFT液晶的例程中有个小问题?
调用画圆函数,如果半径比较小的话就不圆了。后来发现是Bresenham算法画圆可能出了点问题,如果是在原基础上改的话应该把这句“di=3-(r<<1);”改为“di=3-(r<<2);”,这样画的圆在小半径的时候可又会比较圆一点。不过还有其它的改法。 |
|
|
喜欢单片机,没什么道理,就像爱吃水煮鱼,对味而已。 |
||
|
||
| 2012/04/29 09:19 |
|
|
|
[90楼] ilikerome
等级:
注册时间:![]() 2012/04/29 09:13 文章: 1 离线 |
楼主:
书的P59,以及你的源代码里面,在说delay_ms 的参数nms最大值的时候,有误。 书上及代码注释里为:nms<=0xffffff*8*1000/SYSCLK 应为:nms<=0xffffff*8/SYSCLK*1000; |
|
|
||
|
|
||
|
| 前往: |