本帖最后由 dawei360 于 2016-11-27 21:39 编辑
今天的主角是STM32F767 144 脚怪兽级芯片,为啥称为怪兽级,下面来见识芯片的庐山真面目;
第一、之所以称为怪兽级原因如下:
怪兽级理由1、芯片大小和管脚数:
STM32F767 NUCLEO 板载144脚芯片,但看大小就知道该芯片有多霸气,大小和一个硬币差多大,和原来64脚的NUCLEO板子相比,大概为2倍大小;管脚越多意味着能驱动的外设更多,板子的应用也更加灵活;
怪兽级理由二: 强悍的内部资源:
1、主屏率最高为216MHZ, 带I-cache and D-cache分别为16 Kbytes ;
2、 2 Mbytes 可以编程的FLASH;
3、包括IIC\SPI\QSPI\IIS\USART等众多的常用的接口;
3、高速USB OTG接口,Chrom-ART 图形加速;LCD接口等等;
以上的强大的内存和外设足够证明该芯片的强悍;从STM23F7 CUBEMX中可以看见,该芯片的强悍的外部资源;
第二、STM32F7 NUCLEO 板载资源解析:
和以往的NCULEO 板一样,STM32F767 的板载分为2部分,下载调试板(STLINK )和主控MCU取,主控MCU区将可以用的MCU IO 口全部引出,方便可以根据自己的需求进行试验,与以往NUCLEO不同的是,144脚NUCLEO板载网口,也就是说STM32F7的网络方面也是不可小觑的一部分。
由于NUCLEO 板子本来就属于精炼强大型,所以板载资源主要以STM32F767 为主角,下面让我们来看看怎么快速的上手这块NUCLEO;
第三、STM32F7 功能上手:
1、所需工具:
STM32F7CbueMX(STM32 HAL 库开发必备工具)
MDK V5.22(为啥要用V5.22,因为V5.22是KEIL 公司刚刚发布的,其编译功能更加强大);
USB线和一台PC;
2、驱动和软件安装:
驱动程序:【STM32 ST-LINK Utility v3.9.0】en.stsw-link004,安装此程序过程中会安装STLINK 驱动;
STM32CUBEMX: 该软件是基于java开发的因此在安装之前需要安装jdk-8u101-windows-i586(JAVA环境)
然后配置JAVA环境变量,具体配置: 计算机--属性--高级环境变量配置(系统),添加如下语句:(JAVA_HOME 需要新建)
JAVA_HOME=安装路径
Path=安装路径\bin
然后在cmd 中验证是否成功,java -version 即可(出现版本号就表示安装成功)
安装完后就可以安装STM32CUBEMX 软件,一路NEXT下去就可以搞定,这个人人都会;
3、STM32CUBEMX 使用:
打开软件, File-Project-Board Select选择STM32F767ZI NUCLEO 板子即可;出现如下界面;
然后选择生成的工程类型,我选择的是MDK的,这个根据个人需求进行选择;
试验证明MDK 中的V6.6 对于目前的HJAL库还是存在问题的;
今天回来了,反正论坛有点卡;
首先肯定是串口调通,直接配置串口3也就是STLINK 的虚拟串口;
然后就是生产代码:
static void MX_USART3_UART_Init(void)
{
huart3.Instance = USART3;
huart3.Init.BaudRate = 115200;
huart3.Init.WordLength = UART_WORDLENGTH_8B;
huart3.Init.StopBits = UART_STOPBITS_1;
huart3.Init.Parity = UART_PARITY_NONE;
huart3.Init.Mode = UART_MODE_TX_RX;
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart3) != HAL_OK)
{
Error_Handler();
}
}
int fputc(int ch, FILE *f)
{
uint8_t temp[1]={ch};
HAL_UART_Transmit(&huart3,temp,1,2);
return ch;
} int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration----------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART3_UART_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
printf("STM32F7 NUCLEO Start\r\n");
HAL_Delay(500);
}
/* USER CODE END 3 */
} 然后就可以正常打印了;
coreMark 移植:
打印结果:
|