单片机
qq_28219531
这个作者很懒,什么都没留下…
展开
-
stdio.h 之 printf
使用c库中通用的printf,调用流程为先将需要打印的东西按照所需的格式放入到char型的buffer中,然后再将buffer中的内容发送至stdout中.如果我们更换了串口,可能需要对相应的串口做重定向工作.如stm32struct __FILE{int handle;};FILE __stdout;int fputc(int ch, FILE *f){HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);//更具实际原创 2021-05-07 13:52:42 · 671 阅读 · 0 评论 -
sfr与sbit的理解,及单片机中断
sfr (special function register)定义的变量是将单片机的特殊功能寄存器赋值给一个变量,在程序设计中就能引用这个寄存器。sbit 是对寄存器进行位操作,可对寄存器中某位置1或者清0.STC图中这么多特殊功能寄存器之后可能会产生一些困扰,我们用sfr P0 = 0×80表示P0,用sfr SP = 0×81表示SP,这个没有歧义。有困扰的是:假如用sb原创 2016-10-25 15:53:46 · 1609 阅读 · 0 评论 -
MX25L1635D spi-flash芯片的读写记录
读取设备ID 厂家ID和读写状态寄存器代码段TW8825_WritePage(TW8825_PAGE4_SPI); SpiFlashDmaDestType(DMA_DEST_CHIPREG, 0);SpiFlashDmaBuffAddr(DMA_BUFF_REG_ADDR);SpiFlashDmaReadLen(0); /*Clear high & middle bytes*/SpiFlas原创 2017-03-16 16:09:03 · 3187 阅读 · 0 评论 -
串口调试所遇到问题,总结与借鉴
问题确定串口接收数据丢失,用串口工具发送一串字符数据时,有时会出现会丢失一两个数据。 可能原因1:cpu处理速度过慢,在下一次中断来临时,此次中断还未处理完。 解决方法:使用ringbuffervoid USART0_IRQHandler( void ) interrupt 4 using 2{ uint8_t count; if(SFR_RI)原创 2017-05-26 17:44:06 · 6544 阅读 · 0 评论