野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14173|回复: 14

STM32库开发实战指南书中错误!望改进!!!

[复制链接]
发表于 2018-8-29 11:41:29 | 显示全部楼层 |阅读模式
本人小白,最近开始学习STM32F103,所以买了一本《STM32库开发实战指南:基于STM32F103》看,整本书大概看了一遍,发现书中有些错误,由于本人初学,暂时还没有能力发现技术类错误,基本都是些语句错误,不过还是发帖希望野火官方能注意,并在下一版中改正过来。以下是我记录的书中错误点:

1P15页:3.4.42)段中的U82脚为低电平,U18为一个模拟开关中的U8应该为U18吧?
2P15页:图3-6(续)的电容C65没有与地连接。
3P18页:移动POST应为移动POS
4P24页:第二段在探索寄STM32寄存器深层次的问题时,多了一个,应该为在探索STM32寄存器深层次的问题时
5P26页:图5-4中的浅色表示驱动单元深色表示驱动单元,两个都表示驱动单元?
6P35页:直接使用宏定义好GPIO_TypeDef类型的指针句子中的字怎么理解?
7P48页:图7-5请参考表17端口位配置表中的表17在书中什么位置?另,图中“位31-10”是否应改为“位31-30”?
8P48页:图7-531:10是不是有问题?应该为31:30?图7-6中也是同样问题。
9P93页:图11-1原理图与这些LED的阴极都连接到STM32GPIO引脚有冲突,原理图中是阳极连接电阻再连接到GPIO引脚。对比P50页中图7-8
10P106页:图13-1中的片上外设应该是从0x401000000x41FFFFFF且应该是31MB
11P109页:其中宏参数n表示具体是哪一个IO口,n016”中应该为“n015”。
12P116页:“单片机的系统时钟配被配置为72MHz。”中的“配被”一词有误。
13P120页:“系统时钟SYSCLK经过AHB预分频器分频之后得到的时钟叫APB总线时钟”应该是“AHB总线时钟”吧?
14P119页:图15-1中的“APBI预分频器”应该为“APB1预分频器”。
15P161页:图20-7中的“发改写器控制”应该是“发送器控制”。
16P164页:“39=0x17”应该是“39=0x27”,“应该设置USART_BRR的值为0x171”应该是“0x271”。
17P168页:“所以对优先级什么具体要求”应该是“所以对优先级没什么具体要求”?
18P179页:“编号越低越优先级越”语句不通。另外“比如通道0高于通道1的优先级”没有通道0吧?这个比如欠妥。
19P213页:“只是在发送数据的时候,使用for循环控制发送多个数据”应该是使用“while循环”吧?
20P216页:“若NumOfPage=22”应该是“若NumByteToWrite=22”吧?
21P224页:“上过通信流程中包含的各个信号分解如下”应该为“上述通信流程中包含的各个信号分解如下”。
22P228页:“通过写SPI的数据寄存器DR把数据填充到发送F缓冲区中”句中的“F”是多余。
23P233页:SPI初始化函数中
/*使能SPI引脚相关的时钟*/
Flash_SPI_CS_APBxClock_FUN( Flash_SPI_CS_CLK | Flash_SPI_SCK_CLK |
                        Flash_SPI_MISO_PIN |Flash_SPI_MOSI_PIN , ENABLE );\
中的“Flash_SPI_MISO_PIN”应该为“Flash_SPI_MISO_CLK”,“Flash_SPI_MOSI_PIN”应该为“Flash_SPI_MOSI_CLK”。
另外,“/*配置SPIMF103-霸道引脚*/”语句有问题。
24P278页:“而这个液晶屏的种颜色分量的数据线都有8根”病句。
25P282页:图26-13中的“LCD_BD00LCD_BD11”、“LCD_BD13”、“LCD_BD15”中的“LCD_BD”应该是“LCD_DB”。
26P290页:(2)和(3)表述的内容是一样的。(2)是不是应该介绍FSMC_AddressHoldTime?
27P399页:“产生一次中断的时间等于1/(CK_CLK×ARR)”应该是“1/CK_CLK×ARR”。
28P400页:“定时器计数方式,可是在为向上计数、向下计数以及3种中心对齐模式”应该为“定时器计数方式,可设置为向上计数、向下计数以及中心对齐3种模式”。
29P433页:高级定时器宏定义中的“ADVANCE_TIM_Period”应该是“ADVANCE_TIM_PERIOD”,“ADVANCE_TIM_Prescaler”应该是“ADVANCE_TIM_PSC”。
30P625页:“解锁后擦除扇区操作可调用:Flash_EraseSector完成”,但是代码清单中的函数却是“Flash_ErasePage”。
30P379页:图29-4中的“JL[1:0]”应该为“JL[2:0]”吧?
31P379页:“如果JL=001个转换)”,1个转换的话,那JL应等于01吧?
32P380页:“ADCLK=14MHz(最高),采样时间设置为1.5周期(最快)”中应该是“ADC_CLK”?
33P119页:图15-1中的阴影6中,“APBI预分频器”应该是“APB1预分频器”。
34P30页:代码清单5-2中把GPIOB端口全部输出高电平的赋值语句不应该是
*GPIOB_ODR= 0xFFFF”吗?代码清单5-3同上。
35P32页:“(2)地址偏移”段中“本寄存器的偏移地址是0x18”应是“0x10”。
36P32页:图5-6中,“位15:0”后面的“BRy:设置端口x的位y”应该是“BSy”。
37P33页:代码清单5-4中“#define AHBPERIPH_BASE(PERIPH_BASE+0x00020000)”为什么是“0x00020000”,前面介绍的AHB的总线基地址不是“0x40018000”吗?看了下存储器映射图,0x400180000x400183FF地址对应的是外设SDIO0x400184000x4001FFFF地址对应的是Reserved,是因为这两个外设没用吗?
38P28页:图5-5寄存器映射中ADC3上侧的Reserved对应的地址0x4001400-0x40017FFF应该是0x40014000-0x40017FFFDMA2上侧的Reserved对应的地址0x40020400-0x40020FFF应该是0x40020800-0x40020FFF
39P78页:“(3Stm32f103.h”应该是“(3stm32f103.h”。
40P108页:“3.统一公式”代码中的“0x00FFFFFF”多了一个“F”,应该是“0x000FFFFF”,另外,“addr & 0x00FFFFFF屏蔽了高3位”应该是“0x000FFFFF”。
41P109页:代码清单13-2中的“n016)”是否应该是“n015)”?
42P137页:“还有另外7根用于特定的外设事件,见表17-1”中的“7根”应该是“4根”吧?
43P147页:“在STM32F103中,只有位7~位3这高4位有效”中的“位7~位3”是5位啊。。。
44P148页:“如果当两个的软件优先级都配置成一样,那么就比较它们在中断向量表中的硬件编号,编号越小,优先级越高。”SysTick的是内核外设,没有硬件编号,该怎么理解这段话?
45P162页:“USART引脚在STM32F103ZET6芯片上的具体分布见表20-3。”中的型号错误,应该是“STM32F103VET6”。
46P195页:“现在被广泛地用于系统内多个集成电路(I2C)间的通信。”中的“(I2C)”应该是“(IC)”吧?
47P213页:“只是它在发送数据的时候,使用for循环控制发送多个数据”说的代码23-8中并无“for循环”,应该是“while循环”。
48P216页:表23-2中的“38”和“39”不应该灰显,总共写入22个数据,并未写到这两个地址。
49P219页:代码的第94行和103行的大括号是多余的吗?可以直接去掉吗?



回复

使用道具 举报

发表于 2018-8-29 11:47:53 | 显示全部楼层
哈哈,好详细,我就喜欢这样一下子列出来的,大大方便了我们一次修改
回复 支持 反对

使用道具 举报

发表于 2018-8-29 11:50:44 | 显示全部楼层
我一条条改好后我再回复上面提的疑问
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-29 21:33:21 | 显示全部楼层
flyleaf 发表于 2018-8-29 11:47
哈哈,好详细,我就喜欢这样一下子列出来的,大大方便了我们一次修改

小弟最近在用STM32F429igt6做内部flash模拟U盘,有没有这方面的例程分享下啊,谢谢啦
回复 支持 反对

使用道具 举报

发表于 2018-8-30 08:36:51 | 显示全部楼层
外部FLASH的就有,在这个目录:\1-固件库例程\USB—外部FLASH模拟U盘
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-30 14:40:49 | 显示全部楼层
flyleaf 发表于 2018-8-30 08:36
外部FLASH的就有,在这个目录:\1-固件库例程\USB—外部FLASH模拟U盘

我下载了外部flash的了,现在要做内部flash模拟U盘,无从下手毕竟初学者还不太熟能不能给点技术支持
回复 支持 反对

使用道具 举报

发表于 2018-8-30 14:43:03 | 显示全部楼层
chenbao 发表于 2018-8-30 14:40
我下载了外部flash的了,现在要做内部flash模拟U盘,无从下手毕竟初学者还不太熟:love ...

内部的没有做过,而且空间这么小,不太推荐啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-30 14:55:40 | 显示全部楼层
flyleaf 发表于 2018-8-30 14:43
内部的没有做过,而且空间这么小,不太推荐啊

我只需要大约1.7M左右的空间,不要外扩存储,所以就想用片内flash模拟
回复 支持 反对

使用道具 举报

发表于 2018-8-30 15:19:39 | 显示全部楼层
chenbao 发表于 2018-8-30 14:55
我只需要大约1.7M左右的空间,不要外扩存储,所以就想用片内flash模拟

IGT6的FLAHS只有1MB,F4最大型号的内部FLASH也才2M,文件系统自身也占用空间,这样搞程序都没地方存储了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-30 17:28:52 | 显示全部楼层
flyleaf 发表于 2018-8-30 15:19
IGT6的FLAHS只有1MB,F4最大型号的内部FLASH也才2M,文件系统自身也占用空间,这样搞程序都没地方存储了

嗯嗯,我计划做两个版本,一个用自身flash,一个外扩,实际应用一段时间,让销售去确定用哪个版本
非常感谢及时又有帮助的回复哈哈
希望以后遇到问题,您也可以及时给我帮助支持啊,多谢多谢
回复 支持 反对

使用道具 举报

发表于 2018-8-31 08:37:33 | 显示全部楼层
chenbao 发表于 2018-8-30 17:28
嗯嗯,我计划做两个版本,一个用自身flash,一个外扩,实际应用一段时间,让销售去确定用哪个版本
...

彼此彼此
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-31 10:38:18 | 显示全部楼层

还有,我在帖子中提到的疑问,还望有时间解答下啊
回复 支持 反对

使用道具 举报

发表于 2019-8-15 10:25:28 | 显示全部楼层
flyleaf 发表于 2018-8-29 11:47
哈哈,好详细,我就喜欢这样一下子列出来的,大大方便了我们一次修改

补充,专业知识性错误:
P55,代码清单7-8和代码清单7-10中的GPIO_ODR |=(0<<0)应改为GPIO_ODR &=~(1<<0)!!!
回复 支持 反对

使用道具 举报

发表于 2019-8-15 10:25:53 | 显示全部楼层
补充,专业知识性错误:
P55,代码清单7-8和代码清单7-10中的GPIO_ODR |=(0<<0)应改为GPIO_ODR &=~(1<<0)!!!
回复 支持 反对

使用道具 举报

发表于 2023-10-7 09:55:23 | 显示全部楼层
补充:
P32
(2)地址偏移
    这段里面的BSRR寄存器的地址偏移应该是0x10,不是0x18
这对于我们这种刚学的来说很迷糊。明明上面的图例标注的地址偏移是0x10
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-30 01:57 , Processed in 0.074824 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表