你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
苏柚 发表于 2016-1-28 09:05 请直接发帖,谢谢
LIUBEIHUA 发表于 2016-1-29 15:42 通常我们进行端口配置时都用下面的格式 GPIO_InitTypeDef GPIO_InitStructure;
【视频学习活动】看STM32MP1专题视频,赢好礼
中奖名单到,速来查看丨2019年ST社区年度评选活动开始啦
2019年第四届STM32教育联盟教师峰会——活动回顾
【活动】2013年末签到,赢STM32F0超值型探索套件(已公布结果)
参加社区活动获得板子到了,晒一晒
现在的积分换礼活动,你怎么支配自己的金币
【活动】这是我爱STM8的理由
收到“管管来发‘压岁钱’”活动的礼品
晒"学习STM8任务“活动的奖品
“RT-Thread物联网操作系统 ——送书活动”的书
先发个思路
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_2;
GPIO_Init(GPIOA,&GPIO_InitStructure);
你是否想过漏了一行会出现什么后果吗。我前几天做一个IIC模拟驱动就遇到一个奇怪的事。半个月前搞到一个STM32F030的芯片完成了一个产品的开发。
随后想用这个板做一个MPU6050的程序,因为MPU6050要用到IIC通讯所以从网上下了一个“STM32F030模拟IIC接口 OLED 测试程序”,把它的IIC程序加到我的程序中来。
随后开始调试。
这时奇怪的事就出现了,我用的编程软件是MDK V5.17,当我点击“Debug”把程序下载到芯片时,芯片就死了无法进行仿真,退出“Debug”状态,点击“Options for Target",再点击“Debug”,查看“Setings"发现仿真器已不认该芯片了,好在手上有好几个板呢,换一块板试试现象完全一样。
因为程序还没调试,也无法调试所以没想到是程序的问题。总共只有10颗芯片做产品用去两颗还有8颗,先想到的是救回这两颗芯片,用J-flash擦除不管,无法通讯,再换用ST-LINK擦除还是不管,也是无法通讯。后来用串口通讯把芯片擦除了。
反复试了几次,只要点击“Debug”芯片就死了,死了就用串口擦除,因为我以前一直用的MDK V4.72,对MDK V5.17不是太熟练所以又卸载了MDK V5.17安装了MDK V4.74(MDK V4.72不支持STM32F030),再编译奇怪的现象有出现了,原来6点几K的程序居然变为18点几K,超出了芯片范围,压缩程序把程序压缩到12K再开始调试,可以单步执行,就是无法进入main。
分析以下可能是程序的问题,重新开始调试,先把程序注释掉,在一条一条放开当执行到IIC_Configuation(),时芯片就死了,再把IIC_Configuation()里的语句注释掉,在一条一条放开这时发现居然没有“GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6;”,问题肯定在这里了赶紧加上去一调试成了。
没想到少了一条语句居然有这样的问题。
请发新帖子,就可以参与到本活动中!
写了好久,从早上到中午吧,哈哈,吃完饭就写不动了,
来,敲两行代码压压惊
while (!(USART1->SR & USART_FLAG_TXE));