STM32 DAC调试及在mdk中使用printf

调试知识点记录


1.对于stm32 DAC使用DMA进行传输数据,一定要设定外设地址好地址,因为对于STM32 的DAC数据对齐方式有3中,12位左对齐,12位右对齐,8位右对齐!!一般习惯默认是右对齐方式!这三种对齐方式时,其地址都是不一样的,需要根据实际设置DMA外设地址!

ps:我在这个地方瞎折腾了半天!


2.对于STM32 DAC使用DMA和TIM6,设置有个先后顺序!不然传输将会出现问题!实测我可行顺序为先DAC再DMA,对着这个解释本人目前还无法解释!

ps:我将DAC配置和开启在DMA之前,出现DMA不将数据传送到DAC的现象,期待希望大侠能给个解释!


3.对于void DAC_SetChannel1Data(uint32_t DAC_Align, uint16_t Data)

DAC_SetChannel1Data(DAC_Align_12b_L,0xfff);  转换值为0xff而不是0xfff,

 DAC_SetChannel1Data(DAC_Align_12b_R,0xfff);转换值为0xfff


对于在MDK中使用printf函数需注意:

1.因为printf()涉及到硬件的操作,对于fputc的重定义不可少!

int fputc(int ch, FILE *f)
{
  /* Write a character to the USART */
  USART_SendData(USART1, (u8) ch);

  /* Loop until the end of transmission */
  while(!(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == SET))
  {
  }

  return ch;
}

2在mdk中,请在工程属性的“Target“-》”Code Generation“中勾选”Use MicroLIB“,这一点很重要!不然全速运行将无法跳转到main函数中去!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值