1. AS the title, who can share your code in STVD?NOT in IAR,,,thanks a lot. 2. 目前困在STVD环境下,不能重定向printf(),网上IAR环境的重定向调通了,求STVD环境下的code。 3. 用STM8的官方例程UART1_Printf在STVD环境下编译OK,但是debug时候报错下载不了程序,报错信息如下图: 4. 针对3中问题,用STVP彻底清空片子里的代码后还是不能烧进去,请问高手有什么解决办法? 备注: 开发环境STVD MCU: STM8S208MB 谢谢关注 |
Error info
STVD Code
STMS005K6T6 如何采集内部参考电压。
stm8s003 adc中断和通道切换的问题
adc施密特触发器stm8
stm8l051f3 TSSOP20 封装,待机模式下,2天后,电流突然增加到140UA
STM8S用STVP烧录怎么加密?
如何使用ST官网例程_LIN总线通讯_STM8AF
STM8 LIN
IAR代码编辑太费劲了,想问一下有没有好的方法,试了VScode但是头文件老是报错,调了很久也没调好,想换个方法了。
想问一下各位大佬,IAR下载调试代码时出现 warning: is an illegal data sample expression IAR是什么意思啊?
STM8S标准库TIM1编码器功能不计数,请大师帮我看看
评分
查看全部评分
提示错误的信息表示楼主的Flash写保护了。STM8S208好像没有写保护功能,下图试看看:
评分
查看全部评分
// 函数功能:初始化UART
// 输入参数:无
// 输出参数:无
// 返 回 值:无
// 备 注:无
void UartInit(void)
{
UART1_CR2 = 0; // 禁止UART发送和接收
UART1_CR1 = 0; // b5 = 0,允许UART
// b2 = 0,禁止校验
UART1_CR3 = 0; // b5,b4 = 00,1个停止位
// 设置波特率,必须注意以下几点:
// (1) 必须先写BRR2
// (2) BRR1存放的是分频系数的第11位到第4位,
// (3) BRR2存放的是分频系数的第15位到第12位,和第3位到第0位
// 例如对于波特率位9600时,分频系数=2000000/9600=208
// 对应的十六进制数为00D0,BBR1=0D,BBR2=00
UART1_BRR2 = 0x00;
UART1_BRR1 = 0x0D;
// 实际的波特率分频系数为0682(1666)
// 对应的波特率为16000000/1666=9600
//UART1_BRR2 = 0x02;
//UART1_BRR1 = 0x68;
UART1_CR2 = 0x2C; // b3 = 1,允许发送
// b2 = 1,允许接收
// b5 = 1,允许产生接收中断
}
// 函数功能:从UART1发送一个字符
// 输入参数:ch -- 要发送的字符
// 输出参数:无
// 返 回 值:无
// 备 注:无
char putchar(char c)
{
while ((UART1_SR & 0x80) == 0x00); // 若发送寄存器不空,则等待
UART1_DR = c; // 将要发送的字符送到数据寄存器
while ((UART1_SR & 0x80) == 0x00); // 若发送寄存器不空,则等待
return c;
}
评分
查看全部评分
printf("System Running!");
谢谢您的回复,新年快乐
您的做法我之前做过,在STVP中关掉写保护并下载到片子里,但是仍然遇到上述问题。估计是代码的问题不是硬件。还需进一步研究。。。。
谢谢亲回复,新年快乐!
但是按照亲的代码,编译通过,下到片子里仍然报错,换用简单的点灯程序可以正确下载,正常显示,1.是不是因为写了putchar函数所以报错?STVP中已经将写保护关闭;期待你的回复。
ä»ç¶æ¥é
简单的点灯程序可以,那你现在的程序和简单的点灯程序对比有什么差别呢?
差别在于重定义了putchar()函数啊
就增加一个putchar就不能下载了?
是这样的,捣鼓了好久都是这问题