你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请高手帮忙看一下,我是小白,用的是STM32F051C8T6的板子

[复制链接]
stm18647293236 提问时间:2018-11-16 08:13 /
请高手帮忙看一下,我是小白,用的是STM32F051C8T6的板子
(用下面的命令)生成了HEX文件,用ISP写入板子时没有报错,但是提示写入0KB,板子没有任何反应。是那里有问题?谢谢

main.c

#include "stm32f051.h"

/**
  *   主函数
  */
int main(void)
{
// 开启GPIOB 端口时钟
RCC_APB2ENR |= (1<<3);
RCC_AHB1ENR |= (0<<17);
RCC_AHB1ENR |= (0<<18);
RCC_AHB1ENR |= (0<<19);
RCC_AHB1ENR |= (0<<20);

GPIOA_MODER |= (1<<24);
GPIOA_OTYPER |= (1<<12);
GPIOA_OSPEEDR |=(1<<24) ;
GPIOA_PUPDR  |= (1<<25);

GPIOA_ODR &= ~(1<<11);
GPIOA_ODR &= ~(1<<12);
GPIOA_ODR &= ~(1<<13);
GPIOA_ODR &= ~(1<<14);
GPIOA_ODR &= ~(1<<15);

while(1);
}
void SystemInit(void)
{
}
/*********************************************END OF FILE**********************/



stm32f051.h

/*本文件用于添加寄存器地址及结构体定义*/
/*片上外设基地址  */
#define PERIPH_BASE           ((unsigned int)0x40000000)

/*AHB1 总线基地址 */
#define AHB1PERIPH_BASE       (PERIPH_BASE + 0x20000)
/*RCC外设基地址*/
#define RCC_BASE      (AHB1PERIPH_BASE + 0x1000)
/*RCC的AHB1时钟使能寄存器地址,强制转换成指针*/
#define RCC_AHB1ENR   *(unsigned int*)(RCC_BASE+0x14)

/*AHB2 总线基地址 */
#define AHB2PERIPH_BASE       (PERIPH_BASE + 0x8000000)
/*GPIOA外设基地址*/
#define GPIOA_BASE            (AHB2PERIPH_BASE + 0x0000)
#define GPIOB_BASE            (AHB2PERIPH_BASE + 0x0400)
#define GPIOC_BASE            (AHB2PERIPH_BASE + 0x0800)
#define GPIOD_BASE            (AHB2PERIPH_BASE + 0x0C00)

/* GPIOB寄存器地址,强制转换成指针 */

#define GPIOA_MODER        *(unsigned int*)(GPIOA_BASE+0x00)
#define GPIOA_OTYPER       *(unsigned int*)(GPIOA_BASE+0x04)
#define GPIOA_OSPEEDR      *(unsigned int*)(GPIOA_BASE+0x08)
#define GPIOA_PUPDR        *(unsigned int*)(GPIOA_BASE+0x0C)
#define GPIOA_IDR          *(unsigned int*)(GPIOA_BASE+0x10)
#define GPIOA_ODR          *(unsigned int*)(GPIOA_BASE+0x14)
#define GPIOA_BSRR         *(unsigned int*)(GPIOA_BASE+0x18)
#define GPIOA_LCKR         *(unsigned int*)(GPIOA_BASE+0x1C)
#define GPIOA_AFRL         *(unsigned int*)(GPIOA_BASE+0x20)
#define GPIOA_AFRH         *(unsigned int*)(GPIOA_BASE+0x24)
#define GPIOA_BRR          *(unsigned int*)(GPIOA_BASE+0x28)
收藏 评论11 发布时间:2018-11-16 08:13

举报

11个回答
mzy2364 回答时间:2018-11-16 08:21:13
ISP的问题吧,你换个STLINK仿真器,淘宝才十几块钱

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

废鱼 回答时间:2018-11-16 08:22:26
楼主,在ISP下,读取芯片时,芯片型号是否正确?
stm18647293236 回答时间:2018-11-16 09:16:34
mzy2364 发表于 2018-11-16 08:21
ISP的问题吧,你换个STLINK仿真器,淘宝才十几块钱

谢谢,我以为命令错了那,改了多次。
stm18647293236 回答时间:2018-11-16 09:17:33
安 发表于 2018-11-16 08:22
楼主,在ISP下,读取芯片时,芯片型号是否正确?

谢谢,我都没注意这个问题。
stm18647293236 回答时间:2018-11-16 09:18:59
安 发表于 2018-11-16 08:22
楼主,在ISP下,读取芯片时,芯片型号是否正确?

麻烦,在问一下,我写的命令有不正确的吗。谢谢
废鱼 回答时间:2018-11-16 09:40:28
没有看到你写什么命令啊,你用的不是STMFlashLoader吗?这个是软件去控制写入的。你代码里面写的和烧写过程没有关系。
stm18647293236 回答时间:2018-11-16 09:49:49
安 发表于 2018-11-16 09:40
没有看到你写什么命令啊,你用的不是STMFlashLoader吗?这个是软件去控制写入的。你代码里面写的和烧写过程 ...

不好意思我没说清楚,
就是main.c 和 stm32f051.h 写的有错吗?谢谢
废鱼 回答时间:2018-11-16 10:15:38
只要能编译过去,能够生成烧写文件即可。具体操作是否正确,这个还是需要根据寄存器的描述,和写入值的内容去做对比。具体到代码操作是否真确,还是需要自己去实际操作一下。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

stm18647293236 回答时间:2018-11-16 10:35:30
安 发表于 2018-11-16 10:15
只要能编译过去,能够生成烧写文件即可。具体操作是否正确,这个还是需要根据寄存器的描述,和写入值的内容 ...

谢谢,
TLLED 回答时间:2018-11-16 10:59:09
是仿真器下载还是ISP软件下载
stm18647293236 回答时间:2018-11-19 15:48:02
TLLED 发表于 2018-11-16 10:59
是仿真器下载还是ISP软件下载

ISP软件下载

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版