完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我用STM8S105K4写 UART程序, 单个UART 程序 串口发送没问题, 但是 和ADC ,中断,等一些程序整合成一个程序时 ,发送的就是乱码。大师们是怎么回事?
单个程序: #include"stm8s105k4.h" #include"stdio.h" void CLK_Init(void) { CLK_CKDIVR = 0x00; } void UART2_Init(void) { UART2_CR3 = 0x00; UART2_CR2 = 0x00; UART2_CR3 = 0x00; UART2_BRR2 = 0x0b; //115200 UART2_BRR1 = 0x08; } char putchar(char c) { while(!(UART2_SR&0x40)); UART2_DR = c; while(!(UART2_SR&0x40)); return (c); } main() { unsigned char c; CLK_Init(); UART2_Init(); UART2_CR2 = 0x0c; printf("1"); /*while(1) { printf("nr请输入一个按键"); while(!(UART2_SR&0x20)); c = UART2_DR; printf("nr输入按键为%c。",c); }*/ } 整合后的程序: #include "stm8s105k4.h" #include "stdio.h" #include "delay.h" #include "smg.h" #include "adc.h" #include "interrupt.h" #include "uart.h" void CLK_Init(void) { CLK_CKDIVR |= 0x00; //时钟初始化为内部16M } main() { _asm("sim"); //对中断进行初始化需要加 头汇编语句 CLK_Init(); //时钟初始化 16M GPIO_SMG_IN(); //数码管IO初始化 tiM1_Init(); //中断初始化 ADC_Init(); //ADC初始化 UART2_Init(); //串口初始化 _asm("rim"); //对中断进行初始化需要加 尾汇编语句 delayms(1000); printf(""); } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
720 浏览 0 评论
国产NSI1300D05-DSWVR放大芯片放大增益8.2或41的问题
819 浏览 0 评论
STM32串口接受中断使用C++STL中的queue导致所有中断失效
8375 浏览 1 评论
3360 浏览 0 评论
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1376 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-23 13:06 , Processed in 0.391687 second(s), Total 40, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191