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

NUCLEOF334 体验之建工程 printf ,点灯  

[复制链接]
lovewyufeng 发布时间:2015-1-13 13:59
本帖最后由 lovewyufeng 于 2015-1-13 14:15 编辑

中午收到 F334的板子 搞个工程测试一把  顺便贡献了

创建 工程教程  请查看
STM32 如何快速创建 FREERTOS和RTX 工程

F3的 固件库 下载地址
https://www.stmcu.org.cn/document/detail/index/id-215467


废话不多说  下面进入正题  

NUCLEOF3 板子看起来和  F072的一样  

楼主猜想  LD2 依然连接原来的 PA5
USART2 连接到stlink的串口
由于 F334的板子FLASH 比较小 二HAL库有非常占ROM  所以楼主使用  寄存器配置的GPIO和串口
时钟为内部晶振 倍频到 48M



下面是main.c 添加内容

  1. /* USART2 init function */
  2. void MX_USART2_UART_Init(void)
  3. {

  4.                 huart2.Instance = USART2;
  5. //  huart2.Init.BaudRate = 115200;
  6. //  huart2.Init.WordLength = UART_WORDLENGTH_8B;
  7. //  huart2.Init.StopBits = UART_STOPBITS_1;
  8. //  huart2.Init.Parity = UART_PARITY_NONE;
  9. //  huart2.Init.Mode = UART_MODE_TX_RX;
  10. //  huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  11. //  huart2.Init.OverSampling = UART_OVERSAMPLING_16;
  12. //  huart2.Init.OneBitSampling = UART_ONEBIT_SAMPLING_DISABLED ;
  13. //  huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  14. //  HAL_UART_Init(&huart2);
  15.         //先使用库函数 配置后仿真得到寄存器值 手动赋值
  16.         HAL_UART_MspInit(&huart2);
  17.         USART2->BRR=0XD0;
  18.         USART2->CR1=0X0D;
  19.         
  20.         __HAL_UART_ENABLE(&huart2);
  21. }

  22. /** Pinout Configuration
  23. */
  24. void MX_GPIO_Init(void)
  25. {

  26.   /* GPIO Ports Clock Enable */
  27.   __GPIOA_CLK_ENABLE();

  28. }
  29. #include "stdio.h"
  30. int fputc(int ch,FILE *f)
  31. {
  32.     while(!(USART2->ISR&UART_FLAG_TXE));
  33.                 USART2->TDR=ch;
  34.                 return ch;
  35. }
  36. /* USER CODE BEGIN 4 */
  37. void F334_ledThread(const void *arg)
  38. {
  39.         __GPIOA_CLK_ENABLE();
  40.         GPIOA->MODER|=GPIO_MODE_OUTPUT_PP<<5*2;//配置 PA5为 OUTPP
  41.         GPIOA->OTYPER|=0<<5;
  42.         for(;;)
  43.         {
  44.                 GPIOA->ODR^=GPIO_PIN_5;
  45.                 if(GPIOA->ODR&GPIO_PIN_5)//打印 LED状态
  46.                 {
  47.                 printf("LED2 ON\r\n");
  48.                 }
  49.                 else
  50.                 {
  51.                 printf("LED2 OFF\r\n");
  52.                 }
  53.                 osDelay(2000);//延时2s
  54.         }
  55. }
  56. /* USER CODE END 4 */

  57. static void StartThread(void const * argument)
  58. {

  59.   /* USER CODE BEGIN 5 */
  60.    osThreadDef(led_Thread, F334_ledThread, osPriorityNormal, 0, configMINIMAL_STACK_SIZE);//定义 led 线程
  61.                 osThreadCreate (osThread(led_Thread), NULL);//创建LED线程
  62.   /* Infinite loop */
  63.   for(;;)
  64.   {
  65.     osDelay(1);
  66.   }

  67.   /* USER CODE END 5 */

  68. }
复制代码


下面是MSP 文件内容


  1. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  2. {

  3.   GPIO_InitTypeDef GPIO_InitStruct;
  4.   if(huart->Instance==USART2)
  5.   {
  6.   /* USER CODE BEGIN USART2_MspInit 0 */

  7.   /* USER CODE END USART2_MspInit 0 */
  8.     /* Peripheral clock enable */
  9.     __USART2_CLK_ENABLE();
  10.   
  11.     /**USART2 GPIO Configuration   
  12.     PA2     ------> USART2_TX
  13.     PA3     ------> USART2_RX
  14.     */
  15. //    GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
  16. //    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  17. //    GPIO_InitStruct.Pull = GPIO_PULLUP;
  18. //    GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
  19. //    GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
  20. //    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  21.                 GPIOA->MODER|=((0X2)<<(2*2))|((0X2)<<(2*3));
  22.                 GPIOA->OTYPER|=0<<2|0<<3;
  23.                 GPIOA->AFR[0]|=GPIO_AF7_USART2<<(2*4);
  24.                 GPIOA->AFR[0]|=GPIO_AF7_USART2<<(3*4);
  25.   /* System interrupt init*/
  26.     HAL_NVIC_SetPriority(USART2_IRQn, 5, 0);
  27.     HAL_NVIC_EnableIRQ(USART2_IRQn);
  28.   /* USER CODE BEGIN USART2_MspInit 1 */

  29.   /* USER CODE END USART2_MspInit 1 */
  30.   }

  31. }
复制代码



运行结果为  LD2  2s闪一次  串口输出 状态

STM32F334.zip

下载

8.51 MB, 下载次数: 1706

收藏 2 评论28 发布时间:2015-1-13 13:59

举报

28个回答
lovewyufeng 回答时间:2015-1-13 15:51:14
zfz0122 发表于 2015-1-13 15:00
STM32 F334主频是48M??

334 主频 72M

楼主配置为48M而已 因为这个板子没有  外部晶振
lovewyufeng 回答时间:2015-1-13 14:18:52
ataudio 发表于 2015-1-13 14:15
这么高效,这么勤奋的好同学,赞一个。

过奖
harvardx 回答时间:2015-1-15 21:41:25
不错的 用cubemx库的比较有意义,也是st库的发展方向,
ataudio 回答时间:2015-1-13 14:15:51
这么高效,这么勤奋的好同学,赞一个。
wwff2007wwff 回答时间:2015-1-13 14:38:20
看到LED赞一个
拼命三郎 回答时间:2015-1-13 14:56:10
赞一个,我的还没到呢。
kqh1120 回答时间:2015-1-13 15:00:02
STM32 F334主频是48M??
AndyYau-268557 回答时间:2015-1-13 15:00:36
给我做过铺垫了,谢谢
fjjjnk1234 回答时间:2015-1-13 15:29:47
感谢分享!顶一个!
大秦正声 回答时间:2015-1-13 15:59:11
很好啊赞
caizhiwei 回答时间:2015-1-13 16:04:22
好帖子,友情帮顶@!
pythonworld 回答时间:2015-1-13 20:04:12
本帖最后由 pythonworld 于 2015-1-13 20:06 编辑

下手快,good!
cxtarm 回答时间:2015-1-13 21:01:08
神速啊。。。
我是酱油哥 回答时间:2015-1-13 22:20:51
十分感谢分享  正好用上了
mlxy123xy 回答时间:2015-1-14 00:17:28
硬件的hello world。。。。强大的问候。。。
12下一页

所属标签

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