请高手帮忙看一下,我是小白,用的是STM32F051C8T6的板子
请高手帮忙看一下,我是小白,用的是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)
ISP的问题吧,你换个STLINK仿真器,淘宝才十几块钱 楼主,在ISP下,读取芯片时,芯片型号是否正确? mzy2364 发表于 2018-11-16 08:21
ISP的问题吧,你换个STLINK仿真器,淘宝才十几块钱
谢谢,我以为命令错了那,改了多次。 安 发表于 2018-11-16 08:22
楼主,在ISP下,读取芯片时,芯片型号是否正确?
谢谢,我都没注意这个问题。 安 发表于 2018-11-16 08:22
楼主,在ISP下,读取芯片时,芯片型号是否正确?
麻烦,在问一下,我写的命令有不正确的吗。谢谢 没有看到你写什么命令啊,你用的不是STMFlashLoader吗?这个是软件去控制写入的。你代码里面写的和烧写过程没有关系。 安 发表于 2018-11-16 09:40
没有看到你写什么命令啊,你用的不是STMFlashLoader吗?这个是软件去控制写入的。你代码里面写的和烧写过程 ...
不好意思我没说清楚,
就是main.c 和 stm32f051.h 写的有错吗?谢谢 只要能编译过去,能够生成烧写文件即可。具体操作是否正确,这个还是需要根据寄存器的描述,和写入值的内容去做对比。具体到代码操作是否真确,还是需要自己去实际操作一下。 安 发表于 2018-11-16 10:15
只要能编译过去,能够生成烧写文件即可。具体操作是否正确,这个还是需要根据寄存器的描述,和写入值的内容 ...
谢谢,
页:
[1]
2