调试知识点记录
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函数中去!!!